@mostfeatured/dbi 0.1.47 → 0.2.1

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 (299) hide show
  1. package/dist/src/DBI.d.ts.map +1 -0
  2. package/dist/src/DBI.js.map +1 -0
  3. package/dist/src/Events.d.ts.map +1 -0
  4. package/dist/src/Events.js.map +1 -0
  5. package/dist/src/index.d.ts.map +1 -0
  6. package/dist/src/index.js.map +1 -0
  7. package/dist/src/methods/handleMessageCommands.d.ts.map +1 -0
  8. package/dist/src/methods/handleMessageCommands.js.map +1 -0
  9. package/dist/src/methods/hookEventListeners.d.ts.map +1 -0
  10. package/dist/src/methods/hookEventListeners.js.map +1 -0
  11. package/dist/src/methods/hookInteractionListeners.d.ts.map +1 -0
  12. package/dist/{methods → src/methods}/hookInteractionListeners.js +22 -12
  13. package/dist/src/methods/hookInteractionListeners.js.map +1 -0
  14. package/dist/src/methods/publishInteractions.d.ts.map +1 -0
  15. package/dist/src/methods/publishInteractions.js.map +1 -0
  16. package/dist/src/types/ApplicationRoleConnectionMetadata.d.ts.map +1 -0
  17. package/dist/src/types/ApplicationRoleConnectionMetadata.js.map +1 -0
  18. package/dist/src/types/Builders/ButtonBuilder.d.ts.map +1 -0
  19. package/dist/src/types/Builders/ButtonBuilder.js.map +1 -0
  20. package/dist/src/types/Builders/ChannelSelectMenuBuilder.d.ts.map +1 -0
  21. package/dist/src/types/Builders/ChannelSelectMenuBuilder.js.map +1 -0
  22. package/dist/src/types/Builders/MentionableSelectMenuBuilder.d.ts.map +1 -0
  23. package/dist/src/types/Builders/MentionableSelectMenuBuilder.js.map +1 -0
  24. package/dist/src/types/Builders/ModalBuilder.d.ts.map +1 -0
  25. package/dist/src/types/Builders/ModalBuilder.js.map +1 -0
  26. package/dist/src/types/Builders/RoleSelectMenuBuilder.d.ts.map +1 -0
  27. package/dist/src/types/Builders/RoleSelectMenuBuilder.js.map +1 -0
  28. package/dist/src/types/Builders/StringSelectMenuBuilder.d.ts.map +1 -0
  29. package/dist/src/types/Builders/StringSelectMenuBuilder.js.map +1 -0
  30. package/dist/src/types/Builders/UserSelectMenuBuilder.d.ts.map +1 -0
  31. package/dist/src/types/Builders/UserSelectMenuBuilder.js.map +1 -0
  32. package/dist/src/types/ChatInput/ChatInput.d.ts.map +1 -0
  33. package/dist/src/types/ChatInput/ChatInput.js.map +1 -0
  34. package/dist/{types → src/types}/ChatInput/ChatInputOptions.d.ts +2 -2
  35. package/dist/src/types/ChatInput/ChatInputOptions.d.ts.map +1 -0
  36. package/dist/src/types/ChatInput/ChatInputOptions.js.map +1 -0
  37. package/dist/src/types/Components/Button.d.ts.map +1 -0
  38. package/dist/src/types/Components/Button.js.map +1 -0
  39. package/dist/src/types/Components/ChannelSelectMenu.d.ts.map +1 -0
  40. package/dist/src/types/Components/ChannelSelectMenu.js.map +1 -0
  41. package/dist/src/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.d.ts.map +1 -0
  42. package/dist/src/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.js.map +1 -0
  43. package/dist/src/types/Components/HTMLComponentsV2/index.d.ts +91 -0
  44. package/dist/src/types/Components/HTMLComponentsV2/index.d.ts.map +1 -0
  45. package/dist/src/types/Components/HTMLComponentsV2/index.js +300 -0
  46. package/dist/src/types/Components/HTMLComponentsV2/index.js.map +1 -0
  47. package/dist/src/types/Components/HTMLComponentsV2/parser.d.ts.map +1 -0
  48. package/dist/{types → src/types}/Components/HTMLComponentsV2/parser.js +11 -4
  49. package/dist/src/types/Components/HTMLComponentsV2/parser.js.map +1 -0
  50. package/dist/src/types/Components/HTMLComponentsV2/svelteParser.d.ts +35 -0
  51. package/dist/src/types/Components/HTMLComponentsV2/svelteParser.d.ts.map +1 -0
  52. package/dist/src/types/Components/HTMLComponentsV2/svelteParser.js +822 -0
  53. package/dist/src/types/Components/HTMLComponentsV2/svelteParser.js.map +1 -0
  54. package/dist/src/types/Components/HTMLComponentsV2/svelteRenderer.d.ts +24 -0
  55. package/dist/src/types/Components/HTMLComponentsV2/svelteRenderer.d.ts.map +1 -0
  56. package/dist/src/types/Components/HTMLComponentsV2/svelteRenderer.js +294 -0
  57. package/dist/src/types/Components/HTMLComponentsV2/svelteRenderer.js.map +1 -0
  58. package/dist/src/types/Components/MentionableSelectMenu.d.ts.map +1 -0
  59. package/dist/src/types/Components/MentionableSelectMenu.js.map +1 -0
  60. package/dist/src/types/Components/Modal.d.ts.map +1 -0
  61. package/dist/src/types/Components/Modal.js.map +1 -0
  62. package/dist/src/types/Components/RoleSelectMenu.d.ts.map +1 -0
  63. package/dist/src/types/Components/RoleSelectMenu.js.map +1 -0
  64. package/dist/src/types/Components/StringSelectMenu.d.ts.map +1 -0
  65. package/dist/src/types/Components/StringSelectMenu.js.map +1 -0
  66. package/dist/src/types/Components/UserSelectMenu.d.ts.map +1 -0
  67. package/dist/src/types/Components/UserSelectMenu.js.map +1 -0
  68. package/dist/src/types/Event.d.ts.map +1 -0
  69. package/dist/src/types/Event.js.map +1 -0
  70. package/dist/src/types/Interaction.d.ts.map +1 -0
  71. package/dist/src/types/Interaction.js.map +1 -0
  72. package/dist/src/types/other/CustomEvent.d.ts.map +1 -0
  73. package/dist/src/types/other/CustomEvent.js.map +1 -0
  74. package/dist/src/types/other/FakeMessageInteraction.d.ts.map +1 -0
  75. package/dist/src/types/other/FakeMessageInteraction.js.map +1 -0
  76. package/dist/src/types/other/InteractionLocale.d.ts.map +1 -0
  77. package/dist/src/types/other/InteractionLocale.js.map +1 -0
  78. package/dist/src/types/other/Locale.d.ts.map +1 -0
  79. package/dist/src/types/other/Locale.js.map +1 -0
  80. package/dist/src/types/other/MessageContextMenu.d.ts.map +1 -0
  81. package/dist/src/types/other/MessageContextMenu.js.map +1 -0
  82. package/dist/src/types/other/UserContextMenu.d.ts.map +1 -0
  83. package/dist/src/types/other/UserContextMenu.js.map +1 -0
  84. package/dist/src/utils/MemoryStore.d.ts.map +1 -0
  85. package/dist/src/utils/MemoryStore.js.map +1 -0
  86. package/dist/src/utils/UtilTypes.d.ts.map +1 -0
  87. package/dist/src/utils/UtilTypes.js.map +1 -0
  88. package/dist/src/utils/customId.d.ts.map +1 -0
  89. package/dist/src/utils/customId.js.map +1 -0
  90. package/dist/src/utils/permissions.d.ts.map +1 -0
  91. package/dist/src/utils/permissions.js.map +1 -0
  92. package/dist/src/utils/recursiveImport.d.ts.map +1 -0
  93. package/dist/src/utils/recursiveImport.js.map +1 -0
  94. package/dist/src/utils/recursiveUnload.d.ts.map +1 -0
  95. package/dist/src/utils/recursiveUnload.js.map +1 -0
  96. package/dist/src/utils/unloadModule.d.ts.map +1 -0
  97. package/dist/src/utils/unloadModule.js.map +1 -0
  98. package/dist/test/index.d.ts +2 -0
  99. package/dist/test/index.d.ts.map +1 -0
  100. package/dist/test/index.js +103 -0
  101. package/dist/test/index.js.map +1 -0
  102. package/docs/ADVANCED_FEATURES.md +836 -0
  103. package/docs/API_REFERENCE.md +925 -0
  104. package/docs/CHAT_INPUT.md +807 -0
  105. package/docs/COMPONENTS.md +1035 -0
  106. package/docs/EVENTS.md +564 -0
  107. package/docs/GETTING_STARTED.md +394 -0
  108. package/docs/LOCALIZATION.md +773 -0
  109. package/docs/README.md +341 -0
  110. package/docs/SVELTE_COMPONENTS.md +955 -0
  111. package/generated/globals.d.ts +1 -0
  112. package/generated/index.d.ts +30 -0
  113. package/generated/svelte-dbi.d.ts +588 -0
  114. package/package.json +57 -47
  115. package/readme.md +168 -491
  116. package/src/methods/hookInteractionListeners.ts +23 -12
  117. package/src/types/Components/HTMLComponentsV2/index.ts +353 -12
  118. package/src/types/Components/HTMLComponentsV2/parser.ts +14 -4
  119. package/src/types/Components/HTMLComponentsV2/svelteParser.ts +904 -0
  120. package/src/types/Components/HTMLComponentsV2/svelteRenderer.ts +332 -0
  121. package/test/index.ts +105 -0
  122. package/test/product-showcase.svelte +199 -0
  123. package/tsconfig.json +13 -3
  124. package/dist/DBI.d.ts.map +0 -1
  125. package/dist/DBI.js.map +0 -1
  126. package/dist/Events.d.ts.map +0 -1
  127. package/dist/Events.js.map +0 -1
  128. package/dist/index.d.ts.map +0 -1
  129. package/dist/index.js.map +0 -1
  130. package/dist/methods/handleMessageCommands.d.ts.map +0 -1
  131. package/dist/methods/handleMessageCommands.js.map +0 -1
  132. package/dist/methods/hookEventListeners.d.ts.map +0 -1
  133. package/dist/methods/hookEventListeners.js.map +0 -1
  134. package/dist/methods/hookInteractionListeners.d.ts.map +0 -1
  135. package/dist/methods/hookInteractionListeners.js.map +0 -1
  136. package/dist/methods/publishInteractions.d.ts.map +0 -1
  137. package/dist/methods/publishInteractions.js.map +0 -1
  138. package/dist/types/ApplicationRoleConnectionMetadata.d.ts.map +0 -1
  139. package/dist/types/ApplicationRoleConnectionMetadata.js.map +0 -1
  140. package/dist/types/Builders/ButtonBuilder.d.ts.map +0 -1
  141. package/dist/types/Builders/ButtonBuilder.js.map +0 -1
  142. package/dist/types/Builders/ChannelSelectMenuBuilder.d.ts.map +0 -1
  143. package/dist/types/Builders/ChannelSelectMenuBuilder.js.map +0 -1
  144. package/dist/types/Builders/MentionableSelectMenuBuilder.d.ts.map +0 -1
  145. package/dist/types/Builders/MentionableSelectMenuBuilder.js.map +0 -1
  146. package/dist/types/Builders/ModalBuilder.d.ts.map +0 -1
  147. package/dist/types/Builders/ModalBuilder.js.map +0 -1
  148. package/dist/types/Builders/RoleSelectMenuBuilder.d.ts.map +0 -1
  149. package/dist/types/Builders/RoleSelectMenuBuilder.js.map +0 -1
  150. package/dist/types/Builders/StringSelectMenuBuilder.d.ts.map +0 -1
  151. package/dist/types/Builders/StringSelectMenuBuilder.js.map +0 -1
  152. package/dist/types/Builders/UserSelectMenuBuilder.d.ts.map +0 -1
  153. package/dist/types/Builders/UserSelectMenuBuilder.js.map +0 -1
  154. package/dist/types/ChatInput/ChatInput.d.ts.map +0 -1
  155. package/dist/types/ChatInput/ChatInput.js.map +0 -1
  156. package/dist/types/ChatInput/ChatInputOptions.d.ts.map +0 -1
  157. package/dist/types/ChatInput/ChatInputOptions.js.map +0 -1
  158. package/dist/types/Components/Button.d.ts.map +0 -1
  159. package/dist/types/Components/Button.js.map +0 -1
  160. package/dist/types/Components/ChannelSelectMenu.d.ts.map +0 -1
  161. package/dist/types/Components/ChannelSelectMenu.js.map +0 -1
  162. package/dist/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.d.ts.map +0 -1
  163. package/dist/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.js.map +0 -1
  164. package/dist/types/Components/HTMLComponentsV2/index.d.ts +0 -19
  165. package/dist/types/Components/HTMLComponentsV2/index.d.ts.map +0 -1
  166. package/dist/types/Components/HTMLComponentsV2/index.js +0 -31
  167. package/dist/types/Components/HTMLComponentsV2/index.js.map +0 -1
  168. package/dist/types/Components/HTMLComponentsV2/parser.d.ts.map +0 -1
  169. package/dist/types/Components/HTMLComponentsV2/parser.js.map +0 -1
  170. package/dist/types/Components/MentionableSelectMenu.d.ts.map +0 -1
  171. package/dist/types/Components/MentionableSelectMenu.js.map +0 -1
  172. package/dist/types/Components/Modal.d.ts.map +0 -1
  173. package/dist/types/Components/Modal.js.map +0 -1
  174. package/dist/types/Components/RoleSelectMenu.d.ts.map +0 -1
  175. package/dist/types/Components/RoleSelectMenu.js.map +0 -1
  176. package/dist/types/Components/StringSelectMenu.d.ts.map +0 -1
  177. package/dist/types/Components/StringSelectMenu.js.map +0 -1
  178. package/dist/types/Components/UserSelectMenu.d.ts.map +0 -1
  179. package/dist/types/Components/UserSelectMenu.js.map +0 -1
  180. package/dist/types/Event.d.ts.map +0 -1
  181. package/dist/types/Event.js.map +0 -1
  182. package/dist/types/Interaction.d.ts.map +0 -1
  183. package/dist/types/Interaction.js.map +0 -1
  184. package/dist/types/other/CustomEvent.d.ts.map +0 -1
  185. package/dist/types/other/CustomEvent.js.map +0 -1
  186. package/dist/types/other/FakeMessageInteraction.d.ts.map +0 -1
  187. package/dist/types/other/FakeMessageInteraction.js.map +0 -1
  188. package/dist/types/other/InteractionLocale.d.ts.map +0 -1
  189. package/dist/types/other/InteractionLocale.js.map +0 -1
  190. package/dist/types/other/Locale.d.ts.map +0 -1
  191. package/dist/types/other/Locale.js.map +0 -1
  192. package/dist/types/other/MessageContextMenu.d.ts.map +0 -1
  193. package/dist/types/other/MessageContextMenu.js.map +0 -1
  194. package/dist/types/other/UserContextMenu.d.ts.map +0 -1
  195. package/dist/types/other/UserContextMenu.js.map +0 -1
  196. package/dist/utils/MemoryStore.d.ts.map +0 -1
  197. package/dist/utils/MemoryStore.js.map +0 -1
  198. package/dist/utils/UtilTypes.d.ts.map +0 -1
  199. package/dist/utils/UtilTypes.js.map +0 -1
  200. package/dist/utils/customId.d.ts.map +0 -1
  201. package/dist/utils/customId.js.map +0 -1
  202. package/dist/utils/permissions.d.ts.map +0 -1
  203. package/dist/utils/permissions.js.map +0 -1
  204. package/dist/utils/recursiveImport.d.ts.map +0 -1
  205. package/dist/utils/recursiveImport.js.map +0 -1
  206. package/dist/utils/recursiveUnload.d.ts.map +0 -1
  207. package/dist/utils/recursiveUnload.js.map +0 -1
  208. package/dist/utils/unloadModule.d.ts.map +0 -1
  209. package/dist/utils/unloadModule.js.map +0 -1
  210. package/examples/modal/dbi.js +0 -30
  211. package/examples/modal/login.js +0 -15
  212. package/examples/modal/package.json +0 -15
  213. package/examples/modal/publish.js +0 -13
  214. package/examples/modal/src/chatInput.js +0 -38
  215. package/examples/modal/src/components.js +0 -33
  216. package/examples/modal/src/event.js +0 -20
  217. package/examples/modal/src/interactionlocales.js +0 -24
  218. package/examples/modal/src/locales.js +0 -38
  219. package/examples/modal/src/modal.js +0 -28
  220. /package/dist/{DBI.d.ts → src/DBI.d.ts} +0 -0
  221. /package/dist/{DBI.js → src/DBI.js} +0 -0
  222. /package/dist/{Events.d.ts → src/Events.d.ts} +0 -0
  223. /package/dist/{Events.js → src/Events.js} +0 -0
  224. /package/dist/{data → src/data}/eventMap.json +0 -0
  225. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  226. /package/dist/{index.js → src/index.js} +0 -0
  227. /package/dist/{methods → src/methods}/handleMessageCommands.d.ts +0 -0
  228. /package/dist/{methods → src/methods}/handleMessageCommands.js +0 -0
  229. /package/dist/{methods → src/methods}/hookEventListeners.d.ts +0 -0
  230. /package/dist/{methods → src/methods}/hookEventListeners.js +0 -0
  231. /package/dist/{methods → src/methods}/hookInteractionListeners.d.ts +0 -0
  232. /package/dist/{methods → src/methods}/publishInteractions.d.ts +0 -0
  233. /package/dist/{methods → src/methods}/publishInteractions.js +0 -0
  234. /package/dist/{types → src/types}/ApplicationRoleConnectionMetadata.d.ts +0 -0
  235. /package/dist/{types → src/types}/ApplicationRoleConnectionMetadata.js +0 -0
  236. /package/dist/{types → src/types}/Builders/ButtonBuilder.d.ts +0 -0
  237. /package/dist/{types → src/types}/Builders/ButtonBuilder.js +0 -0
  238. /package/dist/{types → src/types}/Builders/ChannelSelectMenuBuilder.d.ts +0 -0
  239. /package/dist/{types → src/types}/Builders/ChannelSelectMenuBuilder.js +0 -0
  240. /package/dist/{types → src/types}/Builders/MentionableSelectMenuBuilder.d.ts +0 -0
  241. /package/dist/{types → src/types}/Builders/MentionableSelectMenuBuilder.js +0 -0
  242. /package/dist/{types → src/types}/Builders/ModalBuilder.d.ts +0 -0
  243. /package/dist/{types → src/types}/Builders/ModalBuilder.js +0 -0
  244. /package/dist/{types → src/types}/Builders/RoleSelectMenuBuilder.d.ts +0 -0
  245. /package/dist/{types → src/types}/Builders/RoleSelectMenuBuilder.js +0 -0
  246. /package/dist/{types → src/types}/Builders/StringSelectMenuBuilder.d.ts +0 -0
  247. /package/dist/{types → src/types}/Builders/StringSelectMenuBuilder.js +0 -0
  248. /package/dist/{types → src/types}/Builders/UserSelectMenuBuilder.d.ts +0 -0
  249. /package/dist/{types → src/types}/Builders/UserSelectMenuBuilder.js +0 -0
  250. /package/dist/{types → src/types}/ChatInput/ChatInput.d.ts +0 -0
  251. /package/dist/{types → src/types}/ChatInput/ChatInput.js +0 -0
  252. /package/dist/{types → src/types}/ChatInput/ChatInputOptions.js +0 -0
  253. /package/dist/{types → src/types}/Components/Button.d.ts +0 -0
  254. /package/dist/{types → src/types}/Components/Button.js +0 -0
  255. /package/dist/{types → src/types}/Components/ChannelSelectMenu.d.ts +0 -0
  256. /package/dist/{types → src/types}/Components/ChannelSelectMenu.js +0 -0
  257. /package/dist/{types → src/types}/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.d.ts +0 -0
  258. /package/dist/{types → src/types}/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.js +0 -0
  259. /package/dist/{types → src/types}/Components/HTMLComponentsV2/parser.d.ts +0 -0
  260. /package/dist/{types → src/types}/Components/MentionableSelectMenu.d.ts +0 -0
  261. /package/dist/{types → src/types}/Components/MentionableSelectMenu.js +0 -0
  262. /package/dist/{types → src/types}/Components/Modal.d.ts +0 -0
  263. /package/dist/{types → src/types}/Components/Modal.js +0 -0
  264. /package/dist/{types → src/types}/Components/RoleSelectMenu.d.ts +0 -0
  265. /package/dist/{types → src/types}/Components/RoleSelectMenu.js +0 -0
  266. /package/dist/{types → src/types}/Components/StringSelectMenu.d.ts +0 -0
  267. /package/dist/{types → src/types}/Components/StringSelectMenu.js +0 -0
  268. /package/dist/{types → src/types}/Components/UserSelectMenu.d.ts +0 -0
  269. /package/dist/{types → src/types}/Components/UserSelectMenu.js +0 -0
  270. /package/dist/{types → src/types}/Event.d.ts +0 -0
  271. /package/dist/{types → src/types}/Event.js +0 -0
  272. /package/dist/{types → src/types}/Interaction.d.ts +0 -0
  273. /package/dist/{types → src/types}/Interaction.js +0 -0
  274. /package/dist/{types → src/types}/other/CustomEvent.d.ts +0 -0
  275. /package/dist/{types → src/types}/other/CustomEvent.js +0 -0
  276. /package/dist/{types → src/types}/other/FakeMessageInteraction.d.ts +0 -0
  277. /package/dist/{types → src/types}/other/FakeMessageInteraction.js +0 -0
  278. /package/dist/{types → src/types}/other/InteractionLocale.d.ts +0 -0
  279. /package/dist/{types → src/types}/other/InteractionLocale.js +0 -0
  280. /package/dist/{types → src/types}/other/Locale.d.ts +0 -0
  281. /package/dist/{types → src/types}/other/Locale.js +0 -0
  282. /package/dist/{types → src/types}/other/MessageContextMenu.d.ts +0 -0
  283. /package/dist/{types → src/types}/other/MessageContextMenu.js +0 -0
  284. /package/dist/{types → src/types}/other/UserContextMenu.d.ts +0 -0
  285. /package/dist/{types → src/types}/other/UserContextMenu.js +0 -0
  286. /package/dist/{utils → src/utils}/MemoryStore.d.ts +0 -0
  287. /package/dist/{utils → src/utils}/MemoryStore.js +0 -0
  288. /package/dist/{utils → src/utils}/UtilTypes.d.ts +0 -0
  289. /package/dist/{utils → src/utils}/UtilTypes.js +0 -0
  290. /package/dist/{utils → src/utils}/customId.d.ts +0 -0
  291. /package/dist/{utils → src/utils}/customId.js +0 -0
  292. /package/dist/{utils → src/utils}/permissions.d.ts +0 -0
  293. /package/dist/{utils → src/utils}/permissions.js +0 -0
  294. /package/dist/{utils → src/utils}/recursiveImport.d.ts +0 -0
  295. /package/dist/{utils → src/utils}/recursiveImport.js +0 -0
  296. /package/dist/{utils → src/utils}/recursiveUnload.d.ts +0 -0
  297. /package/dist/{utils → src/utils}/recursiveUnload.js +0 -0
  298. /package/dist/{utils → src/utils}/unloadModule.d.ts +0 -0
  299. /package/dist/{utils → src/utils}/unloadModule.js +0 -0
