commandkit 1.0.0-dev.20250610125321 → 1.0.0-dev.20250611125312

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 (322) hide show
  1. package/dist/ActionRow-CmTHbo2t.js.map +1 -1
  2. package/dist/{ActionRow-D0wafJhZ.d.ts → ActionRow-DKnFVDME.d.ts} +6 -2
  3. package/dist/{Button-Bl5nbwTS.d.ts → Button-4ZUXdA56.d.ts} +11 -4
  4. package/dist/{ButtonKit-BSI7lCI0.d.ts → ButtonKit-C7r7RPNf.d.ts} +21 -2
  5. package/dist/{ChannelSelectMenuKit-L15A2jpT.d.ts → ChannelSelectMenuKit-BrXvBYNH.d.ts} +19 -3
  6. package/dist/{CommandKit-B-mjdP5x.d.ts → CommandKit-BkMUDbou.d.ts} +806 -9
  7. package/dist/{CommandKit-CnLBu_7m.js → CommandKit-C0W3U6jh.js} +621 -20
  8. package/dist/CommandKit-C0W3U6jh.js.map +1 -0
  9. package/dist/CommandKit.d.ts +25 -25
  10. package/dist/CommandKit.js +26 -26
  11. package/dist/CommandKitEventsChannel-BL_YN3Rm.js +87 -0
  12. package/dist/CommandKitEventsChannel-BL_YN3Rm.js.map +1 -0
  13. package/dist/CommandsRouter-CoOA7hkf.d.ts +146 -0
  14. package/dist/{CommandsRouter-BHaPno8o.js → CommandsRouter-DFRh47qD.js} +87 -1
  15. package/dist/CommandsRouter-DFRh47qD.js.map +1 -0
  16. package/dist/{CompilerPlugin-DrnhOC1c.js → CompilerPlugin-Bmy4izKz.js} +13 -2
  17. package/dist/CompilerPlugin-Bmy4izKz.js.map +1 -0
  18. package/dist/{CompilerPluginRuntime-C9wmPMQf.js → CompilerPluginRuntime-CgVU_gU0.js} +59 -1
  19. package/dist/CompilerPluginRuntime-CgVU_gU0.js.map +1 -0
  20. package/dist/DefaultLogger-pWzrSxMd.d.ts +60 -0
  21. package/dist/{EventInterceptor-Bvh05z7n.js → EventInterceptor-DWCHCGRh.js} +5 -1
  22. package/dist/EventInterceptor-DWCHCGRh.js.map +1 -0
  23. package/dist/{EventInterceptor-D_oEWSnF.d.ts → EventInterceptor-x-R2qshQ.d.ts} +8 -1
  24. package/dist/{EventWorkerContext-BYXamZ_4.d.ts → EventWorkerContext-DoFZMT8u.d.ts} +25 -2
  25. package/dist/{EventWorkerContext-BAKiTqJz.js → EventWorkerContext-DxfS_0fJ.js} +24 -1
  26. package/dist/EventWorkerContext-DxfS_0fJ.js.map +1 -0
  27. package/dist/ILogger-Cs5SFzqd.d.ts +34 -0
  28. package/dist/Logger-5ew_YS4P.d.ts +37 -0
  29. package/dist/{MentionableSelectMenuKit-BiUSKUtZ.d.ts → MentionableSelectMenuKit-CPTKqx-O.d.ts} +14 -3
  30. package/dist/{MessageCommandParser-D02-wpZN.js → MessageCommandParser-Cz-3I-wL.js} +70 -2
  31. package/dist/MessageCommandParser-Cz-3I-wL.js.map +1 -0
  32. package/dist/MessageCommandParser-ROLibZPX.d.ts +195 -0
  33. package/dist/{Modal-Cxm6cs5c.d.ts → Modal-C6UTRdYQ.d.ts} +8 -4
  34. package/dist/{ModalKit-CKtQ8eXW.d.ts → ModalKit-Btz58KYn.d.ts} +23 -2
  35. package/dist/{PluginCommon-DPqnQngK.js → PluginCommon-D_Z8Oiic.js} +23 -1
  36. package/dist/PluginCommon-D_Z8Oiic.js.map +1 -0
  37. package/dist/{RoleSelectMenuKit-BSMKkru2.d.ts → RoleSelectMenuKit-C26lU3sN.d.ts} +19 -3
  38. package/dist/{RuntimePlugin-BJoDa8ZR.js → RuntimePlugin-CehKbceZ.js} +5 -2
  39. package/dist/RuntimePlugin-CehKbceZ.js.map +1 -0
  40. package/dist/SelectMenu-Diy87_ba.d.ts +137 -0
  41. package/dist/{StringSelectMenuKit-B9FHTe48.d.ts → StringSelectMenuKit-Bhs8U6WI.d.ts} +19 -3
  42. package/dist/{UserSelectMenuKit-DiP0imyo.d.ts → UserSelectMenuKit-CfqFJdxz.d.ts} +19 -3
  43. package/dist/analytics/analytics-engine.d.ts +25 -25
  44. package/dist/analytics/analytics-engine.js +26 -26
  45. package/dist/analytics/analytics-provider.d.ts +25 -25
  46. package/dist/analytics/constants.d.ts +13 -0
  47. package/dist/analytics/constants.js +1 -1
  48. package/dist/analytics/utils.d.ts +13 -0
  49. package/dist/analytics/utils.js +26 -26
  50. package/dist/app/commands/AppCommandRunner.d.ts +25 -25
  51. package/dist/app/commands/AppCommandRunner.js +26 -26
  52. package/dist/app/commands/Context.d.ts +25 -25
  53. package/dist/app/commands/Context.js +26 -26
  54. package/dist/app/commands/MessageCommandParser.d.ts +1 -1
  55. package/dist/app/commands/MessageCommandParser.js +2 -2
  56. package/dist/app/commands/helpers.d.ts +1 -1
  57. package/dist/app/commands/helpers.js +1 -1
  58. package/dist/app/events/EventWorkerContext.d.ts +26 -26
  59. package/dist/app/events/EventWorkerContext.js +1 -1
  60. package/dist/app/handlers/AppCommandHandler.d.ts +25 -25
  61. package/dist/app/handlers/AppCommandHandler.js +26 -26
  62. package/dist/app/handlers/AppEventsHandler.d.ts +25 -25
  63. package/dist/app/handlers/AppEventsHandler.js +26 -26
  64. package/dist/app/index.d.ts +25 -25
  65. package/dist/app/index.js +27 -27
  66. package/dist/app/middleware/signals.js +2 -2
  67. package/dist/app/register/CommandRegistrar.d.ts +25 -25
  68. package/dist/app/register/CommandRegistrar.js +26 -26
  69. package/dist/app/router/CommandsRouter.d.ts +1 -1
  70. package/dist/app/router/CommandsRouter.js +1 -1
  71. package/dist/app/router/index.d.ts +1 -1
  72. package/dist/app/router/index.js +1 -1
  73. package/dist/{app-process-YbSHvqf-.js → app-process-Bo-LedP8.js} +11 -3
  74. package/dist/app-process-Bo-LedP8.js.map +1 -0
  75. package/dist/{build-BejatFZX.js → build-CWrpkal-.js} +14 -6
  76. package/dist/build-CWrpkal-.js.map +1 -0
  77. package/dist/cli/app-process.d.ts +5 -0
  78. package/dist/cli/app-process.js +5 -5
  79. package/dist/cli/build.d.ts +33 -25
  80. package/dist/cli/build.js +29 -29
  81. package/dist/cli/common.d.ts +57 -27
  82. package/dist/cli/common.js +3 -3
  83. package/dist/cli/development.d.ts +4 -0
  84. package/dist/cli/development.js +46 -30
  85. package/dist/cli/development.js.map +1 -1
  86. package/dist/cli/env.d.ts +32 -0
  87. package/dist/cli/env.js +1 -1
  88. package/dist/cli/generators.d.ts +8 -0
  89. package/dist/cli/generators.js +27 -3
  90. package/dist/cli/generators.js.map +1 -1
  91. package/dist/cli/information.d.ts +4 -0
  92. package/dist/cli/information.js +17 -1
  93. package/dist/cli/information.js.map +1 -1
  94. package/dist/cli/init.js +27 -27
  95. package/dist/cli/production.d.ts +9 -0
  96. package/dist/cli/production.js +39 -31
  97. package/dist/cli/production.js.map +1 -1
  98. package/dist/cli/type-checker.d.ts +2 -0
  99. package/dist/cli/type-checker.js +4 -4
  100. package/dist/cli/utils.d.ts +5 -0
  101. package/dist/cli/utils.js +1 -1
  102. package/dist/{common-pvPJVTfe.d.ts → common-DOCvOVC4.d.ts} +7 -2
  103. package/dist/{common-CW8v7gAn.js → common-Dasi9oKU.js} +44 -2
  104. package/dist/common-Dasi9oKU.js.map +1 -0
  105. package/dist/{common-CeO-vn8Y.js → common-vnMIelAE.js} +4 -1
  106. package/dist/common-vnMIelAE.js.map +1 -0
  107. package/dist/components/common/EventInterceptor.d.ts +1 -1
  108. package/dist/components/common/EventInterceptor.js +1 -1
  109. package/dist/components/common/element.d.ts +4 -4
  110. package/dist/components/common/element.js +2 -2
  111. package/dist/components/index.d.ts +20 -20
  112. package/dist/components/index.js +26 -26
  113. package/dist/components/v1/action-row/ActionRow.d.ts +5 -5
  114. package/dist/components/v1/button/Button.d.ts +5 -5
  115. package/dist/components/v1/button/Button.js +26 -26
  116. package/dist/components/v1/button/ButtonKit.d.ts +2 -2
  117. package/dist/components/v1/button/ButtonKit.js +26 -26
  118. package/dist/components/v1/modal/Modal.d.ts +5 -5
  119. package/dist/components/v1/modal/Modal.js +26 -26
  120. package/dist/components/v1/modal/ModalKit.d.ts +2 -2
  121. package/dist/components/v1/modal/ModalKit.js +26 -26
  122. package/dist/components/v1/select-menu/ChannelSelectMenuKit.d.ts +3 -3
  123. package/dist/components/v1/select-menu/ChannelSelectMenuKit.js +26 -26
  124. package/dist/components/v1/select-menu/MentionableSelectMenuKit.d.ts +3 -3
  125. package/dist/components/v1/select-menu/MentionableSelectMenuKit.js +26 -26
  126. package/dist/components/v1/select-menu/RoleSelectMenuKit.d.ts +3 -3
  127. package/dist/components/v1/select-menu/RoleSelectMenuKit.js +26 -26
  128. package/dist/components/v1/select-menu/SelectMenu.d.ts +8 -8
  129. package/dist/components/v1/select-menu/SelectMenu.js +26 -26
  130. package/dist/components/v1/select-menu/StringSelectMenuKit.d.ts +3 -3
  131. package/dist/components/v1/select-menu/StringSelectMenuKit.js +26 -26
  132. package/dist/components/v1/select-menu/UserSelectMenuKit.d.ts +3 -3
  133. package/dist/components/v1/select-menu/UserSelectMenuKit.js +26 -26
  134. package/dist/components/v1/select-menu/common.d.ts +2 -2
  135. package/dist/components/v2/common.d.ts +4 -0
  136. package/dist/components/v2/common.js +1 -1
  137. package/dist/components/v2/container.d.ts +1 -1
  138. package/dist/components/v2/container.js +2 -2
  139. package/dist/components/v2/file.d.ts +1 -1
  140. package/dist/components/v2/file.js +1 -1
  141. package/dist/components/v2/index.d.ts +6 -6
  142. package/dist/components/v2/index.js +7 -7
  143. package/dist/components/v2/media-gallery.d.ts +1 -1
  144. package/dist/components/v2/media-gallery.js +2 -2
  145. package/dist/components/v2/section.d.ts +1 -1
  146. package/dist/components/v2/section.js +2 -2
  147. package/dist/components/v2/separator.d.ts +1 -1
  148. package/dist/components/v2/separator.js +1 -1
  149. package/dist/components/v2/text-display.d.ts +1 -1
  150. package/dist/components/v2/text-display.js +1 -1
  151. package/dist/config/config.d.ts +28 -28
  152. package/dist/config/config.js +26 -26
  153. package/dist/config/default.d.ts +30 -27
  154. package/dist/config/default.js +26 -26
  155. package/dist/config/loader.d.ts +33 -27
  156. package/dist/config/loader.js +26 -26
  157. package/dist/config/types.d.ts +26 -26
  158. package/dist/config/utils.d.ts +27 -27
  159. package/dist/config/utils.js +3 -0
  160. package/dist/config/utils.js.map +1 -1
  161. package/dist/{config-BjmEZYpx.d.ts → config-aCpqqs1C.d.ts} +3 -3
  162. package/dist/constants-BTttfrm3.d.ts +42 -0
  163. package/dist/{constants-DWe181uQ.js → constants-CXwjhIYH.js} +9 -1
  164. package/dist/constants-CXwjhIYH.js.map +1 -0
  165. package/dist/{constants-CCqS_v55.js → constants-DDRctWlU.js} +14 -8
  166. package/dist/constants-DDRctWlU.js.map +1 -0
  167. package/dist/{container-CpuiLsZM.js → container-DCjIgp-B.js} +12 -2
  168. package/dist/container-DCjIgp-B.js.map +1 -0
  169. package/dist/container-DaUKKPm-.d.ts +24 -0
  170. package/dist/context/async-context.d.ts +25 -25
  171. package/dist/context/async-context.js +26 -26
  172. package/dist/context/environment.d.ts +25 -25
  173. package/dist/context/environment.js +26 -26
  174. package/dist/element-CAXu1XtK.d.ts +72 -0
  175. package/dist/{element-DcqNz1dV.js → element-Cq-LoDjk.js} +27 -2
  176. package/dist/element-Cq-LoDjk.js.map +1 -0
  177. package/dist/{env-ERkaRfQO.js → env-DemeP-uq.js} +33 -1
  178. package/dist/env-DemeP-uq.js.map +1 -0
  179. package/dist/{error-codes-C_UO39jz.js → error-codes-CxlUBdF6.js} +20 -1
  180. package/dist/error-codes-CxlUBdF6.js.map +1 -0
  181. package/dist/events/CommandKitEventsChannel.d.ts +25 -25
  182. package/dist/events/CommandKitEventsChannel.js +1 -1
  183. package/dist/{feature-flags-BFiGn38a.js → feature-flags-CLZLGnAs.js} +4 -4
  184. package/dist/feature-flags-CLZLGnAs.js.map +1 -0
  185. package/dist/file-DTrr-p09.d.ts +24 -0
  186. package/dist/{file-DE69SSOP.js → file-DVZC0QXI.js} +11 -1
  187. package/dist/file-DVZC0QXI.js.map +1 -0
  188. package/dist/flags/FlagProvider.d.ts +25 -25
  189. package/dist/flags/feature-flags.d.ts +25 -25
  190. package/dist/flags/feature-flags.js +27 -27
  191. package/dist/flags/store.d.ts +25 -25
  192. package/dist/flags/store.js +1 -1
  193. package/dist/{helpers-CswC9gKF.js → helpers-CnfXqF_k.js} +11 -1
  194. package/dist/helpers-CnfXqF_k.js.map +1 -0
  195. package/dist/helpers-Wg6P5fRQ.d.ts +23 -0
  196. package/dist/index.d.ts +34 -34
  197. package/dist/index.js +30 -31
  198. package/dist/{init-BDgyvx9E.js → init-_FwacDcI.js} +6 -6
  199. package/dist/{init-BDgyvx9E.js.map → init-_FwacDcI.js.map} +1 -1
  200. package/dist/logger/DefaultLogger.d.ts +2 -2
  201. package/dist/logger/DefaultLogger.js +26 -26
  202. package/dist/logger/ILogger.d.ts +1 -1
  203. package/dist/logger/Logger.d.ts +2 -2
  204. package/dist/logger/Logger.js +26 -26
  205. package/dist/media-gallery-BMsXSot3.d.ts +49 -0
  206. package/dist/{media-gallery-nUEHqKVF.js → media-gallery-CIKypjbJ.js} +27 -2
  207. package/dist/media-gallery-CIKypjbJ.js.map +1 -0
  208. package/dist/plugins/CompilerPlugin.d.ts +25 -25
  209. package/dist/plugins/CompilerPlugin.js +2 -2
  210. package/dist/plugins/PluginCommon.d.ts +25 -25
  211. package/dist/plugins/PluginCommon.js +1 -1
  212. package/dist/plugins/RuntimePlugin.d.ts +25 -25
  213. package/dist/plugins/RuntimePlugin.js +2 -2
  214. package/dist/plugins/index.d.ts +25 -25
  215. package/dist/plugins/index.js +26 -26
  216. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.d.ts +25 -25
  217. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js +26 -26
  218. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.d.ts +25 -25
  219. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js +1 -1
  220. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.d.ts +25 -25
  221. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js +26 -26
  222. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.d.ts +37 -25
  223. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js +26 -26
  224. package/dist/plugins/plugin-runtime/runtime.d.ts +25 -25
  225. package/dist/plugins/types.d.ts +25 -25
  226. package/dist/{section-D6t7tyEZ.js → section-CuYr0Inu.js} +22 -2
  227. package/dist/section-CuYr0Inu.js.map +1 -0
  228. package/dist/section-Dh_FhPeC.d.ts +45 -0
  229. package/dist/separator-CMf6Cyy5.d.ts +22 -0
  230. package/dist/{separator-DYAFK-Jj.js → separator-DLdWBjSN.js} +11 -1
  231. package/dist/separator-DLdWBjSN.js.map +1 -0
  232. package/dist/{signals-scJdEbly.js → signals-CSSSZAZ6.js} +2 -2
  233. package/dist/{signals-scJdEbly.js.map → signals-CSSSZAZ6.js.map} +1 -1
  234. package/dist/{store-Ci6ib2C9.js → store-x93NXUy_.js} +5 -1
  235. package/dist/store-x93NXUy_.js.map +1 -0
  236. package/dist/{text-display-Dy6JHB5X.js → text-display--p2-BoUa.js} +13 -1
  237. package/dist/text-display--p2-BoUa.js.map +1 -0
  238. package/dist/text-display-DRw3r_lK.d.ts +33 -0
  239. package/dist/{type-checker-CXVdS7qc.js → type-checker-P8oyY259.js} +6 -2
  240. package/dist/type-checker-P8oyY259.js.map +1 -0
  241. package/dist/{types-DjL43eQS.d.ts → types-DwmPE0nY.d.ts} +2 -2
  242. package/dist/{types-package-CTSNSM93.js → types-package-BpY3acyl.js} +8 -2
  243. package/dist/types-package-BpY3acyl.js.map +1 -0
  244. package/dist/types.d.ts +25 -25
  245. package/dist/{utilities-DQT4lzAB.d.ts → utilities-D_MFPmTe.d.ts} +45 -2
  246. package/dist/utils/colors.d.ts +2 -2
  247. package/dist/utils/constants.d.ts +2 -2
  248. package/dist/utils/constants.js +1 -2
  249. package/dist/utils/dev-hooks.d.ts +26 -26
  250. package/dist/utils/dev-hooks.js +26 -26
  251. package/dist/utils/error-codes.d.ts +34 -0
  252. package/dist/utils/error-codes.js +1 -1
  253. package/dist/utils/types-package.d.ts +6 -0
  254. package/dist/utils/types-package.js +2 -2
  255. package/dist/utils/utilities.d.ts +1 -1
  256. package/dist/utils/utilities.js +26 -26
  257. package/dist/utils/warn-unstable.d.ts +10 -0
  258. package/dist/utils/warn-unstable.js +1 -1
  259. package/dist/{utils-IYtoeTur.js → utils-C8a_hMvn.js} +5 -1
  260. package/dist/utils-C8a_hMvn.js.map +1 -0
  261. package/dist/{utils-VCdd7XhD.d.ts → utils-DS6OiGvg.d.ts} +12 -2
  262. package/dist/{version-BSsOib4x.js → version-IoXx-oYe.js} +5 -2
  263. package/dist/version-IoXx-oYe.js.map +1 -0
  264. package/dist/version.js +1 -1
  265. package/dist/{warn-unstable-DHLaxPC8.js → warn-unstable-CttBdmlS.js} +11 -1
  266. package/dist/warn-unstable-CttBdmlS.js.map +1 -0
  267. package/package.json +2 -2
  268. package/dist/CommandKit-CnLBu_7m.js.map +0 -1
  269. package/dist/CommandKitEventsChannel-B6LKgxmv.js +0 -44
  270. package/dist/CommandKitEventsChannel-B6LKgxmv.js.map +0 -1
  271. package/dist/CommandsRouter-BHaPno8o.js.map +0 -1
  272. package/dist/CommandsRouter-C7X-eXE2.d.ts +0 -67
  273. package/dist/CompilerPlugin-DrnhOC1c.js.map +0 -1
  274. package/dist/CompilerPluginRuntime-C9wmPMQf.js.map +0 -1
  275. package/dist/DefaultLogger-CcW-Fuq5.d.ts +0 -30
  276. package/dist/EventInterceptor-Bvh05z7n.js.map +0 -1
  277. package/dist/EventWorkerContext-BAKiTqJz.js.map +0 -1
  278. package/dist/ILogger-kqwb2kUu.d.ts +0 -11
  279. package/dist/Logger-B4B_URL-.d.ts +0 -17
  280. package/dist/MessageCommandParser-D02-wpZN.js.map +0 -1
  281. package/dist/MessageCommandParser-tzroBwij.d.ts +0 -62
  282. package/dist/PluginCommon-DPqnQngK.js.map +0 -1
  283. package/dist/RuntimePlugin-BJoDa8ZR.js.map +0 -1
  284. package/dist/SelectMenu-b7jgrkjO.d.ts +0 -36
  285. package/dist/app-process-YbSHvqf-.js.map +0 -1
  286. package/dist/build-BejatFZX.js.map +0 -1
  287. package/dist/common-CW8v7gAn.js.map +0 -1
  288. package/dist/common-CeO-vn8Y.js.map +0 -1
  289. package/dist/constants-BPWSrMkn.d.ts +0 -18
  290. package/dist/constants-CCqS_v55.js.map +0 -1
  291. package/dist/constants-DWe181uQ.js.map +0 -1
  292. package/dist/container-CpuiLsZM.js.map +0 -1
  293. package/dist/container-CwEATQy2.d.ts +0 -10
  294. package/dist/element-D_nyVwgB.d.ts +0 -30
  295. package/dist/element-DcqNz1dV.js.map +0 -1
  296. package/dist/env-ERkaRfQO.js.map +0 -1
  297. package/dist/error-codes-C_UO39jz.js.map +0 -1
  298. package/dist/feature-flags-BFiGn38a.js.map +0 -1
  299. package/dist/file-BdyYwkaI.d.ts +0 -10
  300. package/dist/file-DE69SSOP.js.map +0 -1
  301. package/dist/helpers-CswC9gKF.js.map +0 -1
  302. package/dist/helpers-DAmE106r.d.ts +0 -9
  303. package/dist/media-gallery-DCu02VXc.d.ts +0 -17
  304. package/dist/media-gallery-nUEHqKVF.js.map +0 -1
  305. package/dist/section-D6t7tyEZ.js.map +0 -1
  306. package/dist/section-fktaECHL.d.ts +0 -18
  307. package/dist/separator-CuesaLrC.d.ts +0 -8
  308. package/dist/separator-DYAFK-Jj.js.map +0 -1
  309. package/dist/store-Ci6ib2C9.js.map +0 -1
  310. package/dist/text-display-DNMwmGHJ.d.ts +0 -12
  311. package/dist/text-display-Dy6JHB5X.js.map +0 -1
  312. package/dist/type-checker-CXVdS7qc.js.map +0 -1
  313. package/dist/types-package-CTSNSM93.js.map +0 -1
  314. package/dist/utils/clone.d.ts +0 -5
  315. package/dist/utils/clone.js +0 -9
  316. package/dist/utils/clone.js.map +0 -1
  317. package/dist/utils/get-paths.d.ts +0 -6
  318. package/dist/utils/get-paths.js +0 -34
  319. package/dist/utils/get-paths.js.map +0 -1
  320. package/dist/utils-IYtoeTur.js.map +0 -1
  321. package/dist/version-BSsOib4x.js.map +0 -1
  322. package/dist/warn-unstable-DHLaxPC8.js.map +0 -1