package/docs/README.md ADDED
@@ -0,0 +1,341 @@
1
+ # DBI - Discord Bot Infrastructure
2
+
3
+ <div align="center">
4
+
5
+ **The most advanced, modern, and developer-friendly Discord bot framework available.**
6
+
7
+ [![npm version](https://img.shields.io/npm/v/@mostfeatured/dbi.svg)](https://www.npmjs.com/package/@mostfeatured/dbi)
8
+ [![Discord.js](https://img.shields.io/badge/discord.js-v14-blue.svg)](https://discord.js.org)
9
+ [![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue.svg)](https://www.typescriptlang.org/)
10
+
11
+ </div>
12
+
13
+ ---
14
+
15
+ ## 🌟 Why DBI?
16
+
17
+ DBI (Discord Bot Infrastructure) is not just another Discord bot template—it's a **powerful NPM module** that provides a complete infrastructure for building production-ready Discord bots with minimal boilerplate.
18
+
19
+ ### Key Features
20
+
21
+ | Feature | Description |
22
+ |---------|-------------|
23
+ | 🎯 **Slash Commands** | Full support for Discord's application commands with type-safe options |
24
+ | 🧩 **Components V2** | Buttons, Select Menus, Modals with built-in state management |
25
+ | ⚡ **Svelte Integration** | Build reactive Discord UIs with Svelte 5 components |
26
+ | 🌍 **Localization** | Multi-language support for both content and interactions |
27
+ | 📨 **Message Commands** | Automatic slash-to-message command conversion |
28
+ | 🔄 **Reference System** | Pass complex data through components without database |
29
+ | ⏱️ **Rate Limiting** | Built-in per-user, channel, guild rate limiting |
30
+ | 🔀 **Multi-Client** | Support for multiple bot clients simultaneously |
31
+ | 📦 **Hybrid Sharding** | Built-in support for discord-hybrid-sharding |
32
+ | 🔒 **Type Safety** | Full TypeScript support with intelligent autocomplete |
33
+
34
+ ---
35
+
36
+ ## 📚 Documentation
37
+
38
+ | Document | Description |
39
+ |----------|-------------|
40
+ | [Getting Started](./GETTING_STARTED.md) | Installation and basic setup |
41
+ | [Chat Input Commands](./CHAT_INPUT.md) | Slash commands and options |
42
+ | [Components](./COMPONENTS.md) | Buttons, Select Menus, Modals |
43
+ | [Events](./EVENTS.md) | Discord events and Custom Events |
44
+ | [Localization](./LOCALIZATION.md) | Multi-language support |
45
+ | [Svelte Components](./SVELTE_COMPONENTS.md) | Reactive UI with Svelte 5 |
46
+ | [Advanced Features](./ADVANCED_FEATURES.md) | References, Rate Limiting, Message Commands |
47
+ | [API Reference](./API_REFERENCE.md) | Complete API documentation |
48
+
49
+ ---
50
+
51
+ ## 🚀 Quick Start
52
+
53
+ ### Installation
54
+
55
+ ```bash
56
+ npm install @mostfeatured/dbi discord.js
57
+ # or
58
+ pnpm add @mostfeatured/dbi discord.js
59
+ # or
60
+ yarn add @mostfeatured/dbi discord.js
61
+ ```
62
+
63
+ ### Project Structure
64
+
65
+ ```
66
+ my-bot/
67
+ ├── dbi.js # DBI configuration
68
+ ├── login.js # Bot startup script
69
+ ├── publish.js # Command publishing script
70
+ └── src/ # Your bot features
71
+ ├── commands/
72
+ ├── events/
73
+ ├── components/
74
+ └── locales/
75
+ ```
76
+
77
+ ### Step 1: Configure DBI (`dbi.js`)
78
+
79
+ ```javascript
80
+ const { createDBI } = require("@mostfeatured/dbi");
81
+
82
+ const dbi = createDBI("my-bot", {
83
+ strict: true,
84
+ discord: {
85
+ token: process.env.DISCORD_TOKEN,
86
+ options: {
87
+ intents: ["Guilds", "GuildMessages"]
88
+ }
89
+ },
90
+ defaults: {
91
+ locale: { name: "en" },
92
+ defaultMemberPermissions: ["SendMessages"],
93
+ directMessages: false
94
+ },
95
+ references: {
96
+ autoClear: {
97
+ ttl: 60 * 60 * 1000, // 1 hour
98
+ check: 60 * 1000 // Check every minute
99
+ }
100
+ }
101
+ });
102
+
103
+ module.exports = dbi;
104
+ ```
105
+
106
+ ### Step 2: Create a Command (`src/commands/ping.js`)
107
+
108
+ ```javascript
109
+ const dbi = require("../dbi");
110
+
111
+ dbi.register(({ ChatInput }) => {
112
+ ChatInput({
113
+ name: "ping",
114
+ description: "Check the bot's latency",
115
+ async onExecute({ interaction, dbi }) {
116
+ const latency = dbi.client().client.ws.ping;
117
+ await interaction.reply(`🏓 Pong! Latency: ${latency}ms`);
118
+ }
119
+ });
120
+ });
121
+ ```
122
+
123
+ ### Step 3: Start the Bot (`login.js`)
124
+
125
+ ```javascript
126
+ const { Utils } = require("@mostfeatured/dbi");
127
+ const dbi = require("./dbi");
128
+
129
+ (async () => {
130
+ // Import all files from src/
131
+ await Utils.recursiveImport("./src");
132
+
133
+ // Load all registered features
134
+ await dbi.load();
135
+
136
+ // Connect to Discord
137
+ await dbi.login();
138
+
139
+ console.log(`✅ Logged in as ${dbi.client().client.user.tag}`);
140
+ })();
141
+ ```
142
+
143
+ ### Step 4: Publish Commands (`publish.js`)
144
+
145
+ ```javascript
146
+ const { Utils } = require("@mostfeatured/dbi");
147
+ const dbi = require("./dbi");
148
+
149
+ (async () => {
150
+ await Utils.recursiveImport("./src");
151
+ await dbi.load();
152
+
153
+ // Publish to a specific guild (for development)
154
+ await dbi.publish("Guild", "YOUR_GUILD_ID");
155
+
156
+ // Or publish globally (for production)
157
+ // await dbi.publish("Global");
158
+
159
+ await dbi.unload();
160
+ console.log("✅ Commands published!");
161
+ })();
162
+ ```
163
+
164
+ ---
165
+
166
+ ## 🎯 Core Concepts
167
+
168
+ ### The Register Pattern
169
+
170
+ DBI uses a register pattern to define all bot features:
171
+
172
+ ```javascript
173
+ dbi.register(({ ChatInput, Button, Event, Locale }) => {
174
+ // Define features here
175
+ ChatInput({ /* ... */ });
176
+ Button({ /* ... */ });
177
+ Event({ /* ... */ });
178
+ Locale({ /* ... */ });
179
+ });
180
+ ```
181
+
182
+ This pattern provides:
183
+ - **Dependency injection** - Access only what you need
184
+ - **Type safety** - Full autocomplete support
185
+ - **Organization** - Group related features together
186
+ - **Hot reloading** - Support for `onUnload` callbacks
187
+
188
+ ### Available Register Functions
189
+
190
+ | Function | Description |
191
+ |----------|-------------|
192
+ | `ChatInput` | Slash commands |
193
+ | `Button` | Button components |
194
+ | `StringSelectMenu` | String select menus |
195
+ | `UserSelectMenu` | User select menus |
196
+ | `RoleSelectMenu` | Role select menus |
197
+ | `ChannelSelectMenu` | Channel select menus |
198
+ | `MentionableSelectMenu` | Mentionable select menus |
199
+ | `Modal` | Modal dialogs |
200
+ | `MessageContextMenu` | Message context menu commands |
201
+ | `UserContextMenu` | User context menu commands |
202
+ | `Event` | Discord events |
203
+ | `Locale` | Content localization |
204
+ | `InteractionLocale` | Interaction name localization |
205
+ | `CustomEvent` | Custom event definitions |
206
+ | `HTMLComponentsV2` | Svelte/Eta template components |
207
+ | `ChatInputOptions` | Command option builders |
208
+ | `onUnload` | Cleanup callback for hot reloading |
209
+
210
+ ### Inline Listeners
211
+
212
+ Create one-time use components without pre-registration:
213
+
214
+ ```javascript
215
+ dbi.register(({ ChatInput, createInlineButton }) => {
216
+ ChatInput({
217
+ name: "confirm",
218
+ description: "Confirm an action",
219
+ async onExecute({ interaction }) {
220
+ const confirmBtn = createInlineButton({
221
+ options: { style: "Success", label: "Confirm" },
222
+ onExecute({ interaction }) {
223
+ interaction.reply("Confirmed!");
224
+ }
225
+ });
226
+
227
+ await interaction.reply({
228
+ content: "Are you sure?",
229
+ components: [
230
+ {
231
+ type: 1,
232
+ components: [confirmBtn.toJSON()]
233
+ }
234
+ ]
235
+ });
236
+ }
237
+ });
238
+ });
239
+ ```
240
+
241
+ ---
242
+
243
+ ## 💡 Example: Complete Feature
244
+
245
+ Here's a complete example showing multiple DBI features working together:
246
+
247
+ ```javascript
248
+ const dbi = require("../dbi");
249
+ const Discord = require("discord.js");
250
+
251
+ dbi.register(({ ChatInput, ChatInputOptions, Button, Locale }) => {
252
+
253
+ // Localization
254
+ Locale({
255
+ name: "en",
256
+ data: {
257
+ poll: {
258
+ title: "Poll: {0}",
259
+ voted: "You voted for: {0}",
260
+ results: "Results so far:"
261
+ }
262
+ }
263
+ });
264
+
265
+ // Button handler
266
+ Button({
267
+ name: "poll-vote",
268
+ onExecute({ interaction, data, locale }) {
269
+ const [option] = data;
270
+ interaction.reply({
271
+ content: locale.user.data.poll.voted(option),
272
+ ephemeral: true
273
+ });
274
+ },
275
+ options: {
276
+ style: Discord.ButtonStyle.Primary
277
+ }
278
+ });
279
+
280
+ // Slash command
281
+ ChatInput({
282
+ name: "poll",
283
+ description: "Create a poll",
284
+ options: [
285
+ ChatInputOptions.string({
286
+ name: "question",
287
+ description: "The poll question",
288
+ required: true
289
+ }),
290
+ ChatInputOptions.string({
291
+ name: "options",
292
+ description: "Comma-separated options",
293
+ required: true
294
+ })
295
+ ],
296
+ async onExecute({ interaction, locale, dbi }) {
297
+ const question = interaction.options.getString("question");
298
+ const options = interaction.options.getString("options").split(",");
299
+
300
+ const buttons = options.map(opt =>
301
+ dbi.interaction("poll-vote").toJSON({
302
+ overrides: { label: opt.trim() },
303
+ reference: { data: [opt.trim()] }
304
+ })
305
+ );
306
+
307
+ await interaction.reply({
308
+ content: locale.user.data.poll.title(question),
309
+ components: [
310
+ {
311
+ type: Discord.ComponentType.ActionRow,
312
+ components: buttons
313
+ }
314
+ ]
315
+ });
316
+ }
317
+ });
318
+ });
319
+ ```
320
+
321
+ ---
322
+
323
+ ## 🔗 Related Links
324
+
325
+ - [Discord.js Documentation](https://discord.js.org/)
326
+ - [Discord Developer Portal](https://discord.com/developers/applications)
327
+ - [Discord API Documentation](https://discord.com/developers/docs)
328
+
329
+ ---
330
+
331
+ ## 📄 License
332
+
333
+ GPL-3.0 License - See [LICENSE](../LICENSE) for details.
334
+
335
+ ---
336
+
337
+ <div align="center">
338
+
339
+ **Made with ❤️ by [TheArmagan](https://github.com/TheArmagan) and the MostFeatured team**
340
+
341
+ </div>