@@ -1,67 +0,0 @@
1
- import { Collection } from "discord.js";
2
-
3
- //#region src/app/router/CommandsRouter.d.ts
4
- interface Command {
5
- id: string;
6
- name: string;
7
- path: string;
8
- relativePath: string;
9
- parentPath: string;
10
- middlewares: Array<string>;
11
- category: string | null;
12
- }
13
- interface Middleware {
14
- id: string;
15
- name: string;
16
- path: string;
17
- relativePath: string;
18
- parentPath: string;
19
- global: boolean;
20
- command: string | null;
21
- }
22
- interface ParsedCommandData {
23
- commands: Record<string, Command>;
24
- middlewares: Record<string, Middleware>;
25
- }
26
- interface CommandsRouterOptions {
27
- entrypoint: string;
28
- }
29
- declare class CommandsRouter {
30
- private readonly options;
31
- private commands;
32
- private middlewares;
33
- constructor(options: CommandsRouterOptions);
34
- populate(data: ParsedCommandData): void;
35
- isValidPath(): boolean;
36
- private isCommand;
37
- private isMiddleware;
38
- private isCategory;
39
- clear(): void;
40
- scan(): Promise<{
41
- commands: {
42
- [k: string]: Command;
43
- };
44
- middlewares: {
45
- [k: string]: Middleware;
46
- };
47
- }>;
48
- getData(): {
49
- commands: Collection<string, Command>;
50
- middlewares: Collection<string, Middleware>;
51
- };
52
- toJSON(): {
53
- commands: {
54
- [k: string]: Command;
55
- };
56
- middlewares: {
57
- [k: string]: Middleware;
58
- };
59
- };
60
- private traverse;
61
- private handle;
62
- private applyMiddlewares;
63
- private replaceEntrypoint;
64
- }
65
- //#endregion
66
- export { Command, CommandsRouter, CommandsRouterOptions, Middleware, ParsedCommandData };
67
- //# sourceMappingURL=CommandsRouter-C7X-eXE2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CompilerPlugin-DrnhOC1c.js","names":[],"sources":["../src/plugins/CompilerPlugin.ts"],"sourcesContent":["import {\n isPlugin,\n PluginCommon,\n PluginOptions,\n PluginType,\n} from './PluginCommon';\nimport { MaybeFalsey } from './types';\nimport { CompilerPluginRuntime } from './plugin-runtime/CompilerPluginRuntime';\n\nexport interface PluginTransformParameters {\n code: string;\n id: string;\n}\n\nexport interface TransformedResult {\n code?: string;\n map?: string | null;\n}\n\nexport abstract class CompilerPlugin<\n T extends PluginOptions = PluginOptions,\n> extends PluginCommon<T, CompilerPluginRuntime> {\n public readonly type = PluginType.Compiler;\n\n /**\n * Called when transformation is requested to this plugin\n * @param params The parameters for the transformation\n * @returns The transformed result\n */\n public async transform(\n params: PluginTransformParameters,\n ): Promise<MaybeFalsey<TransformedResult>> {\n return null;\n }\n}\n\nexport function isCompilerPlugin(plugin: unknown): plugin is CompilerPlugin {\n return (\n plugin instanceof CompilerPlugin ||\n (isPlugin(plugin) && plugin.type === PluginType.Compiler)\n );\n}\n"],"mappings":";;;AAmBA,IAAsB,iBAAtB,cAEA,kCAAuC;CACrC,AAAgB,OAAO,gCAAW;;;;;;CAOlC,MAAa,UACb,QAC0C;AACxC,SAAO;CACT;AACF;AAEA,SAAgB,iBAAiB,QAA2C;AAC1E,QACE,kBAAkB,kBAClB,8BAAS,OAAO,IAAI,OAAO,SAAS,gCAAW;AAEnD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CompilerPluginRuntime-C9wmPMQf.js","names":[],"sources":["../src/plugins/plugin-runtime/CompilerPluginRuntime.ts"],"sourcesContent":["import {\n CompilerPlugin,\n MaybeFalsey,\n TransformedResult,\n TemplateHandler,\n} from '..';\nimport { AsyncLocalStorage } from 'node:async_hooks';\n\ninterface TemplateEntry {\n handler: TemplateHandler;\n plugin: CompilerPlugin;\n}\n\nenum PluginExecutionMode {\n Activate = 'activate',\n Deactivate = 'deactivate',\n}\n\ntype PluginContext = {\n plugin: CompilerPlugin;\n mode: PluginExecutionMode;\n};\n\nexport class CompilerPluginRuntime {\n public readonly name = 'CompilerPluginRuntime';\n private initialized = false;\n private templates = new Map<string, TemplateEntry>();\n #pluginContext = new AsyncLocalStorage<PluginContext>();\n\n public constructor(private readonly plugins: CompilerPlugin[]) {}\n\n public getPlugins() {\n return this.plugins;\n }\n\n public isEmpty() {\n return !this.plugins.length;\n }\n\n public registerTemplate(name: string, handler: TemplateHandler) {\n const ctx = this.#pluginContext.getStore();\n\n if (!ctx || ctx.mode !== PluginExecutionMode.Activate) {\n throw new Error(\n 'registerTemplate() must be called inside activate() method',\n );\n }\n\n if (this.templates.has(name)) {\n throw new Error(`Template \"${name}\" already exists`);\n }\n\n this.templates.set(name, { handler, plugin: ctx.plugin });\n }\n\n public unregisterTemplate(name: string) {\n const ctx = this.#pluginContext.getStore();\n\n if (!ctx || ctx.mode !== PluginExecutionMode.Deactivate) {\n throw new Error(\n 'unregisterTemplate() must be called inside deactivate() method',\n );\n }\n\n const template = this.templates.get(name);\n if (!template) {\n throw new Error(`Template \"${name}\" does not exist`);\n }\n\n if (template.plugin !== ctx.plugin) {\n throw new Error(\n `Template \"${name}\" is owned by plugin \"${template.plugin.name}\" and cannot be unregistered by \"${ctx.plugin.name}\"`,\n );\n }\n\n this.templates.delete(name);\n }\n\n public getTemplate(name: string): TemplateHandler | undefined {\n return this.templates.get(name)?.handler;\n }\n\n public getTemplates(): Map<string, TemplateHandler> {\n return new Map(\n Array.from(this.templates.entries()).map(([name, entry]) => [\n name,\n entry.handler,\n ]),\n );\n }\n\n public async transform(\n code: string,\n id: string,\n ): Promise<{ code: string; map: string | null }> {\n let map: string | null = null;\n for (const plugin of this.plugins) {\n try {\n const res: MaybeFalsey<TransformedResult> = await plugin.transform?.({\n code,\n id,\n });\n\n if (!res) continue;\n\n if (res.code) {\n code = res.code;\n }\n\n if (res.map) {\n map = res.map;\n }\n } catch (e: any) {\n const err = e instanceof Error ? e : new Error(e);\n throw new Error(\n `Plugin ${plugin.name} failed to transform: ${err.message}`,\n );\n }\n }\n\n return {\n code,\n map,\n };\n }\n\n public async init() {\n if (this.initialized) return;\n\n for (const plugin of this.plugins) {\n try {\n await this.#pluginContext.run(\n {\n plugin,\n mode: PluginExecutionMode.Activate,\n },\n async () => {\n await plugin.activate?.(this);\n },\n );\n } catch (e: any) {\n console.error(\n `Plugin ${plugin.name} failed to activate with ${e?.stack || e}`,\n );\n }\n }\n\n this.initialized = true;\n }\n\n public async destroy() {\n if (!this.initialized) return;\n\n for (const plugin of this.plugins) {\n try {\n await this.#pluginContext.run(\n {\n plugin,\n mode: PluginExecutionMode.Deactivate,\n },\n async () => {\n await plugin.deactivate?.(this);\n },\n );\n } catch (e: any) {\n console.error(\n `Plugin ${plugin.name} failed to deactivate with ${e?.stack || e}`,\n );\n }\n }\n\n this.initialized = false;\n }\n\n public toJSON() {\n return {\n name: this.name,\n transform: this.transform.bind(this),\n };\n }\n}\n"],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import { ILogger } from "./ILogger-kqwb2kUu.js";
2
-
3
- //#region src/logger/DefaultLogger.d.ts
4
- declare class DefaultLogger implements ILogger {
5
- stdout: NodeJS.WriteStream & {
6
- fd: 1;
7
- };
8
- stderr: NodeJS.WriteStream & {
9
- fd: 2;
10
- };
11
- private logger;
12
- constructor(stdout?: NodeJS.WriteStream & {
13
- fd: 1;
14
- }, stderr?: NodeJS.WriteStream & {
15
- fd: 2;
16
- });
17
- private _formatTime;
18
- private _getContext;
19
- private _getLevelLabel;
20
- private _getPrefix;
21
- private _log;
22
- debug(...args: any[]): void;
23
- error(...args: any[]): void;
24
- log(...args: any[]): void;
25
- info(...args: any[]): void;
26
- warn(...args: any[]): void;
27
- }
28
- //#endregion
29
- export { DefaultLogger };
30
- //# sourceMappingURL=DefaultLogger-CcW-Fuq5.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventInterceptor-Bvh05z7n.js","names":[],"sources":["../src/components/common/EventInterceptor.ts"],"sourcesContent":["import { Awaitable, Client, ClientEvents, Events } from 'discord.js';\n\nexport interface EventInterceptorContextData<E extends keyof ClientEvents> {\n /**\n * The filter to use for the collector.\n */\n filter?: (...args: ClientEvents[E]) => Awaitable<boolean>;\n /**\n * The duration (in ms) that the collector should run for.\n */\n time?: number;\n /**\n * If the collector should automatically reset the timer when a button is clicked.\n */\n autoReset?: boolean;\n /**\n * Whether the collector should run only once.\n */\n once?: boolean;\n /**\n * The handler to run when the collector ends.\n */\n onEnd?: (reason: string) => Awaitable<void>;\n /**\n * The handler to run upon an error.\n */\n onError?: EventInterceptorErrorHandler;\n}\n\nexport type EventInterceptorErrorHandler = (error: Error) => Awaitable<void>;\n\nexport class EventInterceptor {\n private subscribers = new Map<\n keyof ClientEvents,\n Set<(...args: any[]) => void>\n >();\n private globalHandlers = new Map<\n keyof ClientEvents,\n (...args: any[]) => void\n >();\n private cleanupTimer: NodeJS.Timeout | null = null;\n\n /**\n * Creates the event interceptor.\n */\n public constructor(public readonly client: Client) {\n this.#cleanupLoop();\n }\n\n #cleanupLoop() {\n if (this.cleanupTimer) clearInterval(this.cleanupTimer);\n\n this.cleanupTimer = setInterval(() => {\n for (const [event, handlers] of this.subscribers) {\n for (const handler of handlers) {\n const options = Reflect.get(\n handler,\n 'options',\n ) as EventInterceptorContextData<keyof ClientEvents> & {\n registeredAt: number;\n };\n\n const isExpired =\n options.time && Date.now() - options.registeredAt > options.time;\n\n if (isExpired) {\n this.unsubscribe(event, handler, 'time');\n }\n }\n }\n }, 60_000).unref();\n }\n\n /**\n * Destroys the event interceptor.\n */\n public destroy(): void {\n if (this.cleanupTimer) {\n clearInterval(this.cleanupTimer);\n this.cleanupTimer = null;\n }\n\n for (const [event, handlers] of this.subscribers) {\n for (const handler of handlers) {\n this.unsubscribe(event, handler, 'destroy');\n }\n }\n\n this.subscribers.clear();\n this.globalHandlers.clear();\n }\n\n /**\n * Whether the event has subscribers.\n * @param event The event to check.\n */\n public hasSubscribers(event: keyof ClientEvents): boolean {\n return this.subscribers.has(event);\n }\n\n /**\n * Returns the number of subscribers for the event.\n * @param event The event to check.\n */\n public getSubscriberCount(event: keyof ClientEvents): number {\n const handlers = this.subscribers.get(event);\n return handlers?.size ?? 0;\n }\n\n /**\n * Whether the event has global handlers.\n */\n public hasGlobalHandlers(): boolean {\n return this.globalHandlers.size > 0;\n }\n\n /**\n * Returns the number of global handlers.\n */\n public getGlobalHandlersCount(): number {\n return this.subscribers.size;\n }\n\n /**\n * Subscribes to an event.\n * @param event The event to subscribe to.\n * @param listener The listener to call when the event is emitted.\n * @returns A function to unsubscribe from the event.\n */\n public subscribe<Event extends keyof ClientEvents>(\n event: Event,\n listener: (...args: ClientEvents[Event]) => void,\n options?: EventInterceptorContextData<Event>,\n ): () => void {\n if (!this.subscribers.has(event)) {\n this.subscribers.set(event, new Set());\n this.client.on(event, this.createGlobalHandler(event));\n this.client.setMaxListeners(this.client.getMaxListeners() + 1);\n }\n\n options ??= {};\n\n // @ts-ignore\n options.registeredAt = Date.now();\n\n Reflect.set(listener, 'options', options);\n\n this.subscribers.get(event)!.add(listener);\n\n return () => {\n this.unsubscribe(event, listener);\n };\n }\n\n /**\n * Unsubscribes from an event.\n * @param event The event to unsubscribe from.\n */\n public unsubscribe<Event extends keyof ClientEvents>(\n event: Event,\n listener: (...args: ClientEvents[Event]) => void,\n reason?: string,\n ): void {\n const handlers = this.subscribers.get(event);\n if (!handlers) return;\n\n handlers.delete(listener);\n\n if (handlers.size < 1) {\n this.subscribers.delete(event);\n this.client.removeListener(event, this.globalHandlers.get(event)!);\n this.globalHandlers.delete(event);\n this.client.setMaxListeners(\n Math.max(this.client.getMaxListeners() - 1, 0),\n );\n }\n\n Reflect.get(listener, 'options').onEnd?.(reason ?? 'unsubscribe');\n }\n\n /**\n * Creates a global handler for the event.\n * @param event The event to create a global handler for.\n * @returns The global handler.\n */\n private createGlobalHandler<Event extends keyof ClientEvents>(\n event: Event,\n ): (...args: ClientEvents[Event]) => void {\n if (this.globalHandlers.has(event)) {\n return this.globalHandlers.get(event)!;\n }\n\n const handler = async (...args: ClientEvents[Event]) => {\n const subscribers = this.subscribers.get(event);\n if (subscribers && subscribers.size > 0) {\n for (const subscriber of subscribers) {\n const options = Reflect.get(\n subscriber,\n 'options',\n ) as EventInterceptorContextData<Event> & { registeredAt: number };\n\n const isExpired =\n options.time && Date.now() - options.registeredAt > options.time;\n\n if (isExpired) {\n this.unsubscribe(event, subscriber, 'time');\n continue;\n }\n\n if (options.autoReset) {\n options.registeredAt = Date.now();\n }\n\n if (options.filter && !(await options.filter(...args))) {\n continue;\n }\n\n try {\n await subscriber(...args);\n } catch (e) {\n if (options.onError) {\n await options.onError(<Error>e);\n } else {\n throw e;\n }\n } finally {\n if (options.once) {\n this.unsubscribe(event, subscriber, 'once');\n }\n }\n }\n }\n };\n\n this.globalHandlers.set(event, handler);\n\n return handler;\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventWorkerContext-BAKiTqJz.js","names":[],"sources":["../src/app/events/EventWorkerContext.ts"],"sourcesContent":["import { AsyncLocalStorage } from 'node:async_hooks';\nimport { ParsedEvent } from '../router';\nimport { CommandKit } from '../../CommandKit';\n\nexport interface EventWorkerContext {\n event: string;\n namespace: string | null;\n data: ParsedEvent;\n commandkit: CommandKit;\n arguments: any[];\n variables: Map<string, any>;\n}\n\nconst kEventWorker = Symbol('commandkitEventWorker');\n\nexport const eventWorkerContext = new AsyncLocalStorage<EventWorkerContext>();\n\nexport function runInEventWorkerContext<T>(\n context: EventWorkerContext,\n callback: () => T,\n): T {\n Reflect.set(context, kEventWorker, true);\n\n return eventWorkerContext.run(context, callback);\n}\n\nexport function getEventWorkerContext(): EventWorkerContext {\n const context = eventWorkerContext.getStore();\n\n if (!context) {\n throw new Error('Event worker context not found');\n }\n\n return context;\n}\n\nexport function isEventWorkerContext(\n worker: any,\n): worker is EventWorkerContext {\n return worker && Reflect.get(worker, kEventWorker) === true;\n}\n"],"mappings":";;;;AAaA,MAAM,eAAe,OAAO,wBAAwB;AAEpD,MAAa,qBAAqB,IAAI;AAEtC,SAAgB,wBAChB,SACA,UACI;AACF,SAAQ,IAAI,SAAS,cAAc,KAAK;AAExC,QAAO,mBAAmB,IAAI,SAAS,SAAS;AAClD;AAEA,SAAgB,wBAA4C;CAC1D,MAAM,UAAU,mBAAmB,UAAU;AAE7C,MAAK,QACH,OAAM,IAAI,MAAM;AAGlB,QAAO;AACT;AAEA,SAAgB,qBAChB,QAC+B;AAC7B,QAAO,UAAU,QAAQ,IAAI,QAAQ,aAAa,KAAK;AACzD"}
@@ -1,11 +0,0 @@
1
- //#region src/logger/ILogger.d.ts
2
- interface ILogger {
3
- log(...args: any[]): void;
4
- error(...args: any[]): void;
5
- warn(...args: any[]): void;
6
- info(...args: any[]): void;
7
- debug(...args: any[]): void;
8
- }
9
- //#endregion
10
- export { ILogger };
11
- //# sourceMappingURL=ILogger-kqwb2kUu.d.ts.map
@@ -1,17 +0,0 @@
1
- import { ILogger } from "./ILogger-kqwb2kUu.js";
2
-
3
- //#region src/logger/Logger.d.ts
4
- interface CommandKitLoggerOptions {
5
- /**
6
- * The logger provider to use.
7
- */
8
- provider: ILogger;
9
- }
10
- interface LoggerImpl extends ILogger {
11
- configure(options: CommandKitLoggerOptions): void;
12
- }
13
- declare function createLogger(options: CommandKitLoggerOptions): LoggerImpl;
14
- declare const Logger: LoggerImpl;
15
- //#endregion
16
- export { CommandKitLoggerOptions, Logger, LoggerImpl, createLogger };
17
- //# sourceMappingURL=Logger-B4B_URL-.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MessageCommandParser-D02-wpZN.js","names":[],"sources":["../src/app/commands/MessageCommandParser.ts"],"sourcesContent":["import { Channel } from 'diagnostics_channel';\nimport {\n Message,\n ApplicationCommandOptionType,\n GuildMember,\n Attachment,\n User,\n Role,\n CommandInteractionOption,\n} from 'discord.js';\nimport {\n CommandKitErrorCodes,\n createCommandKitError,\n} from '../../utils/error-codes';\n\nexport interface ParsedMessageCommand {\n command: string;\n options: { name: string; value: unknown }[];\n subcommand?: string;\n subcommandGroup?: string;\n}\n\nexport type MessageCommandOptionsSchema = Record<\n string,\n ApplicationCommandOptionType\n>;\n\nexport class MessageCommandParser {\n #parsed: ParsedMessageCommand | null = null;\n #options: MessageCommandOptions | null = null;\n #args: string[] = [];\n\n public constructor(\n public message: Message,\n private prefix: string[],\n private schema: (command: string) => MessageCommandOptionsSchema,\n ) {}\n\n public getArgs() {\n void this.parse();\n return this.#args;\n }\n\n public get options() {\n if (!this.#options) {\n this.#options = new MessageCommandOptions(this);\n }\n\n return this.#options;\n }\n\n public getOption<T>(name: string): T | undefined {\n return this.parse().options.find((o) => o.name === name)?.value as T;\n }\n\n public getCommand(): string {\n return this.parse().command;\n }\n\n public getSubcommand(): string | undefined {\n return this.parse().subcommand;\n }\n\n public getSubcommandGroup(): string | undefined {\n return this.parse().subcommandGroup;\n }\n\n public getPrefix() {\n for (const p of this.prefix) {\n if (this.message.content.startsWith(p)) {\n return p;\n }\n }\n }\n\n public getFullCommand() {\n return [this.getCommand(), this.getSubcommandGroup(), this.getSubcommand()]\n .filter((v) => v)\n .join(' ');\n }\n\n public parse(): ParsedMessageCommand {\n if (this.#parsed) {\n return this.#parsed;\n }\n\n const content = this.message.content;\n\n const prefix = this.getPrefix();\n\n if (!prefix) {\n throw createCommandKitError(CommandKitErrorCodes.InvalidCommandPrefix);\n }\n\n const parts = content.slice(prefix.length).trim().split(' ');\n const command = parts.shift();\n\n this.#args = parts;\n\n let subcommandGroup: string | undefined;\n let subcommand: string | undefined;\n\n if (command?.includes(':')) {\n const [, group, cmd] = command.split(':');\n\n if (!cmd && group) {\n subcommand = group;\n } else if (cmd && group) {\n subcommandGroup = group;\n subcommand = cmd;\n }\n }\n\n const schema = this.schema(\n [command, subcommandGroup, subcommand].filter(Boolean).join(' ').trim(),\n );\n\n const options = parts\n .map((part) => {\n try {\n const [name, value] = part.split(':');\n\n if (!(name in schema)) return null;\n\n switch (schema[name]) {\n case ApplicationCommandOptionType.Boolean:\n return { name, value: value === 'true' };\n case ApplicationCommandOptionType.Integer:\n return { name, value: parseInt(value, 10) };\n case ApplicationCommandOptionType.Number:\n return { name, value: parseFloat(value) };\n case ApplicationCommandOptionType.String:\n return { name, value };\n case ApplicationCommandOptionType.User:\n return {\n name,\n value: this.message.mentions.users.find((u) => {\n return u.id === value.replace(/[<@!>]/g, '');\n }),\n };\n case ApplicationCommandOptionType.Channel:\n return {\n name,\n value: this.message.mentions.channels.find((c) => {\n return c.id === value.replace(/[<#>]/g, '');\n }),\n };\n case ApplicationCommandOptionType.Role:\n return {\n name,\n value: this.message.mentions.roles.find((r) => {\n return r.id === value.replace(/[<@&>]/g, '');\n }),\n };\n case ApplicationCommandOptionType.Attachment:\n return {\n name,\n value: this.message.attachments.find((a) => {\n return a.name === value;\n }),\n };\n default:\n return null;\n }\n } catch {\n // Invalid option\n return null;\n }\n })\n .filter((v) => v !== null);\n\n this.#parsed = {\n command: command!,\n options,\n subcommand,\n subcommandGroup,\n };\n\n return this.#parsed;\n }\n}\n\nexport class MessageCommandOptions {\n public constructor(private parser: MessageCommandParser) {}\n\n private assertOption<T>(name: string, required = false) {\n const option = this.parser.getOption<T>(name);\n\n if (required && option === undefined) {\n throw new Error(`Option \"${name}\" is required.`);\n }\n\n return option ?? null;\n }\n\n getMember(name: string): GuildMember | null;\n getMember(name: string, required: true): GuildMember;\n getMember(name: string, required = false) {\n const user = this.assertOption<User>(name, required);\n const member = this.parser.message.guild?.members.cache.get(user?.id!);\n\n if (required && !member) {\n throw new Error(`Member \"${name}\" is required.`);\n }\n\n return member ?? null;\n }\n\n getAttachment(name: string): Attachment | null;\n getAttachment(name: string, required: true): Attachment;\n getAttachment(name: string, required = false) {\n return this.assertOption<Attachment>(name, required);\n }\n\n getBoolean(name: string): boolean | null;\n getBoolean(name: string, required: true): boolean;\n getBoolean(name: string, required = false) {\n return this.assertOption<boolean>(name, required);\n }\n\n getNumber(name: string): number | null;\n getNumber(name: string, required: true): number;\n getNumber(name: string, required = false) {\n return this.assertOption<number>(name, required);\n }\n\n getString(name: string): string | null;\n getString(name: string, required: true): string;\n getString(name: string, required = false) {\n return this.assertOption<string>(name, required);\n }\n\n getInteger(name: string): number | null;\n getInteger(name: string, required: true): number;\n getInteger(name: string, required = false) {\n return this.assertOption<number>(name, required);\n }\n\n getUser(name: string): User | null;\n getUser(name: string, required: true): User;\n getUser(name: string, required = false) {\n return this.assertOption<User>(name, required);\n }\n\n getChannel(name: string): Channel | null;\n getChannel(name: string, required: true): Channel;\n getChannel(name: string, required = false) {\n return this.assertOption<Channel>(name, required);\n }\n\n getRole(name: string): Role | null;\n getRole(name: string, required: true): Role;\n getRole(name: string, required = false) {\n return this.assertOption<Role>(name, required);\n }\n\n getMentionable(\n name: string,\n ): NonNullable<CommandInteractionOption['member' | 'role' | 'user']> | null;\n getMentionable(\n name: string,\n required: true,\n ): NonNullable<CommandInteractionOption['member' | 'role' | 'user']>;\n getMentionable(\n name: string,\n required = false,\n ): NonNullable<CommandInteractionOption['member' | 'role' | 'user']> | null {\n const target = this.assertOption(name, required);\n\n if (\n target instanceof GuildMember ||\n target instanceof User ||\n target instanceof Role\n ) {\n return target;\n }\n\n if (required) {\n throw new Error(`Mentionable \"${name}\" is required.`);\n }\n\n return null;\n }\n\n getSubcommand(): string | null;\n getSubcommand(required: true): string;\n getSubcommand(required = false) {\n const sub = this.parser.getSubcommand();\n\n if (required && sub === undefined) {\n throw new Error('Subcommand is required.');\n }\n\n return sub ?? null;\n }\n\n getSubcommandGroup(): string | null;\n getSubcommandGroup(required: true): string;\n getSubcommandGroup(required = false) {\n const sub = this.parser.getSubcommandGroup();\n\n if (required && sub === undefined) {\n throw new Error('Subcommand group is required.');\n }\n\n return sub ?? null;\n }\n}\n"],"mappings":"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"}
@@ -1,62 +0,0 @@
1
- import { ApplicationCommandOptionType, Attachment, CommandInteractionOption, GuildMember, Message, Role, User } from "discord.js";
2
- import { Channel } from "diagnostics_channel";
3
-
4
- //#region src/app/commands/MessageCommandParser.d.ts
5
- interface ParsedMessageCommand {
6
- command: string;
7
- options: {
8
- name: string;
9
- value: unknown;
10
- }[];
11
- subcommand?: string;
12
- subcommandGroup?: string;
13
- }
14
- type MessageCommandOptionsSchema = Record<string, ApplicationCommandOptionType>;
15
- declare class MessageCommandParser {
16
- #private;
17
- message: Message;
18
- private prefix;
19
- private schema;
20
- constructor(message: Message, prefix: string[], schema: (command: string) => MessageCommandOptionsSchema);
21
- getArgs(): string[];
22
- get options(): MessageCommandOptions;
23
- getOption<T>(name: string): T | undefined;
24
- getCommand(): string;
25
- getSubcommand(): string | undefined;
26
- getSubcommandGroup(): string | undefined;
27
- getPrefix(): string | undefined;
28
- getFullCommand(): string;
29
- parse(): ParsedMessageCommand;
30
- }
31
- declare class MessageCommandOptions {
32
- private parser;
33
- constructor(parser: MessageCommandParser);
34
- private assertOption;
35
- getMember(name: string): GuildMember | null;
36
- getMember(name: string, required: true): GuildMember;
37
- getAttachment(name: string): Attachment | null;
38
- getAttachment(name: string, required: true): Attachment;
39
- getBoolean(name: string): boolean | null;
40
- getBoolean(name: string, required: true): boolean;
41
- getNumber(name: string): number | null;
42
- getNumber(name: string, required: true): number;
43
- getString(name: string): string | null;
44
- getString(name: string, required: true): string;
45
- getInteger(name: string): number | null;
46
- getInteger(name: string, required: true): number;
47
- getUser(name: string): User | null;
48
- getUser(name: string, required: true): User;
49
- getChannel(name: string): Channel | null;
50
- getChannel(name: string, required: true): Channel;
51
- getRole(name: string): Role | null;
52
- getRole(name: string, required: true): Role;
53
- getMentionable(name: string): NonNullable<CommandInteractionOption['member' | 'role' | 'user']> | null;
54
- getMentionable(name: string, required: true): NonNullable<CommandInteractionOption['member' | 'role' | 'user']>;
55
- getSubcommand(): string | null;
56
- getSubcommand(required: true): string;
57
- getSubcommandGroup(): string | null;
58
- getSubcommandGroup(required: true): string;
59
- }
60
- //#endregion
61
- export { MessageCommandOptions, MessageCommandOptionsSchema, MessageCommandParser, ParsedMessageCommand };
62
- //# sourceMappingURL=MessageCommandParser-tzroBwij.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PluginCommon-DPqnQngK.js","names":[],"sources":["../src/plugins/PluginCommon.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { CommonPluginRuntime } from './plugin-runtime/runtime';\n\nexport type PluginOptions = Record<string, any>;\n\nexport enum PluginType {\n Compiler = 'compiler',\n Runtime = 'runtime',\n}\n\nexport abstract class PluginCommon<\n T extends PluginOptions = PluginOptions,\n C extends CommonPluginRuntime = CommonPluginRuntime,\n> {\n public abstract readonly type: PluginType;\n public readonly id = randomUUID();\n public readonly loadedAt = Date.now();\n public abstract readonly name: string;\n public constructor(protected readonly options: T) {}\n\n /**\n * Called when this plugin is activated\n */\n public async activate(ctx: C): Promise<void> {}\n\n /**\n * Called when this plugin is deactivated\n */\n public async deactivate(ctx: C): Promise<void> {}\n}\n\nexport function isPlugin(\n plugin: unknown,\n): plugin is PluginCommon<PluginOptions> {\n return plugin instanceof PluginCommon;\n}\n"],"mappings":";;;;AAKA,IAAY,oDAAL;AACL;AACA;;AACF;AAEA,IAAsB,eAAtB,MAGA;CAEE,AAAgB,KAAK,6BAAY;CACjC,AAAgB,WAAW,KAAK,KAAK;CAErC,AAAO,YAA+B,SAAY;EAAZ;CAAa;;;;CAKnD,MAAa,SAAS,KAAuB,CAAC;;;;CAK9C,MAAa,WAAW,KAAuB,CAAC;AAClD;AAEA,SAAgB,SAChB,QACwC;AACtC,QAAO,kBAAkB;AAC3B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RuntimePlugin-BJoDa8ZR.js","names":[],"sources":["../src/plugins/RuntimePlugin.ts"],"sourcesContent":["import { Interaction, Message } from 'discord.js';\nimport {\n isPlugin,\n PluginCommon,\n PluginOptions,\n PluginType,\n} from './PluginCommon';\nimport type { CommandKitPluginRuntime } from './plugin-runtime/CommandKitPluginRuntime';\nimport { CommandBuilderLike, PreparedAppCommandExecution } from '../app';\nimport { CommandKitEnvironment } from '../context/environment';\nimport { CommandKitHMREvent } from '../utils/dev-hooks';\nimport { PreRegisterCommandsEvent } from '../app/register/CommandRegistrar';\nimport { CommandKitEventDispatch } from './types';\n\nexport abstract class RuntimePlugin<\n T extends PluginOptions = PluginOptions,\n> extends PluginCommon<T, CommandKitPluginRuntime> {\n public readonly type = PluginType.Runtime;\n /**\n * Called before commands are loaded\n */\n public async onBeforeCommandsLoad(\n ctx: CommandKitPluginRuntime,\n ): Promise<void> {}\n\n /**\n * Called after commands are loaded\n */\n public async onAfterCommandsLoad(\n ctx: CommandKitPluginRuntime,\n ): Promise<void> {}\n\n /**\n * Called before events are loaded\n */\n public async onBeforeEventsLoad(\n ctx: CommandKitPluginRuntime,\n ): Promise<void> {}\n\n /**\n * Called after events are loaded\n */\n public async onAfterEventsLoad(ctx: CommandKitPluginRuntime): Promise<void> {}\n\n /**\n * Called before the client logs in\n */\n public async onBeforeClientLogin(\n ctx: CommandKitPluginRuntime,\n ): Promise<void> {}\n\n /**\n * Called after the client logs in\n */\n public async onAfterClientLogin(\n ctx: CommandKitPluginRuntime,\n ): Promise<void> {}\n\n /**\n * Called before interaction is handled\n * @param interaction The interaction\n */\n public async onBeforeInteraction(\n ctx: CommandKitPluginRuntime,\n interaction: Interaction,\n ): Promise<void> {}\n\n /**\n * Called before message command is processed\n * @param message The message\n */\n public async onBeforeMessageCommand(\n ctx: CommandKitPluginRuntime,\n message: Message,\n ): Promise<void> {}\n\n /**\n * Called before command is executed. This method can execute the command itself.\n * @param source The source that triggered the command\n * @param command The command\n * @param execute The function that executes the command\n */\n public async executeCommand(\n ctx: CommandKitPluginRuntime,\n env: CommandKitEnvironment,\n source: Interaction | Message,\n command: PreparedAppCommandExecution,\n execute: () => Promise<any>,\n ): Promise<boolean> {\n return false;\n }\n\n /**\n * Called after events router is initialized\n * @param ctx The context\n */\n public async onEventsRouterInit(\n ctx: CommandKitPluginRuntime,\n ): Promise<void> {}\n\n /**\n * Called after commands router is initialized\n * @param ctx The context\n */\n public async onCommandsRouterInit(\n ctx: CommandKitPluginRuntime,\n ): Promise<void> {}\n\n /**\n * Called when HMR event is received\n * @param ctx The context\n * @param event The event\n */\n public async performHMR(\n ctx: CommandKitPluginRuntime,\n event: CommandKitHMREvent,\n ): Promise<void> {}\n\n /**\n * Called before command is loaded for registration. This method can be used to modify the command data before it is loaded.\n * @param ctx The context\n * @param commands The command that is being loaded. This is a CommandBuilderLike object which represents Discord's command\n */\n async prepareCommand(\n ctx: CommandKitPluginRuntime,\n commands: CommandBuilderLike,\n ): Promise<CommandBuilderLike | null> {\n return null;\n }\n\n /**\n * Called before command is registered to discord. This method can cancel the registration of the command and handle it manually.\n * @param ctx The context\n * @param data The command registration data\n */\n async onBeforeRegisterCommands(\n ctx: CommandKitPluginRuntime,\n event: PreRegisterCommandsEvent,\n ): Promise<void> {}\n\n /**\n * Called before global commands registration. This method can cancel the registration of the command and handle it manually.\n * This method is called after `onBeforeRegisterCommands` if that stage was not handled.\n * @param ctx The context\n * @param event The command registration data\n */\n async onBeforeRegisterGlobalCommands(\n ctx: CommandKitPluginRuntime,\n event: PreRegisterCommandsEvent,\n ): Promise<void> {}\n\n /**\n * Called before guild commands registration. This method can cancel the registration of the command and handle it manually.\n * This method is called before guilds of the command are resolved. It is called after `onBeforeRegisterCommands` if that stage was not handled.\n * @param ctx The context\n * @param event The command registration data\n */\n async onBeforePrepareGuildCommandsRegistration(\n ctx: CommandKitPluginRuntime,\n event: PreRegisterCommandsEvent,\n ): Promise<void> {}\n\n /**\n * Called before guild commands registration. This method can cancel the registration of the command and handle it manually.\n * This method is called after guilds of the command are resolved. It is called after `onBeforePrepareGuildCommandsRegistration` if that stage was not handled.\n * @param ctx The context\n * @param event The command registration data\n */\n async onBeforeRegisterGuildCommands(\n ctx: CommandKitPluginRuntime,\n event: PreRegisterCommandsEvent,\n ): Promise<void> {}\n\n /**\n * Called after command and all of its deferred functions are executed.\n * @param ctx The context\n * @param env The environment of the command. This environment contains the command execution data such as command context and more.\n */\n async onAfterCommand(\n ctx: CommandKitPluginRuntime,\n env: CommandKitEnvironment,\n ) {}\n\n /**\n * Called before emitting an event\n * @param ctx The context\n * @param event The event that is being emitted\n */\n public async willEmitEvent(\n ctx: CommandKitPluginRuntime,\n event: CommandKitEventDispatch,\n ) {}\n}\n\nexport function isRuntimePlugin(plugin: unknown): plugin is RuntimePlugin {\n return (\n plugin instanceof RuntimePlugin ||\n (isPlugin(plugin) && plugin.type === PluginType.Runtime)\n );\n}\n"],"mappings":";;;AAcA,IAAsB,gBAAtB,cAEA,kCAAyC;CACvC,AAAgB,OAAO,gCAAW;;;;CAIlC,MAAa,qBACb,KACgB,CAAE;;;;CAKlB,MAAa,oBACb,KACgB,CAAE;;;;CAKlB,MAAa,mBACb,KACgB,CAAE;;;;CAKlB,MAAa,kBAAkB,KAA6C,CAAC;;;;CAK7E,MAAa,oBACb,KACgB,CAAE;;;;CAKlB,MAAa,mBACb,KACgB,CAAE;;;;;CAMlB,MAAa,oBACb,KACA,aACgB,CAAE;;;;;CAMlB,MAAa,uBACb,KACA,SACgB,CAAE;;;;;;;CAQlB,MAAa,eACb,KACA,KACA,QACA,SACA,SACmB;AACjB,SAAO;CACT;;;;;CAMA,MAAa,mBACb,KACgB,CAAE;;;;;CAMlB,MAAa,qBACb,KACgB,CAAE;;;;;;CAOlB,MAAa,WACb,KACA,OACgB,CAAE;;;;;;CAOlB,MAAM,eACN,KACA,UACqC;AACnC,SAAO;CACT;;;;;;CAOA,MAAM,yBACN,KACA,OACgB,CAAE;;;;;;;CAQlB,MAAM,+BACN,KACA,OACgB,CAAE;;;;;;;CAQlB,MAAM,yCACN,KACA,OACgB,CAAE;;;;;;;CAQlB,MAAM,8BACN,KACA,OACgB,CAAE;;;;;;CAOlB,MAAM,eACN,KACA,KACA,CAAE;;;;;;CAOF,MAAa,cACb,KACA,OACA,CAAE;AACJ;AAEA,SAAgB,gBAAgB,QAA0C;AACxE,QACE,kBAAkB,iBAClB,8BAAS,OAAO,IAAI,OAAO,SAAS,gCAAW;AAEnD"}
@@ -1,36 +0,0 @@
1
- import { MaybeArray } from "./types-CJ-XvOFN.js";
2
- import { CommandKitSelectMenuBuilderInteractionCollectorDispatch, CommandKitSelectMenuBuilderInteractionCollectorDispatchContextData, CommandKitSelectMenuBuilderOnEnd } from "./common-pvPJVTfe.js";
3
- import { StringSelectMenuKit } from "./StringSelectMenuKit-B9FHTe48.js";
4
- import { ChannelSelectMenuKit } from "./ChannelSelectMenuKit-L15A2jpT.js";
5
- import { MentionableSelectMenuKit } from "./MentionableSelectMenuKit-BiUSKUtZ.js";
6
- import { UserSelectMenuKit } from "./UserSelectMenuKit-DiP0imyo.js";
7
- import { RoleSelectMenuKit } from "./RoleSelectMenuKit-BSMKkru2.js";
8
- import { APISelectMenuOption, BaseSelectMenuComponentData, ChannelSelectMenuComponentData, ChannelSelectMenuInteraction, MentionableSelectMenuComponentData, MentionableSelectMenuInteraction, RoleSelectMenuComponentData, RoleSelectMenuInteraction, SelectMenuComponentOptionData, StringSelectMenuInteraction, StringSelectMenuOptionBuilder, UserSelectMenuComponentData, UserSelectMenuInteraction } from "discord.js";
9
-
10
- //#region src/components/v1/select-menu/SelectMenu.d.ts
11
- interface CommonSelectMenuProps<T, C> {
12
- onSelect?: CommandKitSelectMenuBuilderInteractionCollectorDispatch<T, C>;
13
- onEnd?: CommandKitSelectMenuBuilderOnEnd;
14
- onError?: (error: Error) => any;
15
- options?: CommandKitSelectMenuBuilderInteractionCollectorDispatchContextData;
16
- }
17
- interface SelectMenuProps<T, C> extends Partial<Omit<BaseSelectMenuComponentData, 'type'>>, CommonSelectMenuProps<T, C> {}
18
- interface StringSelectMenuProps extends SelectMenuProps<StringSelectMenuInteraction, StringSelectMenuKit> {
19
- children?: MaybeArray<StringSelectMenuOptionBuilder>;
20
- }
21
- type CommonBuilderKit = StringSelectMenuKit | UserSelectMenuKit | RoleSelectMenuKit | ChannelSelectMenuKit | MentionableSelectMenuKit;
22
- type ResolveBuilderInteraction<T> = T extends StringSelectMenuKit ? StringSelectMenuInteraction : T extends UserSelectMenuKit ? UserSelectMenuInteraction : T extends RoleSelectMenuKit ? RoleSelectMenuInteraction : T extends ChannelSelectMenuKit ? ChannelSelectMenuInteraction : T extends MentionableSelectMenuKit ? MentionableSelectMenuInteraction : never;
23
- declare function StringSelectMenu(props: StringSelectMenuProps): StringSelectMenuKit;
24
- type StringSelectMenuOptionProps = SelectMenuComponentOptionData | APISelectMenuOption;
25
- declare function StringSelectMenuOption(props: StringSelectMenuOptionProps): StringSelectMenuOptionBuilder;
26
- interface UserSelectMenuProps extends Partial<Omit<UserSelectMenuComponentData, 'type'>>, CommonSelectMenuProps<UserSelectMenuInteraction, UserSelectMenuKit> {}
27
- declare function UserSelectMenu(props: UserSelectMenuProps): UserSelectMenuKit;
28
- interface RoleSelectMenuProps extends Partial<Omit<RoleSelectMenuComponentData, 'type'>>, CommonSelectMenuProps<RoleSelectMenuInteraction, RoleSelectMenuKit> {}
29
- declare function RoleSelectMenu(props: RoleSelectMenuProps): RoleSelectMenuKit;
30
- interface MentionableSelectMenuProps extends Partial<Omit<MentionableSelectMenuComponentData, 'type'>>, CommonSelectMenuProps<MentionableSelectMenuInteraction, MentionableSelectMenuKit> {}
31
- declare function MentionableSelectMenu(props: MentionableSelectMenuProps): MentionableSelectMenuKit;
32
- interface ChannelSelectMenuProps extends Partial<Omit<ChannelSelectMenuComponentData, 'type'>>, CommonSelectMenuProps<ChannelSelectMenuInteraction, ChannelSelectMenuKit> {}
33
- declare function ChannelSelectMenu(props: ChannelSelectMenuProps): ChannelSelectMenuKit;
34
- //#endregion
35
- export { ChannelSelectMenu, ChannelSelectMenuProps, CommonBuilderKit, CommonSelectMenuProps, MentionableSelectMenu, MentionableSelectMenuProps, ResolveBuilderInteraction, RoleSelectMenu, RoleSelectMenuProps, SelectMenuProps, StringSelectMenu, StringSelectMenuOption, StringSelectMenuOptionProps, StringSelectMenuProps, UserSelectMenu, UserSelectMenuProps };
36
- //# sourceMappingURL=SelectMenu-b7jgrkjO.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app-process-YbSHvqf-.js","names":[],"sources":["../src/cli/app-process.ts"],"sourcesContent":["import { IOType, spawn } from 'node:child_process';\nimport { DevEnv, ProdEnv } from './env';\nimport { join } from 'node:path';\nimport { existsSync } from 'node:fs';\nimport { panic } from './common';\n\nfunction getStdio(supportsCommands: boolean) {\n if (supportsCommands) {\n return ['pipe', 'pipe', 'pipe', 'ipc'];\n }\n\n return ['pipe', 'pipe', 'pipe'];\n}\n\nexport function createAppProcess(\n fileName: string,\n cwd: string,\n isDev: boolean,\n) {\n if (!existsSync(join(cwd, fileName))) {\n panic(`Could not locate the entrypoint file: ${fileName}`);\n }\n\n const stdio = getStdio(isDev) as IOType[];\n\n const ps = spawn(\n 'node',\n [\n `--title=\"CommandKit ${isDev ? 'Development' : 'Production'}\"`,\n '--enable-source-maps',\n fileName,\n ],\n {\n cwd,\n windowsHide: true,\n env: isDev ? DevEnv() : ProdEnv(),\n stdio,\n },\n );\n\n ps.stdout?.pipe(process.stdout);\n ps.stderr?.pipe(process.stderr);\n\n return ps;\n}\n"],"mappings":";;;;;;;;AAMA,SAAS,SAAS,kBAA2B;AAC3C,KAAI,iBACF,QAAO;EAAC;EAAQ;EAAQ;EAAQ;CAAM;AAGxC,QAAO;EAAC;EAAQ;EAAQ;CAAO;AACjC;AAEA,SAAgB,iBAChB,UACA,KACA,OACA;;AACE,MAAK,wBAAW,oBAAK,KAAK,SAAS,CAAC,CAClC,uBAAO,wCAAwC,SAAS,EAAE;CAG5D,MAAM,QAAQ,SAAS,MAAM;CAE7B,MAAM,KAAK,8BACT,QACA;GACC,sBAAsB,QAAQ,gBAAgB,aAAa;EAC5D;EACA;CAAS,GAET;EACE;EACA,aAAa;EACb,KAAK,QAAQ,oBAAQ,GAAG,qBAAS;EACjC;CACD,EACF;AAED,kBAAG,6CAAH,WAAW,KAAK,QAAQ,OAAO;AAC/B,kBAAG,6CAAH,WAAW,KAAK,QAAQ,OAAO;AAE/B,QAAO;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-BejatFZX.js","names":[],"sources":["../src/cli/build.ts"],"sourcesContent":["import { build } from 'tsdown';\nimport { CompilerPlugin, CompilerPluginRuntime } from '../plugins';\nimport { loadConfigFile } from '../config/loader';\nimport { writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { DevEnv, devEnvFileArgs, ProdEnv, prodEnvFileArgs } from './env';\nimport { rimraf } from 'rimraf';\nimport { performTypeCheck } from './type-checker';\nimport { copyLocaleFiles } from './common';\nimport { MaybeArray } from '../components';\n\nexport interface ApplicationBuildOptions {\n plugins?: MaybeArray<CompilerPlugin>[] | Array<CompilerPlugin>;\n rolldownPlugins?: any[];\n isDev?: boolean;\n configPath?: string;\n}\n\n// emit public env variables and given env variables\nfunction mergeDefinitionsIfNeeded(env: Record<string, string>) {\n const values = Object.fromEntries(\n Object.entries(process.env).filter(\n ([k]) => !(k in env) && k.startsWith('COMMANDKIT_PUBLIC_'),\n ),\n );\n\n return {\n ...env,\n ...values,\n };\n}\n\nexport async function buildApplication({\n plugins,\n rolldownPlugins,\n isDev,\n configPath,\n}: ApplicationBuildOptions) {\n const config = await loadConfigFile(configPath);\n\n if (!isDev && !config?.typescript?.ignoreBuildErrors) {\n await performTypeCheck(configPath || process.cwd());\n }\n\n const pluginRuntime = new CompilerPluginRuntime(\n (plugins || []) as CompilerPlugin[],\n );\n\n rolldownPlugins ??= [];\n\n rolldownPlugins.push(pluginRuntime.toJSON());\n\n try {\n const dest = isDev ? '.commandkit' : config.distDir;\n\n // Clean the destination directory\n await rimraf(dest);\n\n await pluginRuntime.init();\n\n await build({\n watch: false,\n dts: false,\n clean: true,\n format: ['esm'],\n shims: true,\n minify: false,\n silent: !!isDev,\n inputOptions: {\n transform: {\n jsx: {\n runtime: 'automatic',\n importSource: 'commandkit',\n },\n },\n moduleTypes: {\n '.json': 'js',\n '.node': 'binary',\n },\n },\n plugins: rolldownPlugins,\n platform: 'node',\n skipNodeModulesBundle: true,\n sourcemap: true,\n target: 'node16',\n outDir: dest,\n env: mergeDefinitionsIfNeeded(config.env || {}),\n entry: [\n 'src',\n `!${config.distDir}`,\n '!.commandkit',\n '!**/*.test.*',\n '!**/*.spec.*',\n ],\n unbundle: !!isDev,\n });\n\n await copyLocaleFiles('src', dest);\n await injectEntryFile(configPath || process.cwd(), !!isDev, config.distDir);\n } catch (error) {\n console.error('Build failed:', error);\n if (error instanceof Error) {\n console.error('Error details:', error.stack);\n }\n process.exit(1); // Force exit on error\n } finally {\n // Ensure plugins are cleaned up\n await pluginRuntime.destroy();\n }\n}\n\nconst envScript = (dev: boolean) => `// --- Environment Variables Loader ---\nconst $env = [${(dev ? devEnvFileArgs : prodEnvFileArgs).map((p) => `\"${p}\"`).join(', ')}];\nfor (const file of $env) {\n try {\n process.loadEnvFile(file);\n console.log('\\\\x1b[36m✔ Loaded \\\\x1b[0m\\\\x1b[33m%s\\\\x1b[0m', file);\n } catch {}\n}\n`;\n\nconst antiCrashScript = [\n '// --- CommandKit Anti-Crash Monitor ---',\n \" // 'uncaughtException' event is supposed to be used to perform synchronous cleanup before shutting down the process\",\n ' // instead of using it as a means to resume operation.',\n ' // But it exists here due to compatibility reasons with discord bot ecosystem.',\n \" const p = (t) => `\\\\x1b[31m${t}\\\\x1b[0m`, b = '[CommandKit Anti-Crash Monitor]', l = console.log, e1 = 'uncaughtException', e2 = 'unhandledRejection';\",\n ' if (!process.eventNames().includes(e1)) // skip if it is already handled',\n ' process.on(e1, (e) => {',\n ' l(p(`${b} Uncaught Exception`)); l(p(b), p(e.stack || e));',\n ' })',\n ' if (!process.eventNames().includes(e2)) // skip if it is already handled',\n ' process.on(e2, (r) => {',\n ' l(p(`${b} Unhandled promise rejection`)); l(p(`${b} ${r.stack || r}`));',\n ' });',\n '// --- CommandKit Anti-Crash Monitor ---',\n].join('\\n');\n\nconst wrapInAsyncIIFE = (code: string[]) =>\n `;await (async () => {\\n${code.join('\\n\\n')}\\n})();`;\n\nasync function injectEntryFile(\n configPath: string,\n isDev: boolean,\n distDir?: string,\n) {\n const code = `/* Entrypoint File Generated By CommandKit */\n${isDev ? `\\n\\n// Injected for development\\n${wrapInAsyncIIFE([envScript(isDev), antiCrashScript])}\\n\\n` : wrapInAsyncIIFE([envScript(isDev)])}\n\nimport { commandkit } from 'commandkit';\nimport { Client } from 'discord.js';\n\nasync function bootstrap() {\n const app = await import('./app.js').then((m) => m.default ?? m);\n\n if (!app || !(app instanceof Client)) {\n throw new Error('The app file must default export the discord.js client instance');\n }\n\n commandkit.setClient(app);\n\n await commandkit.start();\n}\n\nawait bootstrap().catch((e) => {\n console.error('Failed to bootstrap CommandKit application:\\\\n', e.stack);\n})\n`;\n\n const dist = isDev ? '.commandkit' : distDir || 'dist';\n\n await writeFile(join(configPath, dist, 'index.js'), code);\n}\n"],"mappings":";;;;;;;;;;;;AAmBA,SAAS,yBAAyB,KAA6B;CAC7D,MAAM,SAAS,OAAO,YACpB,OAAO,QAAQ,QAAQ,IAAI,CAAC,OAC1B,CAAC,CAAC,EAAE,OAAO,KAAK,QAAQ,EAAE,WAAW,qBAAqB,CAC3D,CACF;AAED,QAAO;EACL,GAAG;EACH,GAAG;CACJ;AACH;AAEA,eAAsB,iBAAiB,EACrC,SACA,iBACA,OACA,YACwB,EAAE;;CAC1B,MAAM,SAAS,MAAM,kCAAe,WAAW;AAE/C,MAAK,yEAAU,OAAQ,oFAAY,mBACjC,OAAM,sCAAiB,cAAc,QAAQ,KAAK,CAAC;CAGrD,MAAM,gBAAgB,IAAI,oDACvB,WAAW,CAAE;AAGhB,qBAAoB,CAAE;AAEtB,iBAAgB,KAAK,cAAc,QAAQ,CAAC;AAE5C,KAAI;EACF,MAAM,OAAO,QAAQ,gBAAgB,OAAO;AAG5C,QAAM,mBAAO,KAAK;AAElB,QAAM,cAAc,MAAM;AAE1B,QAAM,kBAAM;GACV,OAAO;GACP,KAAK;GACL,OAAO;GACP,QAAQ,CAAC,KAAM;GACf,OAAO;GACP,QAAQ;GACR,UAAU;GACV,cAAc;IACZ,WAAW,EACT,KAAK;KACH,SAAS;KACT,cAAc;IACf,EACF;IACD,aAAa;KACX,SAAS;KACT,SAAS;IACV;GACF;GACD,SAAS;GACT,UAAU;GACV,uBAAuB;GACvB,WAAW;GACX,QAAQ;GACR,QAAQ;GACR,KAAK,yBAAyB,OAAO,OAAO,CAAE,EAAC;GAC/C,OAAO;IACP;KACC,GAAG,OAAO,QAAQ;IACnB;IACA;IACA;GAAe;GAEf,YAAY;EACb,EAAC;AAEF,QAAM,+BAAgB,OAAO,KAAK;AAClC,QAAM,gBAAgB,cAAc,QAAQ,KAAK,IAAI,OAAO,OAAO,QAAQ;CAC5E,SAAQ,OAAO;AACd,UAAQ,MAAM,iBAAiB,MAAM;AACrC,MAAI,iBAAiB,MACnB,SAAQ,MAAM,kBAAkB,MAAM,MAAM;AAE9C,UAAQ,KAAK,EAAE;CAChB,UAAS;AAER,QAAM,cAAc,SAAS;CAC/B;AACF;AAEA,MAAM,YAAY,CAAC,SAAkB;gBACrB,CAAC,MAAM,6BAAiB,6BAAiB,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,CAAC,KAAK,KAAK,CAAC;;;;;;;;AASzF,MAAM,kBAAkB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AAA2C,EAC3C,KAAK,KAAK;AAEV,MAAM,kBAAkB,CAAC,UACxB,yBAAyB,KAAK,KAAK,OAAO,CAAC;AAE5C,eAAe,gBACf,YACA,OACA,SACA;CACE,MAAM,QAAQ;EACd,SAAS,mCAAmC,gBAAgB,CAAC,UAAU,MAAM,EAAE,eAAgB,EAAC,CAAC,QAAQ,gBAAgB,CAAC,UAAU,MAAM,AAAC,EAAC,CAAA;;;;;;;;;;;;;;;;;;;;;CAsB5I,MAAM,OAAO,QAAQ,gBAAgB,WAAW;AAEhD,OAAM,gCAAU,oBAAK,YAAY,MAAM,WAAW,EAAE,KAAK;AAC3D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"common-CW8v7gAn.js","names":[],"sources":["../src/cli/common.ts"],"sourcesContent":["import { rimrafSync } from 'rimraf';\nimport { join } from 'node:path';\nimport fs from 'node:fs';\nimport colors from '../utils/colors';\nimport { ResolvedCommandKitConfig } from '../config/utils';\nimport { generateTypesPackage } from '../utils/types-package';\nimport { execSync } from 'node:child_process';\n\nlet ts: typeof import('typescript') | undefined;\n\nexport function write(message: any) {\n process.stdout.write(message);\n process.stdout.write('\\n');\n}\n\nexport function findEntrypoint(dir: string) {\n const target = join(dir, 'sharding-manager.js');\n\n // if sharding manager exists, return that file instead\n if (fs.existsSync(target)) return target;\n\n return join(dir, 'index.js');\n}\n\n/**\n * @returns {never}\n */\nexport function panic(message: any): never {\n write(colors.red(`Error: ${message}`));\n process.exit(1);\n}\n\nexport function findPackageJSON() {\n const cwd = process.cwd();\n const target = join(cwd, 'package.json');\n\n if (!fs.existsSync(target)) {\n panic('Could not find package.json in current directory.');\n }\n\n return JSON.parse(fs.readFileSync(target, 'utf8'));\n}\n\nasync function ensureTypeScript(target: string) {\n const isTypeScript = /\\.(c|m)?tsx?$/.test(target);\n\n if (!isTypeScript) return false;\n if (process.features.typescript) return true;\n\n await loadTypeScript();\n\n return true;\n}\n\nlet packageManager: string;\n\nfunction detectPackageManager() {\n if (packageManager) return packageManager;\n\n const lockfiles = {\n 'yarn.lock': 'yarn',\n 'pnpm-lock.yaml': 'pnpm',\n 'package-lock.json': 'npm',\n 'bun.lock': 'bun',\n 'bun.lockb': 'bun',\n };\n\n for (const [lockfile, manager] of Object.entries(lockfiles)) {\n if (fs.existsSync(join(process.cwd(), lockfile))) {\n packageManager = manager;\n break;\n }\n }\n\n if (!packageManager) {\n packageManager = 'npm';\n }\n\n return packageManager;\n}\n\nexport async function loadTypeScript(e?: string) {\n if (ts) return ts;\n\n try {\n ts = await import('typescript');\n } catch (e) {\n if (e instanceof Error && 'code' in e && e.code === 'MODULE_NOT_FOUND') {\n try {\n const packageManager = detectPackageManager();\n\n execSync(`${packageManager} add typescript`, {\n stdio: 'inherit',\n cwd: process.cwd(),\n });\n\n console.log(\n colors.cyan(\n `TypeScript has been installed automatically, restarting...`,\n ),\n );\n\n ts = await import('typescript');\n\n return ts;\n } catch {\n panic(\n 'TypeScript is not installed and could not be installed automatically. Please install it manually.',\n );\n }\n }\n panic(e || 'TypeScript must be installed to use TypeScript config files.');\n }\n\n return ts;\n}\n\nexport async function loadConfigFileFromPath(\n target: string,\n): Promise<ResolvedCommandKitConfig> {\n await ensureExists(target);\n\n const isTs = await ensureTypeScript(target);\n\n let generatedFilePath: string | undefined;\n\n if (isTs && ts) {\n const { transpileModule } = ts;\n const src = fs.readFileSync(target, 'utf8');\n const { outputText } = transpileModule(src, {\n compilerOptions: {\n module: ts.ModuleKind.ESNext,\n target: ts.ScriptTarget.ESNext,\n moduleResolution: ts.ModuleResolutionKind.NodeNext,\n },\n fileName: target,\n });\n\n await generateTypesPackage();\n\n const nodeModulesPath = process.cwd();\n\n const tmpFile = join(nodeModulesPath, 'compiled-commandkit.config.mjs');\n\n fs.writeFileSync(tmpFile, outputText);\n\n generatedFilePath = tmpFile;\n\n target = tmpFile;\n }\n\n /**\n * @type {import('..').CommandKitConfig}\n */\n const config = await import(`file://${target}`).then(\n (conf) => conf.default || conf,\n );\n\n if (generatedFilePath) {\n try {\n fs.unlinkSync(generatedFilePath);\n } catch {\n //\n }\n }\n\n return config;\n}\n\nasync function ensureExists(loc: string) {\n const exists = fs.existsSync(loc);\n\n if (!exists) {\n throw new Error(`File not found: ${loc}`);\n }\n}\n\nexport function erase(dir: string) {\n rimrafSync(dir);\n}\n\nexport async function copyLocaleFiles(_from: string, _to: string) {\n const resolvedFrom = join(process.cwd(), _from);\n const resolvedTo = join(process.cwd(), _to);\n\n const localePaths = ['app/locales'];\n const srcLocalePaths = localePaths.map((path) => join(resolvedFrom, path));\n const destLocalePaths = localePaths.map((path) => join(resolvedTo, path));\n\n for (const localePath of srcLocalePaths) {\n if (!fs.existsSync(localePath)) {\n continue;\n }\n\n // copy localePath to destLocalePath\n const destLocalePath = destLocalePaths[srcLocalePaths.indexOf(localePath)];\n\n if (!fs.existsSync(destLocalePath)) {\n fs.promises.mkdir(destLocalePath, { recursive: true });\n }\n\n await fs.promises.cp(localePath, destLocalePath, {\n recursive: true,\n force: true,\n });\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"common-CeO-vn8Y.js","names":[],"sources":["../src/components/v2/common.ts"],"sourcesContent":["import { ComponentBuilder } from 'discord.js';\n\nexport function applyId(props: { id?: number }, component: ComponentBuilder) {\n if (props.id != null) {\n component.setId(props.id);\n }\n}\n"],"mappings":";;AAEA,SAAgB,QAAQ,OAAuB,WAA6B;AAC1E,KAAI,MAAM,MAAM,KACd,WAAU,MAAM,MAAM,GAAG;AAE7B"}
@@ -1,18 +0,0 @@
1
- //#region src/utils/constants.d.ts
2
- declare const COMMANDKIT_CACHE_TAG: unique symbol;
3
- declare const COMMANDKIT_IS_DEV: boolean;
4
- declare const COMMANDKIT_IS_CLI: boolean;
5
- declare const COMMANDKIT_IS_TEST: boolean;
6
- declare const COMMANDKIT_BOOTSTRAP_MODE: "development" | "production";
7
- /**
8
- * Types of Hot Module Replacement events
9
- */
10
- declare const HMREventType: {
11
- readonly ReloadCommands: "reload-commands";
12
- readonly ReloadEvents: "reload-events";
13
- readonly Unknown: "unknown";
14
- };
15
- type HMREventType = (typeof HMREventType)[keyof typeof HMREventType];
16
- //#endregion
17
- export { COMMANDKIT_BOOTSTRAP_MODE, COMMANDKIT_CACHE_TAG, COMMANDKIT_IS_CLI, COMMANDKIT_IS_DEV, COMMANDKIT_IS_TEST, HMREventType };
18
- //# sourceMappingURL=constants-BPWSrMkn.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants-CCqS_v55.js","names":[],"sources":["../src/utils/constants.ts"],"sourcesContent":["export const COMMANDKIT_CACHE_TAG = Symbol('kCommandKitCacheTag');\n\nexport const COMMANDKIT_IS_DEV = process.env.COMMANDKIT_IS_DEV === 'true';\nexport const COMMANDKIT_IS_CLI = process.env.COMMANDKIT_IS_CLI === 'true';\nexport const COMMANDKIT_IS_TEST = process.env.COMMANDKIT_IS_TEST === 'true';\n\nexport const COMMANDKIT_BOOTSTRAP_MODE = (process.env\n .COMMANDKIT_BOOTSTRAP_MODE || 'development') as 'development' | 'production';\n\n/**\n * Types of Hot Module Replacement events\n */\nexport const HMREventType = {\n ReloadCommands: 'reload-commands',\n ReloadEvents: 'reload-events',\n Unknown: 'unknown',\n} as const;\n\nexport type HMREventType = (typeof HMREventType)[keyof typeof HMREventType];\n"],"mappings":";;AAAA,MAAa,uBAAuB,OAAO,sBAAsB;AAEjE,MAAa,oBAAoB,QAAQ,IAAI,sBAAsB;AACnE,MAAa,oBAAoB,QAAQ,IAAI,sBAAsB;AACnE,MAAa,qBAAqB,QAAQ,IAAI,uBAAuB;AAErE,MAAa,4BAA6B,QAAQ,IAClD,6BAA6B;;;;AAK7B,MAAa,eAAe;CAC1B,gBAAgB;CAChB,cAAc;CACd,SAAS;AACV"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants-DWe181uQ.js","names":[],"sources":["../src/analytics/constants.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\n\nexport const DO_NOT_TRACK_KEY = `COMMANDKIT_ANALYTICS__DO_NOT_TRACK::${randomUUID()}`;\n\nexport const AnalyticsEvents = {\n // commands\n COMMAND_EXECUTION: 'command_execution',\n // feature flags\n FEATURE_FLAG_METRICS: 'feature_flag_metrics',\n FEATURE_FLAG_DECISION: 'feature_flag_decision',\n // @commandkit/cache\n CACHE_HIT: 'cache_hit',\n CACHE_MISS: 'cache_miss',\n CACHE_REVALIDATED: 'cache_revalidated',\n} as const;\n\nexport type AnalyticsEvent =\n (typeof AnalyticsEvents)[keyof typeof AnalyticsEvents];\n"],"mappings":";;;;AAEA,MAAa,oBAAoB,sCAAsC,6BAAY,CAAC;AAEpF,MAAa,kBAAkB;CAE7B,mBAAmB;CAEnB,sBAAsB;CACtB,uBAAuB;CAEvB,WAAW;CACX,YAAY;CACZ,mBAAmB;AACpB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"container-CpuiLsZM.js","names":[],"sources":["../src/components/v2/container.ts"],"sourcesContent":["import {\n ActionRowBuilder,\n ComponentBuilder,\n ContainerBuilder,\n ContainerComponentData,\n FileBuilder,\n MediaGalleryBuilder,\n SectionBuilder,\n SeparatorBuilder,\n TextDisplayBuilder,\n} from 'discord.js';\nimport { applyId } from './common';\n\nexport interface ContainerProps\n extends Omit<ContainerComponentData, 'type' | 'components'> {\n children?: ComponentBuilder[];\n}\n\nexport function Container(props: ContainerProps): ContainerBuilder {\n const container = new ContainerBuilder();\n\n applyId(props, container);\n\n if (typeof props.accentColor != null) {\n container.setAccentColor(props.accentColor);\n }\n\n if (props.spoiler != null) {\n container.setSpoiler(props.spoiler);\n }\n\n if (props.children != null) {\n if (!Array.isArray(props.children)) props.children = [props.children];\n if (props.children.length === 0) return container;\n\n for (const child of props.children.flat()) {\n if (child instanceof TextDisplayBuilder) {\n container.addTextDisplayComponents(child);\n }\n\n if (child instanceof FileBuilder) {\n container.addFileComponents(child);\n }\n\n if (child instanceof ActionRowBuilder) {\n container.addActionRowComponents(child);\n }\n\n if (child instanceof SeparatorBuilder) {\n container.addSeparatorComponents(child);\n }\n\n if (child instanceof SectionBuilder) {\n container.addSectionComponents(child);\n }\n\n if (child instanceof MediaGalleryBuilder) {\n container.addMediaGalleryComponents(child);\n }\n }\n }\n\n return container;\n}\n"],"mappings":";;;;;AAkBA,SAAgB,UAAU,OAAyC;CACjE,MAAM,YAAY,IAAI;AAEtB,wBAAQ,OAAO,UAAU;AAGvB,WAAU,eAAe,MAAM,YAAY;AAG7C,KAAI,MAAM,WAAW,KACnB,WAAU,WAAW,MAAM,QAAQ;AAGrC,KAAI,MAAM,YAAY,MAAM;AAC1B,OAAK,MAAM,QAAQ,MAAM,SAAS,CAAE,OAAM,WAAW,CAAC,MAAM,QAAS;AACrE,MAAI,MAAM,SAAS,WAAW,EAAG,QAAO;AAExC,OAAK,MAAM,SAAS,MAAM,SAAS,MAAM,EAAE;AACzC,OAAI,iBAAiB,8BACnB,WAAU,yBAAyB,MAAM;AAG3C,OAAI,iBAAiB,uBACnB,WAAU,kBAAkB,MAAM;AAGpC,OAAI,iBAAiB,4BACnB,WAAU,uBAAuB,MAAM;AAGzC,OAAI,iBAAiB,4BACnB,WAAU,uBAAuB,MAAM;AAGzC,OAAI,iBAAiB,0BACnB,WAAU,qBAAqB,MAAM;AAGvC,OAAI,iBAAiB,+BACnB,WAAU,0BAA0B,MAAM;EAE9C;CACF;AAEA,QAAO;AACT"}
@@ -1,10 +0,0 @@
1
- import { ComponentBuilder, ContainerBuilder, ContainerComponentData } from "discord.js";
2
-
3
- //#region src/components/v2/container.d.ts
4
- interface ContainerProps extends Omit<ContainerComponentData, 'type' | 'components'> {
5
- children?: ComponentBuilder[];
6
- }
7
- declare function Container(props: ContainerProps): ContainerBuilder;
8
- //#endregion
9
- export { Container, ContainerProps };
10
- //# sourceMappingURL=container-CwEATQy2.d.ts.map
@@ -1,30 +0,0 @@
1
- import { ButtonKit } from "./ButtonKit-BSI7lCI0.js";
2
- import { ModalKit } from "./ModalKit-CKtQ8eXW.js";
3
- import { ActionRowBuilder, TextInputBuilder } from "discord.js";
4
-
5
- //#region src/components/common/element.d.ts
6
- declare const ElementType: {
7
- readonly ActionRow: "action-row";
8
- readonly Button: "button-kit";
9
- readonly Modal: "modal";
10
- readonly TextInput: "text-input";
11
- };
12
- type ElementType = (typeof ElementType)[keyof typeof ElementType];
13
- interface CommandKitElementData {
14
- [ElementType.ActionRow]: ActionRowBuilder;
15
- [ElementType.Button]: ButtonKit;
16
- [ElementType.Modal]: ModalKit;
17
- [ElementType.TextInput]: TextInputBuilder;
18
- }
19
- type CommandKitElement<Type extends ElementType> = CommandKitElementData[Type];
20
- type AnyCommandKitElement = CommandKitElement<ElementType>;
21
- declare function isCommandKitElement(element: unknown): element is CommandKitElement<ElementType>;
22
- declare function getElement<T extends ElementType, E extends CommandKitElement<T>>(element: E): CommandKitElementData[T];
23
- interface FragmentElementProps {
24
- children: [];
25
- }
26
- declare function Fragment(props: FragmentElementProps): CommandKitElementData[ElementType][];
27
- declare function createElement(type: Function, props: Record<string, unknown>, ...children: any[]): CommandKitElement<ElementType>;
28
- //#endregion
29
- export { AnyCommandKitElement, CommandKitElement, CommandKitElementData, ElementType, Fragment, FragmentElementProps, createElement, getElement, isCommandKitElement };
30
- //# sourceMappingURL=element-D_nyVwgB.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"element-DcqNz1dV.js","names":[],"sources":["../src/components/common/element.ts"],"sourcesContent":["import { ActionRowBuilder, TextInputBuilder } from 'discord.js';\nimport type { ButtonKit } from '../v1/button/ButtonKit';\nimport { warnUnstable } from '../../utils/warn-unstable';\nimport { ModalKit } from '../v1/modal/ModalKit';\n\nexport const ElementType = {\n ActionRow: 'action-row',\n Button: 'button-kit',\n Modal: 'modal',\n TextInput: 'text-input',\n} as const;\n\nexport type ElementType = (typeof ElementType)[keyof typeof ElementType];\n\nexport interface CommandKitElementData {\n [ElementType.ActionRow]: ActionRowBuilder;\n [ElementType.Button]: ButtonKit;\n [ElementType.Modal]: ModalKit;\n [ElementType.TextInput]: TextInputBuilder;\n}\n\nexport type CommandKitElement<Type extends ElementType> =\n CommandKitElementData[Type];\n\nexport type AnyCommandKitElement = CommandKitElement<ElementType>;\n\nexport function isCommandKitElement(\n element: unknown,\n): element is CommandKitElement<ElementType> {\n if (typeof element !== 'object' || element === null) return false;\n if (!Reflect.has(element, 'type')) return false;\n if (!Reflect.has(element, 'data')) return false;\n\n return true;\n}\n\nexport function getElement<\n T extends ElementType,\n E extends CommandKitElement<T>,\n>(element: E): CommandKitElementData[T] {\n return element.data as CommandKitElementData[T];\n}\n\nexport interface FragmentElementProps {\n children: [];\n}\n\nexport function Fragment(\n props: FragmentElementProps,\n): CommandKitElementData[ElementType][] {\n warnUnstable('CommandKit JSX');\n\n return Array.isArray(props.children)\n ? props.children.flat()\n : [props.children];\n}\n\nexport function createElement(\n type: Function,\n props: Record<string, unknown>,\n ...children: any[]\n): CommandKitElement<ElementType> {\n warnUnstable('CommandKit JSX');\n return type({ ...props, children: props.children ?? children });\n}\n\nexport { createElement as jsx, createElement as jsxs };\n"],"mappings":";;;AAKA,MAAa,cAAc;CACzB,WAAW;CACX,QAAQ;CACR,OAAO;CACP,WAAW;AACZ;AAgBD,SAAgB,oBAChB,SAC4C;AAC1C,YAAW,YAAY,YAAY,YAAY,KAAM,QAAO;AAC5D,MAAK,QAAQ,IAAI,SAAS,OAAO,CAAE,QAAO;AAC1C,MAAK,QAAQ,IAAI,SAAS,OAAO,CAAE,QAAO;AAE1C,QAAO;AACT;AAEA,SAAgB,WAGhB,SAAsC;AACpC,QAAO,QAAQ;AACjB;AAMA,SAAgB,SAChB,OACuC;AACrC,oCAAa,iBAAiB;AAE9B,QAAO,MAAM,QAAQ,MAAM,SAAQ,GACnC,MAAM,SAAS,MAAM,GACrB,CAAC,MAAM,QAAS;AAClB;AAEA,SAAgB,cAChB,MACA,OACA,GAAG,UAC8B;AAC/B,oCAAa,iBAAiB;AAC9B,QAAO,KAAK;EAAE,GAAG;EAAO,UAAU,MAAM,YAAY;CAAU,EAAC;AACjE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"env-ERkaRfQO.js","names":[],"sources":["../src/cli/env.ts"],"sourcesContent":["export function DevEnv(_static = false) {\n const common = {\n NODE_ENV: 'development',\n COMMANDKIT_IS_DEV: 'true',\n };\n\n if (_static) return Object.assign({}, common);\n\n return Object.assign({}, process.env, common);\n}\n\nexport function ProdEnv(_static = false) {\n const common = {\n NODE_ENV: 'production',\n COMMANDKIT_IS_DEV: 'false',\n };\n\n if (_static) return Object.assign({}, common);\n\n return Object.assign({}, process.env, common);\n}\n\nexport const CommonEnvFiles = ['.env', '.env.local'];\nexport const DevEnvFiles = ['.env.development', '.env.development.local'];\nexport const ProdEnvFiles = ['.env.production', '.env.production.local'];\n\nexport const devEnvFileArgs = [...CommonEnvFiles, ...DevEnvFiles];\n\nexport const prodEnvFileArgs = [...CommonEnvFiles, ...ProdEnvFiles];\n\nexport function setCLIEnv() {\n process.env.COMMANDKIT_IS_CLI = 'true';\n}\n"],"mappings":";;AAAA,SAAgB,OAAO,UAAU,OAAO;CACtC,MAAM,SAAS;EACb,UAAU;EACV,mBAAmB;CACpB;AAED,KAAI,QAAS,QAAO,OAAO,OAAO,CAAE,GAAE,OAAO;AAE7C,QAAO,OAAO,OAAO,CAAE,GAAE,QAAQ,KAAK,OAAO;AAC/C;AAEA,SAAgB,QAAQ,UAAU,OAAO;CACvC,MAAM,SAAS;EACb,UAAU;EACV,mBAAmB;CACpB;AAED,KAAI,QAAS,QAAO,OAAO,OAAO,CAAE,GAAE,OAAO;AAE7C,QAAO,OAAO,OAAO,CAAE,GAAE,QAAQ,KAAK,OAAO;AAC/C;AAEA,MAAa,iBAAiB,CAAC,QAAQ,YAAa;AACpD,MAAa,cAAc,CAAC,oBAAoB,wBAAyB;AACzE,MAAa,eAAe,CAAC,mBAAmB,uBAAwB;AAExE,MAAa,iBAAiB,CAAC,GAAG,gBAAgB,GAAG,WAAY;AAEjE,MAAa,kBAAkB,CAAC,GAAG,gBAAgB,GAAG,YAAa;AAEnE,SAAgB,YAAY;AAC1B,SAAQ,IAAI,oBAAoB;AAClC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-codes-C_UO39jz.js","names":[],"sources":["../src/utils/error-codes.ts"],"sourcesContent":["export const CommandKitErrorCodes = {\n ExitMiddleware: Symbol('kExitMiddleware'),\n ForwardedCommand: Symbol('kForwardedCommand'),\n InvalidCommandPrefix: Symbol('kInvalidCommandPrefix'),\n PluginCaptureHandle: Symbol('kPluginCaptureHandle'),\n} as const;\n\nexport type CommandKitError = Error & { code: symbol };\n\nexport function createCommandKitError(code: symbol): CommandKitError {\n const error = new Error() as CommandKitError;\n\n Reflect.set(error, 'code', code);\n\n return error;\n}\n\nexport function isCommandKitError(error: unknown): error is CommandKitError {\n if (!(error instanceof Error)) return false;\n const code = Reflect.get(error, 'code');\n\n for (const key in CommandKitErrorCodes) {\n if (CommandKitErrorCodes[key as keyof typeof CommandKitErrorCodes] === code)\n return true;\n }\n\n return false;\n}\n\nexport function isErrorType(error: unknown, code: symbol | symbol[]): boolean {\n if (!isCommandKitError(error)) return false;\n const errorCode = Reflect.get(error, 'code');\n\n if (!errorCode) return false;\n\n if (Array.isArray(code)) return code.includes(errorCode);\n\n return errorCode === code;\n}\n"],"mappings":";;AAAA,MAAa,uBAAuB;CAClC,gBAAgB,OAAO,kBAAkB;CACzC,kBAAkB,OAAO,oBAAoB;CAC7C,sBAAsB,OAAO,wBAAwB;CACrD,qBAAqB,OAAO,uBAAuB;AACpD;AAID,SAAgB,sBAAsB,MAA+B;CACnE,MAAM,QAAQ,IAAI;AAElB,SAAQ,IAAI,OAAO,QAAQ,KAAK;AAEhC,QAAO;AACT;AAEA,SAAgB,kBAAkB,OAA0C;AAC1E,OAAM,iBAAiB,OAAQ,QAAO;CACtC,MAAM,OAAO,QAAQ,IAAI,OAAO,OAAO;AAEvC,MAAK,MAAM,OAAO,qBAChB,KAAI,qBAAqB,SAA8C,KACvE,QAAO;AAGT,QAAO;AACT;AAEA,SAAgB,YAAY,OAAgB,MAAkC;AAC5E,MAAK,kBAAkB,MAAM,CAAE,QAAO;CACtC,MAAM,YAAY,QAAQ,IAAI,OAAO,OAAO;AAE5C,MAAK,UAAW,QAAO;AAEvB,KAAI,MAAM,QAAQ,KAAK,CAAE,QAAO,KAAK,SAAS,UAAU;AAExD,QAAO,cAAc;AACvB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"feature-flags-BFiGn38a.js","names":[],"sources":["../src/flags/feature-flags.ts"],"sourcesContent":["import { getCommandKit, getContext } from '../context/async-context';\nimport { eventWorkerContext } from '../app/events/EventWorkerContext';\nimport { ParsedEvent } from '../app/router';\nimport { CommandKit } from '../CommandKit';\nimport {\n AutocompleteInteraction,\n ChatInputCommandInteraction,\n Client,\n ClientEvents,\n ContextMenuCommandInteraction,\n Guild,\n Message,\n TextBasedChannel,\n} from 'discord.js';\nimport { LoadedCommand } from '../app';\nimport { defer, JsonSerialize } from '../utils/utilities';\nimport { AnalyticsEvents } from '../analytics/constants';\nimport { FlagProvider, FlagConfiguration } from './FlagProvider';\nimport { Logger } from '../logger/Logger';\n\n// Global flag provider\nlet flagProvider: FlagProvider | null = null;\n\n/**\n * Set the global flag provider for all feature flags\n */\nexport function setFlagProvider(provider: FlagProvider): void {\n flagProvider = provider;\n}\n\nexport type MaybePromise<T> = T | Promise<T>;\n\n/**\n * Function type for identifying entities in the context of feature flags.\n * This function should return an object representing the entity that will be used\n * to evaluate the feature flag.\n * It can be synchronous or asynchronous.\n */\nexport type IdentifyFunction<R> = (\n context: EvaluationContext,\n) => MaybePromise<R>;\n\n/**\n * Function type for deciding the outcome of a feature flag based on the provided entities.\n * This function receives an object containing the entities and optionally the provider configuration,\n * and should return the result of the decision.\n * It can be synchronous or asynchronous.\n */\nexport type DecideFunction<E, R> = (data: {\n entities: E;\n provider?: FlagConfiguration | null;\n}) => MaybePromise<R>;\n\n/**\n * Definition for a feature flag, including its key, description, identify function,\n * and decide function.\n * The identify function is used to determine the entities that will be evaluated\n * against the feature flag, while the decide function contains the logic for\n * determining the outcome of the flag based on those entities.\n */\nexport interface FeatureFlagDefinition<R, Entity> {\n /**\n * Unique key for the feature flag.\n * Should be a string that identifies the flag.\n */\n key: string;\n /**\n * Optional description of the feature flag.\n * This can be used for documentation or debugging purposes.\n */\n description?: string;\n /**\n * Optional flag to enable integration with an external flag provider.\n * If true, the flag will use the global flag provider to determine its state.\n * Default: false\n */\n identify?: IdentifyFunction<Entity>;\n /**\n * Function to decide the outcome of the feature flag.\n * This function receives the identified entities and should return the result of the decision.\n */\n decide: DecideFunction<Entity, R>;\n /**\n * Whether to disable analytics tracking for this flag.\n * Default: false\n */\n disableAnalytics?: boolean;\n}\n\nexport interface CommandFlagContext {\n /**\n * The Discord client instance.\n * This is the main entry point for interacting with the Discord API.\n */\n client: Client<true>;\n /**\n * The CommandKit instance, which provides access to the command framework.\n * This includes commands, events, and other features of CommandKit.\n */\n commandkit: CommandKit;\n /**\n * The command context, which includes information about the command being executed.\n * This can include the interaction, message, guild, channel, and the loaded command.\n */\n command: {\n /**\n * The interaction object if the command was invoked via an interaction.\n * This can be a ChatInputCommandInteraction, AutocompleteInteraction, or ContextMenuCommandInteraction.\n */\n interaction?:\n | ChatInputCommandInteraction\n | AutocompleteInteraction\n | ContextMenuCommandInteraction;\n /**\n * The message object if the command was invoked via a message.\n */\n message?: Message;\n /**\n * The guild where the command was invoked, if applicable.\n * This will be null for commands invoked in DMs.\n */\n guild: Guild | null;\n /**\n * The channel where the command was invoked.\n * This can be a text channel, DM channel, or any other type of text-based channel.\n */\n channel: TextBasedChannel | null;\n /**\n * The loaded command instance that is being executed.\n * This contains the command's metadata and logic.\n */\n command: LoadedCommand;\n };\n /**\n * The event context is null for command flags, as they are not tied to a specific event.\n * This is used to differentiate between command and event flags.\n */\n event: null;\n}\n\nexport interface EventFlagContext {\n /**\n * The Discord client instance.\n * This is the main entry point for interacting with the Discord API.\n */\n client: Client<true>;\n /**\n * The CommandKit instance, which provides access to the command framework.\n * This includes commands, events, and other features of CommandKit.\n */\n commandkit: CommandKit;\n /**\n * The event context, which includes information about the event being processed.\n * This can include the parsed event data, the event name, and the namespace if applicable.\n */\n event: {\n /**\n * The parsed event data, which contains the raw data from the event.\n * This can include information like user IDs, channel IDs, and other relevant data.\n */\n data: ParsedEvent;\n /**\n * The name of the event being processed.\n * This is the string identifier for the event, such as 'messageCreate' or 'guildMemberAdd'.\n */\n event: string;\n /**\n * The namespace of the event, if applicable.\n * This can be used to group related events or commands together.\n * It is null if the event does not belong to a specific namespace.\n */\n namespace: string | null;\n /**\n * The arguments passed to the event handler.\n * This is an array of arguments that were passed when the event was triggered.\n * It can be used to access specific data related to the event.\n */\n arguments: any[];\n /**\n * A function to retrieve the arguments for a specific event type.\n * This allows for type-safe access to the arguments based on the event name.\n * @param event - The name of the event to retrieve arguments for.\n */\n argumentsAs<E extends keyof ClientEvents>(event: E): ClientEvents[E];\n };\n /**\n * The command context is null for event flags, as they are not tied to a specific command.\n * This is used to differentiate between command and event flags.\n */\n command: null;\n}\n\n/**\n * Combined context type for feature flag evaluation.\n */\nexport type EvaluationContext = CommandFlagContext | EventFlagContext;\n\n/**\n * Function type for custom evaluation of feature flags.\n * This function can be used to provide a custom evaluation context for the flag.\n * It should return an object representing the entities to be evaluated.\n */\nexport type CustomEvaluationFunction<E> = () => MaybePromise<E>;\n\n/**\n * Context for custom evaluation of feature flags.\n * This allows for more flexible evaluation based on custom logic or external data.\n * The identify function can be a direct object or a function that returns the entities.\n */\nexport type CustomEvaluationContext<E> = {\n /**\n * Optional function to identify the entities for evaluation.\n * This can be a function that returns the entities based on the current context.\n */\n identify: E | CustomEvaluationFunction<E>;\n};\n\nexport interface FlagRunner<E, R> {\n /**\n * Execute the feature flag evaluation with the provided entities.\n * This method will run the identify and decide functions to determine the flag's outcome.\n * @param res - Optional entities to use for evaluation. If not provided, it will call the identify function.\n * @returns A promise that resolves to the result of the feature flag evaluation.\n */\n (): Promise<R>;\n /**\n * Run the feature flag evaluation with a custom context.\n * This allows for more flexible evaluation based on custom logic or external data.\n * @param context - The custom evaluation context containing the identify function or object.\n * @returns A promise that resolves to the result of the feature flag evaluation.\n */\n run(context: CustomEvaluationContext<E>): Promise<R>;\n}\n\n/**\n * Class representing a feature flag in CommandKit.\n */\nexport class FeatureFlag<R, T> {\n private commandkit: CommandKit;\n\n /**\n * Create a new feature flag.\n * @param options - The options for the feature flag.\n */\n public constructor(public readonly options: FeatureFlagDefinition<R, T>) {\n this.commandkit = getCommandKit(true);\n const FlagStore = this.commandkit.flags;\n\n if (FlagStore.has(options.key)) {\n throw new Error(`Feature flag with key \"${options.key}\" already exists.`);\n }\n\n FlagStore.set(options.key, this);\n }\n\n private getContext(): EvaluationContext {\n const env = getContext();\n\n if (env?.context) {\n const {\n client,\n commandkit,\n interaction,\n message,\n guild,\n channel,\n command,\n } = env.context;\n\n return {\n client: client as Client<true>,\n commandkit,\n command: {\n interaction,\n message,\n guild,\n channel,\n command,\n },\n event: null,\n };\n }\n\n const eventCtx = eventWorkerContext.getStore();\n\n if (eventCtx) {\n const { commandkit, data, event, namespace } = eventCtx;\n\n return {\n client: commandkit.client as Client<true>,\n commandkit,\n event: {\n data,\n event,\n namespace,\n arguments: eventCtx.arguments,\n argumentsAs: (eventName) => {\n const args = eventCtx.arguments as ClientEvents[typeof eventName];\n return args;\n },\n },\n command: null,\n };\n }\n\n throw new Error(\n 'Could not determine the execution context. Feature flags may only be used inside a command or event.',\n );\n }\n\n /**\n * Execute the feature flag evaluation.\n * @param res - Optional entities to use for evaluation. If not provided, it will call the identify function.\n * @returns A promise that resolves to the result of the feature flag evaluation.\n */\n public async execute(res?: T): Promise<R> {\n const { decide, identify, disableAnalytics } = this.options;\n\n const identificationStart = performance.now();\n const entities =\n res ??\n (await (async () => {\n const ctx = this.getContext();\n return (await identify?.(ctx)) ?? ({} as T);\n })());\n const identificationTime = performance.now() - identificationStart;\n\n // Get provider configuration if global provider is available\n let providerConfig: FlagConfiguration | null = null;\n if (flagProvider) {\n try {\n providerConfig = await flagProvider.getFlag(this.options.key, entities);\n\n // If provider says flag is disabled, return early with default behavior\n if (providerConfig && !providerConfig.enabled) {\n // For boolean flags, return false; for others, let decide function handle it\n if (typeof decide === 'function') {\n const decisionResult = await decide({\n entities,\n provider: providerConfig,\n });\n return decisionResult as R;\n }\n }\n } catch (error) {\n Logger.error(\n `Error fetching flag provider configuration for \"${this.options.key}\": ${error}`,\n );\n // continue with local decision if provider fails\n }\n }\n\n const decisionStart = performance.now();\n const decisionResult = await decide({\n entities,\n provider: providerConfig,\n });\n const decisionTime = performance.now() - decisionStart;\n\n // Skip analytics if disabled\n if (!disableAnalytics) {\n defer(async () => {\n await this.commandkit.analytics.track({\n name: AnalyticsEvents.FEATURE_FLAG_METRICS,\n data: {\n flag: this.options.key,\n identificationTime: identificationTime.toFixed(2),\n decisionTime: decisionTime.toFixed(2),\n usedProvider: flagProvider !== null,\n providerEnabled: providerConfig?.enabled ?? null,\n },\n });\n });\n\n defer(async () => {\n await this.commandkit.analytics.track({\n name: AnalyticsEvents.FEATURE_FLAG_DECISION,\n id:\n entities &&\n typeof entities === 'object' &&\n 'id' in entities &&\n typeof entities.id === 'string'\n ? entities.id\n : undefined,\n data: {\n flag: this.options.key,\n decision: JsonSerialize(decisionResult, 'unknown'),\n providerUsed: flagProvider !== null,\n },\n });\n });\n }\n\n return decisionResult as R;\n }\n}\n\n/**\n * Create a new feature flag.\n * @param options - The options for the feature flag.\n * @returns A new instance of the FeatureFlag class.\n */\nexport function flag<Returns = boolean, Entity = Record<any, any>>(\n options: FeatureFlagDefinition<Returns, Entity>,\n): FlagRunner<Entity, Returns> {\n const flag = new FeatureFlag<Returns, Entity>(options);\n const runner = flag.execute.bind(flag, undefined) as FlagRunner<\n Entity,\n Returns\n >;\n\n runner.run = async function (ctx) {\n if (!ctx?.identify) {\n throw new Error(\n 'Custom evaluation context must have an identify function or object.',\n );\n }\n\n const context = (\n typeof ctx === 'function'\n ? await (ctx as CustomEvaluationFunction<Entity>)()\n : ctx\n ) as Entity;\n\n const decisionResult = await flag.execute(context);\n\n return decisionResult;\n };\n\n return runner;\n}\n"],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { FileBuilder, FileComponentData } from "discord.js";
2
-
3
- //#region src/components/v2/file.d.ts
4
- interface FileProps extends Omit<FileComponentData, 'type' | 'file'> {
5
- url: string;
6
- }
7
- declare function File(props: FileProps): FileBuilder;
8
- //#endregion
9
- export { File, FileProps };
10
- //# sourceMappingURL=file-BdyYwkaI.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-DE69SSOP.js","names":[],"sources":["../src/components/v2/file.ts"],"sourcesContent":["import { FileBuilder, FileComponentData } from 'discord.js';\n\nexport interface FileProps extends Omit<FileComponentData, 'type' | 'file'> {\n url: string;\n}\n\nexport function File(props: FileProps) {\n const file = new FileBuilder(props);\n\n if (props.url != null) {\n file.setURL(props.url);\n }\n\n return file;\n}\n"],"mappings":";;;;AAMA,SAAgB,KAAK,OAAkB;CACrC,MAAM,OAAO,IAAI,uBAAY;AAE7B,KAAI,MAAM,OAAO,KACf,MAAK,OAAO,MAAM,IAAI;AAGxB,QAAO;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers-CswC9gKF.js","names":[],"sources":["../src/app/commands/helpers.ts"],"sourcesContent":["import { Interaction, Message } from 'discord.js';\n\nexport type CommandSource = Interaction | Message;\n\nexport function isMessageSource(source: CommandSource): source is Message {\n return source instanceof Message;\n}\n\nexport function isInteractionSource(\n source: CommandSource,\n): source is Interaction {\n return !isMessageSource(source);\n}\n"],"mappings":";;;;AAIA,SAAgB,gBAAgB,QAA0C;AACxE,QAAO,kBAAkB;AAC3B;AAEA,SAAgB,oBAChB,QACwB;AACtB,SAAQ,gBAAgB,OAAO;AACjC"}
@@ -1,9 +0,0 @@
1
- import { Interaction, Message } from "discord.js";
2
-
3
- //#region src/app/commands/helpers.d.ts
4
- type CommandSource = Interaction | Message;
5
- declare function isMessageSource(source: CommandSource): source is Message;
6
- declare function isInteractionSource(source: CommandSource): source is Interaction;
7
- //#endregion
8
- export { CommandSource, isInteractionSource, isMessageSource };
9
- //# sourceMappingURL=helpers-DAmE106r.d.ts.map
@@ -1,17 +0,0 @@
1
- import { MediaGalleryBuilder, MediaGalleryItemBuilder } from "discord.js";
2
-
3
- //#region src/components/v2/media-gallery.d.ts
4
- interface MediaGalleryProps {
5
- id?: number;
6
- children?: MediaGalleryItemBuilder[];
7
- }
8
- declare function MediaGallery(props: MediaGalleryProps): MediaGalleryBuilder;
9
- interface MediaGalleryItemProps {
10
- description?: string;
11
- spoiler?: boolean;
12
- url?: string;
13
- }
14
- declare function MediaGalleryItem(props: MediaGalleryItemProps): MediaGalleryItemBuilder;
15
- //#endregion
16
- export { MediaGallery, MediaGalleryItem, MediaGalleryItemProps, MediaGalleryProps };
17
- //# sourceMappingURL=media-gallery-DCu02VXc.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"media-gallery-nUEHqKVF.js","names":[],"sources":["../src/components/v2/media-gallery.ts"],"sourcesContent":["import { MediaGalleryBuilder, MediaGalleryItemBuilder } from 'discord.js';\nimport { applyId } from './common';\n\nexport interface MediaGalleryProps {\n id?: number;\n children?: MediaGalleryItemBuilder[];\n}\n\nexport function MediaGallery(props: MediaGalleryProps) {\n const gallery = new MediaGalleryBuilder();\n\n applyId(props, gallery);\n\n if (props.children != null) {\n if (!Array.isArray(props.children)) props.children = [props.children];\n gallery.addItems(props.children.flat());\n }\n\n return gallery;\n}\n\nexport interface MediaGalleryItemProps {\n description?: string;\n spoiler?: boolean;\n url?: string;\n}\n\nexport function MediaGalleryItem(props: MediaGalleryItemProps) {\n const item = new MediaGalleryItemBuilder();\n\n if (props.description != null) {\n item.setDescription(props.description);\n }\n\n if (props.spoiler != null) {\n item.setSpoiler(props.spoiler);\n }\n\n if (props.url != null) {\n item.setURL(props.url);\n }\n\n return item;\n}\n"],"mappings":";;;;;AAQA,SAAgB,aAAa,OAA0B;CACrD,MAAM,UAAU,IAAI;AAEpB,wBAAQ,OAAO,QAAQ;AAEvB,KAAI,MAAM,YAAY,MAAM;AAC1B,OAAK,MAAM,QAAQ,MAAM,SAAS,CAAE,OAAM,WAAW,CAAC,MAAM,QAAS;AACrE,UAAQ,SAAS,MAAM,SAAS,MAAM,CAAC;CACzC;AAEA,QAAO;AACT;AAQA,SAAgB,iBAAiB,OAA8B;CAC7D,MAAM,OAAO,IAAI;AAEjB,KAAI,MAAM,eAAe,KACvB,MAAK,eAAe,MAAM,YAAY;AAGxC,KAAI,MAAM,WAAW,KACnB,MAAK,WAAW,MAAM,QAAQ;AAGhC,KAAI,MAAM,OAAO,KACf,MAAK,OAAO,MAAM,IAAI;AAGxB,QAAO;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"section-D6t7tyEZ.js","names":[],"sources":["../src/components/v2/section.ts"],"sourcesContent":["import {\n ButtonBuilder,\n SectionBuilder,\n TextDisplayBuilder,\n ThumbnailBuilder,\n} from 'discord.js';\nimport { applyId } from './common';\n\nexport interface SectionProps {\n children?: (ThumbnailBuilder | ButtonBuilder | TextDisplayBuilder)[];\n id?: number;\n}\n\nexport function Section(props: SectionProps): SectionBuilder {\n const section = new SectionBuilder();\n\n applyId(props, section);\n\n if (props.children != null) {\n if (!Array.isArray(props.children)) props.children = [props.children];\n for (const accessory of props.children.flat()) {\n if (accessory instanceof ThumbnailBuilder) {\n section.setThumbnailAccessory(accessory);\n } else if (accessory instanceof ButtonBuilder) {\n section.setButtonAccessory(accessory);\n } else if (accessory instanceof TextDisplayBuilder) {\n section.addTextDisplayComponents(accessory);\n }\n }\n }\n\n return section;\n}\n\nexport interface ThumbnailProps {\n id?: number;\n description?: string;\n spoiler?: boolean;\n url: string;\n}\n\nexport function Thumbnail(props: ThumbnailProps) {\n const thumbnail = new ThumbnailBuilder({\n description: props.description,\n spoiler: props.spoiler,\n id: props.id,\n media: { url: props.url },\n });\n\n return thumbnail;\n}\n"],"mappings":";;;;;AAaA,SAAgB,QAAQ,OAAqC;CAC3D,MAAM,UAAU,IAAI;AAEpB,wBAAQ,OAAO,QAAQ;AAEvB,KAAI,MAAM,YAAY,MAAM;AAC1B,OAAK,MAAM,QAAQ,MAAM,SAAS,CAAE,OAAM,WAAW,CAAC,MAAM,QAAS;AACrE,OAAK,MAAM,aAAa,MAAM,SAAS,MAAM,CAC3C,KAAI,qBAAqB,4BACvB,SAAQ,sBAAsB,UAAU;WAC/B,qBAAqB,yBAC9B,SAAQ,mBAAmB,UAAU;WAC5B,qBAAqB,8BAC9B,SAAQ,yBAAyB,UAAU;CAGjD;AAEA,QAAO;AACT;AASA,SAAgB,UAAU,OAAuB;CAC/C,MAAM,YAAY,IAAI,4BAAiB;EACrC,aAAa,MAAM;EACnB,SAAS,MAAM;EACf,IAAI,MAAM;EACV,OAAO,EAAE,KAAK,MAAM,IAAK;CAC1B;AAED,QAAO;AACT"}