commandkit 1.0.0-dev.20250529125116 → 1.0.0-dev.20250530015910

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 (391) hide show
  1. package/dist/ActionRow-CmTHbo2t.js +25 -0
  2. package/dist/ActionRow-CmTHbo2t.js.map +1 -0
  3. package/dist/ActionRow-D0wafJhZ.d.ts +16 -0
  4. package/dist/Button-Bl5nbwTS.d.ts +32 -0
  5. package/dist/ButtonKit-BSI7lCI0.d.ts +68 -0
  6. package/dist/ChannelSelectMenuKit-L15A2jpT.d.ts +51 -0
  7. package/dist/CommandKit-CDlCsGCx.d.ts +926 -0
  8. package/dist/CommandKit-DDrQtQns.js +3281 -0
  9. package/dist/CommandKit-DDrQtQns.js.map +1 -0
  10. package/dist/CommandKit.d.ts +33 -13
  11. package/dist/CommandKit.js +46 -16
  12. package/dist/CommandKitEventsChannel-B6LKgxmv.js +44 -0
  13. package/dist/CommandKitEventsChannel-B6LKgxmv.js.map +1 -0
  14. package/dist/CommandsRouter-BHaPno8o.js +127 -0
  15. package/dist/CommandsRouter-BHaPno8o.js.map +1 -0
  16. package/dist/CommandsRouter-C7X-eXE2.d.ts +67 -0
  17. package/dist/CompilerPlugin-XzuGixkC.js +32 -0
  18. package/dist/CompilerPlugin-XzuGixkC.js.map +1 -0
  19. package/dist/CompilerPluginRuntime-zFCCw1kM.js +70 -0
  20. package/dist/CompilerPluginRuntime-zFCCw1kM.js.map +1 -0
  21. package/dist/DefaultLogger-D3G0rGnV.d.ts +30 -0
  22. package/dist/EventInterceptor-D_oEWSnF.d.ts +84 -0
  23. package/dist/EventInterceptor-DtRINyTP.js +140 -0
  24. package/dist/EventInterceptor-DtRINyTP.js.map +1 -0
  25. package/dist/EventWorkerContext-C0e23GNY.d.ts +19 -0
  26. package/dist/EventWorkerContext-XZGSHn5F.js +45 -0
  27. package/dist/EventWorkerContext-XZGSHn5F.js.map +1 -0
  28. package/dist/EventsRouter-BacqK6z3.d.ts +90 -0
  29. package/dist/EventsRouter-CqnrlbjN.js +133 -0
  30. package/dist/EventsRouter-CqnrlbjN.js.map +1 -0
  31. package/dist/ILogger-BTMQuall.d.ts +11 -0
  32. package/dist/ILogger-DucYb0bG.js +0 -0
  33. package/dist/Logger-A3wjB7L1.d.ts +17 -0
  34. package/dist/MentionableSelectMenuKit-BiUSKUtZ.d.ts +51 -0
  35. package/dist/MessageCommandParser-B13Pkwo9.js +200 -0
  36. package/dist/MessageCommandParser-B13Pkwo9.js.map +1 -0
  37. package/dist/MessageCommandParser-tzroBwij.d.ts +62 -0
  38. package/dist/Modal-Cxm6cs5c.d.ts +58 -0
  39. package/dist/ModalKit-CKtQ8eXW.d.ts +66 -0
  40. package/dist/PluginCommon-DPqnQngK.js +48 -0
  41. package/dist/PluginCommon-DPqnQngK.js.map +1 -0
  42. package/dist/RoleSelectMenuKit-BSMKkru2.d.ts +51 -0
  43. package/dist/RuntimePlugin-CKsd83M3.js +130 -0
  44. package/dist/RuntimePlugin-CKsd83M3.js.map +1 -0
  45. package/dist/SelectMenu-b7jgrkjO.d.ts +36 -0
  46. package/dist/StringSelectMenuKit-B9FHTe48.d.ts +51 -0
  47. package/dist/UserSelectMenuKit-DiP0imyo.d.ts +51 -0
  48. package/dist/app/commands/AppCommandRunner.d.ts +33 -13
  49. package/dist/app/commands/AppCommandRunner.js +38 -3
  50. package/dist/app/commands/Context.d.ts +33 -13
  51. package/dist/app/commands/Context.js +40 -3
  52. package/dist/app/commands/MessageCommandParser.d.ts +2 -60
  53. package/dist/app/commands/MessageCommandParser.js +5 -2
  54. package/dist/app/commands/helpers.d.ts +2 -7
  55. package/dist/app/commands/helpers.js +4 -2
  56. package/dist/app/events/EventWorkerContext.d.ts +34 -28
  57. package/dist/app/events/EventWorkerContext.js +6 -2
  58. package/dist/app/handlers/AppCommandHandler.d.ts +33 -13
  59. package/dist/app/handlers/AppCommandHandler.js +38 -8
  60. package/dist/app/handlers/AppEventsHandler.d.ts +33 -13
  61. package/dist/app/handlers/AppEventsHandler.js +38 -3
  62. package/dist/app/index.d.ts +33 -15
  63. package/dist/app/index.js +51 -8
  64. package/dist/app/middleware/signals.d.ts +2 -18
  65. package/dist/app/middleware/signals.js +6 -2
  66. package/dist/app/register/CommandRegistrar.d.ts +33 -13
  67. package/dist/app/register/CommandRegistrar.js +38 -3
  68. package/dist/app/router/CommandsRouter.d.ts +2 -65
  69. package/dist/app/router/CommandsRouter.js +3 -2
  70. package/dist/app/router/EventsRouter.d.ts +2 -88
  71. package/dist/app/router/EventsRouter.js +3 -2
  72. package/dist/app/router/index.d.ts +4 -3
  73. package/dist/app/router/index.js +6 -2
  74. package/dist/app-CXCbKsPz.js +0 -0
  75. package/dist/app-process-uCX52YaE.js +48 -0
  76. package/dist/app-process-uCX52YaE.js.map +1 -0
  77. package/dist/build-Bkb5t3XA.js +122 -0
  78. package/dist/build-Bkb5t3XA.js.map +1 -0
  79. package/dist/chunk-nOFOJqeH.js +30 -0
  80. package/dist/cli/app-process.d.ts +5 -3
  81. package/dist/cli/app-process.js +8 -3
  82. package/dist/cli/build.d.ts +46 -21
  83. package/dist/cli/build.js +40 -48
  84. package/dist/cli/common.d.ts +39 -19
  85. package/dist/cli/common.js +13 -10
  86. package/dist/cli/development.d.ts +3 -1
  87. package/dist/cli/development.js +185 -50
  88. package/dist/cli/development.js.map +1 -1
  89. package/dist/cli/env.d.ts +7 -5
  90. package/dist/cli/env.js +9 -2
  91. package/dist/cli/generators.d.ts +3 -1
  92. package/dist/cli/generators.js +64 -15
  93. package/dist/cli/generators.js.map +1 -1
  94. package/dist/cli/information.d.ts +3 -1
  95. package/dist/cli/information.js +110 -5
  96. package/dist/cli/information.js.map +1 -1
  97. package/dist/cli/init.d.ts +2 -10
  98. package/dist/cli/init.js +4 -99
  99. package/dist/cli/parse-env.d.ts +3 -1
  100. package/dist/cli/parse-env.js +53 -1
  101. package/dist/cli/parse-env.js.map +1 -1
  102. package/dist/cli/production.d.ts +5 -3
  103. package/dist/cli/production.js +68 -46
  104. package/dist/cli/production.js.map +1 -1
  105. package/dist/cli/type-checker.d.ts +3 -1
  106. package/dist/cli/type-checker.js +7 -5
  107. package/dist/cli/utils.d.ts +4 -2
  108. package/dist/cli/utils.js +3 -2
  109. package/dist/colors-Cd4Oz-r-.js +14 -0
  110. package/dist/colors-Cd4Oz-r-.js.map +1 -0
  111. package/dist/common-CcfjYnPG.js +0 -0
  112. package/dist/common-CeO-vn8Y.js +14 -0
  113. package/dist/common-CeO-vn8Y.js.map +1 -0
  114. package/dist/common-DirpDCa6.js +182 -0
  115. package/dist/common-DirpDCa6.js.map +1 -0
  116. package/dist/common-pvPJVTfe.d.ts +25 -0
  117. package/dist/components/common/EventInterceptor.d.ts +2 -82
  118. package/dist/components/common/EventInterceptor.js +3 -2
  119. package/dist/components/common/element.d.ts +5 -29
  120. package/dist/components/common/element.js +10 -2
  121. package/dist/components/common/types.d.ts +2 -3
  122. package/dist/components/common/types.js +1 -2
  123. package/dist/components/index.d.ts +24 -22
  124. package/dist/components/index.js +72 -16
  125. package/dist/components/v1/action-row/ActionRow.d.ts +6 -18
  126. package/dist/components/v1/action-row/ActionRow.js +3 -2
  127. package/dist/components/v1/button/Button.d.ts +7 -31
  128. package/dist/components/v1/button/Button.js +38 -16
  129. package/dist/components/v1/button/ButtonKit.d.ts +3 -66
  130. package/dist/components/v1/button/ButtonKit.js +38 -16
  131. package/dist/components/v1/modal/Modal.d.ts +7 -57
  132. package/dist/components/v1/modal/Modal.js +41 -16
  133. package/dist/components/v1/modal/ModalKit.d.ts +3 -64
  134. package/dist/components/v1/modal/ModalKit.js +38 -16
  135. package/dist/components/v1/select-menu/ChannelSelectMenuKit.d.ts +4 -49
  136. package/dist/components/v1/select-menu/ChannelSelectMenuKit.js +38 -16
  137. package/dist/components/v1/select-menu/MentionableSelectMenuKit.d.ts +4 -49
  138. package/dist/components/v1/select-menu/MentionableSelectMenuKit.js +38 -16
  139. package/dist/components/v1/select-menu/RoleSelectMenuKit.d.ts +4 -49
  140. package/dist/components/v1/select-menu/RoleSelectMenuKit.js +38 -16
  141. package/dist/components/v1/select-menu/SelectMenu.d.ts +10 -40
  142. package/dist/components/v1/select-menu/SelectMenu.js +43 -16
  143. package/dist/components/v1/select-menu/StringSelectMenuKit.d.ts +4 -49
  144. package/dist/components/v1/select-menu/StringSelectMenuKit.js +38 -16
  145. package/dist/components/v1/select-menu/UserSelectMenuKit.d.ts +4 -49
  146. package/dist/components/v1/select-menu/UserSelectMenuKit.js +38 -16
  147. package/dist/components/v1/select-menu/common.d.ts +3 -23
  148. package/dist/components/v1/select-menu/common.js +1 -2
  149. package/dist/components/v2/common.d.ts +5 -3
  150. package/dist/components/v2/common.js +3 -2
  151. package/dist/components/v2/container.d.ts +2 -8
  152. package/dist/components/v2/container.js +4 -2
  153. package/dist/components/v2/file.d.ts +2 -8
  154. package/dist/components/v2/file.js +3 -2
  155. package/dist/components/v2/index.d.ts +8 -7
  156. package/dist/components/v2/index.js +17 -2
  157. package/dist/components/v2/media-gallery.d.ts +2 -15
  158. package/dist/components/v2/media-gallery.js +5 -2
  159. package/dist/components/v2/section.d.ts +2 -16
  160. package/dist/components/v2/section.js +5 -2
  161. package/dist/components/v2/separator.d.ts +2 -7
  162. package/dist/components/v2/separator.js +3 -2
  163. package/dist/components/v2/text-display.d.ts +2 -10
  164. package/dist/components/v2/text-display.js +3 -2
  165. package/dist/config/config.d.ts +36 -28
  166. package/dist/config/config.js +39 -3
  167. package/dist/config/default.d.ts +37 -17
  168. package/dist/config/default.js +38 -3
  169. package/dist/config/loader.d.ts +37 -17
  170. package/dist/config/loader.js +39 -11
  171. package/dist/config/types.d.ts +34 -83
  172. package/dist/config/types.js +0 -2
  173. package/dist/config/utils.d.ts +35 -26
  174. package/dist/config/utils.js +15 -1
  175. package/dist/config/utils.js.map +1 -1
  176. package/dist/config-Dyb-zl9w.d.ts +17 -0
  177. package/dist/constants-Ce6w4OFe.d.ts +17 -0
  178. package/dist/constants-DOPSzXI0.js +47 -0
  179. package/dist/constants-DOPSzXI0.js.map +1 -0
  180. package/dist/container-CpuiLsZM.js +33 -0
  181. package/dist/container-CpuiLsZM.js.map +1 -0
  182. package/dist/container-CwEATQy2.d.ts +10 -0
  183. package/dist/context/async-context.d.ts +33 -13
  184. package/dist/context/async-context.js +44 -16
  185. package/dist/context/environment.d.ts +33 -13
  186. package/dist/context/environment.js +41 -3
  187. package/dist/element-D_nyVwgB.d.ts +30 -0
  188. package/dist/element-hdSqnIpC.js +62 -0
  189. package/dist/element-hdSqnIpC.js.map +1 -0
  190. package/dist/env-DKFSgEcR.js +68 -0
  191. package/dist/env-DKFSgEcR.js.map +1 -0
  192. package/dist/error-codes-C_UO39jz.js +53 -0
  193. package/dist/error-codes-C_UO39jz.js.map +1 -0
  194. package/dist/events/CommandKitEventsChannel.d.ts +33 -13
  195. package/dist/events/CommandKitEventsChannel.js +3 -2
  196. package/dist/feature-flags-BJp6kYmi.js +85 -0
  197. package/dist/feature-flags-BJp6kYmi.js.map +1 -0
  198. package/dist/file-BdyYwkaI.d.ts +10 -0
  199. package/dist/file-DE69SSOP.js +18 -0
  200. package/dist/file-DE69SSOP.js.map +1 -0
  201. package/dist/flags/feature-flags.d.ts +33 -13
  202. package/dist/flags/feature-flags.js +40 -16
  203. package/dist/flags/store.d.ts +33 -13
  204. package/dist/flags/store.js +3 -2
  205. package/dist/helpers-CswC9gKF.js +25 -0
  206. package/dist/helpers-CswC9gKF.js.map +1 -0
  207. package/dist/helpers-DAmE106r.d.ts +9 -0
  208. package/dist/index-CUPkUUOR.d.ts +1 -0
  209. package/dist/index-Dw5cCt-A.d.ts +1 -0
  210. package/dist/index-E7Wvm5uX.d.ts +1 -0
  211. package/dist/index.d.ts +43 -51
  212. package/dist/index.js +147 -102
  213. package/dist/index.js.map +1 -1
  214. package/dist/init--p1nl1NO.d.ts +13 -0
  215. package/dist/init-D2me-V0n.js +67 -0
  216. package/dist/init-D2me-V0n.js.map +1 -0
  217. package/dist/logger/DefaultLogger.d.ts +3 -28
  218. package/dist/logger/DefaultLogger.js +38 -3
  219. package/dist/logger/ILogger.d.ts +2 -9
  220. package/dist/logger/ILogger.js +1 -2
  221. package/dist/logger/Logger.d.ts +3 -15
  222. package/dist/logger/Logger.js +39 -3
  223. package/dist/media-gallery-DCu02VXc.d.ts +17 -0
  224. package/dist/media-gallery-nUEHqKVF.js +36 -0
  225. package/dist/media-gallery-nUEHqKVF.js.map +1 -0
  226. package/dist/plugins/CompilerPlugin.d.ts +33 -13
  227. package/dist/plugins/CompilerPlugin.js +5 -2
  228. package/dist/plugins/PluginCommon.d.ts +33 -13
  229. package/dist/plugins/PluginCommon.js +5 -2
  230. package/dist/plugins/RuntimePlugin.d.ts +33 -13
  231. package/dist/plugins/RuntimePlugin.js +5 -2
  232. package/dist/plugins/index.d.ts +33 -15
  233. package/dist/plugins/index.js +44 -3
  234. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.d.ts +33 -13
  235. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js +38 -3
  236. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.d.ts +33 -13
  237. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js +3 -3
  238. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.d.ts +33 -26
  239. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js +38 -3
  240. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.d.ts +40 -19
  241. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js +38 -3
  242. package/dist/plugins/plugin-runtime/runtime.d.ts +33 -13
  243. package/dist/plugins/plugin-runtime/runtime.js +1 -2
  244. package/dist/plugins/plugin-runtime/types.d.ts +2 -72
  245. package/dist/plugins/plugin-runtime/types.js +1 -2
  246. package/dist/plugins/types.d.ts +33 -13
  247. package/dist/plugins/types.js +1 -2
  248. package/dist/resolve-file-url-pO9_rLft.js +23 -0
  249. package/dist/resolve-file-url-pO9_rLft.js.map +1 -0
  250. package/dist/router-Dn35v30f.js +0 -0
  251. package/dist/runtime-ByJtSXs_.js +0 -0
  252. package/dist/section-D6t7tyEZ.js +40 -0
  253. package/dist/section-D6t7tyEZ.js.map +1 -0
  254. package/dist/section-fktaECHL.d.ts +18 -0
  255. package/dist/separator-CuesaLrC.d.ts +8 -0
  256. package/dist/separator-DYAFK-Jj.js +17 -0
  257. package/dist/separator-DYAFK-Jj.js.map +1 -0
  258. package/dist/signals-Bp0bzjE6.js +46 -0
  259. package/dist/signals-Bp0bzjE6.js.map +1 -0
  260. package/dist/signals-DUoWkeZ7.d.ts +20 -0
  261. package/dist/store-Ci6ib2C9.js +14 -0
  262. package/dist/store-Ci6ib2C9.js.map +1 -0
  263. package/dist/text-display-DNMwmGHJ.d.ts +12 -0
  264. package/dist/text-display-Dy6JHB5X.js +19 -0
  265. package/dist/text-display-Dy6JHB5X.js.map +1 -0
  266. package/dist/type-checker-FOYNSGX0.js +84 -0
  267. package/dist/type-checker-FOYNSGX0.js.map +1 -0
  268. package/dist/types-0ADL_reY.d.ts +73 -0
  269. package/dist/types-B5VPP9ig.js +0 -0
  270. package/dist/types-BDwNROY2.d.ts +74 -0
  271. package/dist/types-Bq0EWaM3.js +0 -0
  272. package/dist/types-CJ-XvOFN.d.ts +5 -0
  273. package/dist/types-Cdh4uaFR.js +0 -0
  274. package/dist/types-package-DRhFn59I.js +66 -0
  275. package/dist/types-package-DRhFn59I.js.map +1 -0
  276. package/dist/types.d.ts +33 -13
  277. package/dist/types.js +0 -2
  278. package/dist/utilities-5Jw5BdE1.d.ts +42 -0
  279. package/dist/utils/clone.d.ts +3 -1
  280. package/dist/utils/clone.js +8 -1
  281. package/dist/utils/clone.js.map +1 -1
  282. package/dist/utils/colors.d.ts +5 -3
  283. package/dist/utils/colors.js +4 -2
  284. package/dist/utils/constants.d.ts +2 -15
  285. package/dist/utils/constants.js +7 -2
  286. package/dist/utils/dev-hooks.d.ts +33 -13
  287. package/dist/utils/dev-hooks.js +38 -3
  288. package/dist/utils/error-codes.d.ts +9 -7
  289. package/dist/utils/error-codes.js +6 -2
  290. package/dist/utils/get-paths.d.ts +3 -1
  291. package/dist/utils/get-paths.js +33 -1
  292. package/dist/utils/get-paths.js.map +1 -1
  293. package/dist/utils/resolve-file-url.d.ts +3 -1
  294. package/dist/utils/resolve-file-url.js +3 -2
  295. package/dist/utils/types-package.d.ts +3 -1
  296. package/dist/utils/types-package.js +5 -14
  297. package/dist/utils/utilities.d.ts +2 -40
  298. package/dist/utils/utilities.js +44 -3
  299. package/dist/utils/warn-unstable.d.ts +3 -1
  300. package/dist/utils/warn-unstable.js +4 -2
  301. package/dist/utils-C0V7zD7R.d.ts +10 -0
  302. package/dist/utils-IYtoeTur.js +19 -0
  303. package/dist/utils-IYtoeTur.js.map +1 -0
  304. package/dist/v2-DofkPKHs.js +0 -0
  305. package/dist/version-DnRxh8U8.js +15 -0
  306. package/dist/version-DnRxh8U8.js.map +1 -0
  307. package/dist/version-SMsmj3M1.d.ts +8 -0
  308. package/dist/version.d.ts +2 -6
  309. package/dist/version.js +3 -2
  310. package/dist/warn-unstable-V20WCBDd.js +26 -0
  311. package/dist/warn-unstable-V20WCBDd.js.map +1 -0
  312. package/package.json +5 -4
  313. package/dist/CommandKit-jZCy9fZX.d.ts +0 -914
  314. package/dist/CommandKit.js.map +0 -1
  315. package/dist/app/commands/AppCommandRunner.js.map +0 -1
  316. package/dist/app/commands/Context.js.map +0 -1
  317. package/dist/app/commands/MessageCommandParser.js.map +0 -1
  318. package/dist/app/commands/helpers.js.map +0 -1
  319. package/dist/app/events/EventWorkerContext.js.map +0 -1
  320. package/dist/app/handlers/AppCommandHandler.js.map +0 -1
  321. package/dist/app/handlers/AppEventsHandler.js.map +0 -1
  322. package/dist/app/index.js.map +0 -1
  323. package/dist/app/middleware/signals.js.map +0 -1
  324. package/dist/app/register/CommandRegistrar.js.map +0 -1
  325. package/dist/app/router/CommandsRouter.js.map +0 -1
  326. package/dist/app/router/EventsRouter.js.map +0 -1
  327. package/dist/app/router/index.js.map +0 -1
  328. package/dist/cli/app-process.js.map +0 -1
  329. package/dist/cli/build.js.map +0 -1
  330. package/dist/cli/common.js.map +0 -1
  331. package/dist/cli/env.js.map +0 -1
  332. package/dist/cli/init.js.map +0 -1
  333. package/dist/cli/type-checker.js.map +0 -1
  334. package/dist/cli/utils.js.map +0 -1
  335. package/dist/components/common/EventInterceptor.js.map +0 -1
  336. package/dist/components/common/element.js.map +0 -1
  337. package/dist/components/common/types.js.map +0 -1
  338. package/dist/components/index.js.map +0 -1
  339. package/dist/components/v1/action-row/ActionRow.js.map +0 -1
  340. package/dist/components/v1/button/Button.js.map +0 -1
  341. package/dist/components/v1/button/ButtonKit.js.map +0 -1
  342. package/dist/components/v1/modal/Modal.js.map +0 -1
  343. package/dist/components/v1/modal/ModalKit.js.map +0 -1
  344. package/dist/components/v1/select-menu/ChannelSelectMenuKit.js.map +0 -1
  345. package/dist/components/v1/select-menu/MentionableSelectMenuKit.js.map +0 -1
  346. package/dist/components/v1/select-menu/RoleSelectMenuKit.js.map +0 -1
  347. package/dist/components/v1/select-menu/SelectMenu.js.map +0 -1
  348. package/dist/components/v1/select-menu/StringSelectMenuKit.js.map +0 -1
  349. package/dist/components/v1/select-menu/UserSelectMenuKit.js.map +0 -1
  350. package/dist/components/v1/select-menu/common.js.map +0 -1
  351. package/dist/components/v2/common.js.map +0 -1
  352. package/dist/components/v2/container.js.map +0 -1
  353. package/dist/components/v2/file.js.map +0 -1
  354. package/dist/components/v2/index.js.map +0 -1
  355. package/dist/components/v2/media-gallery.js.map +0 -1
  356. package/dist/components/v2/section.js.map +0 -1
  357. package/dist/components/v2/separator.js.map +0 -1
  358. package/dist/components/v2/text-display.js.map +0 -1
  359. package/dist/config/config.js.map +0 -1
  360. package/dist/config/default.js.map +0 -1
  361. package/dist/config/loader.js.map +0 -1
  362. package/dist/config/types.js.map +0 -1
  363. package/dist/context/async-context.js.map +0 -1
  364. package/dist/context/environment.js.map +0 -1
  365. package/dist/events/CommandKitEventsChannel.js.map +0 -1
  366. package/dist/flags/feature-flags.js.map +0 -1
  367. package/dist/flags/store.js.map +0 -1
  368. package/dist/logger/DefaultLogger.js.map +0 -1
  369. package/dist/logger/ILogger.js.map +0 -1
  370. package/dist/logger/Logger.js.map +0 -1
  371. package/dist/plugins/CompilerPlugin.js.map +0 -1
  372. package/dist/plugins/PluginCommon.js.map +0 -1
  373. package/dist/plugins/RuntimePlugin.js.map +0 -1
  374. package/dist/plugins/index.js.map +0 -1
  375. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js.map +0 -1
  376. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js.map +0 -1
  377. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js.map +0 -1
  378. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js.map +0 -1
  379. package/dist/plugins/plugin-runtime/runtime.js.map +0 -1
  380. package/dist/plugins/plugin-runtime/types.js.map +0 -1
  381. package/dist/plugins/types.js.map +0 -1
  382. package/dist/types.js.map +0 -1
  383. package/dist/utils/colors.js.map +0 -1
  384. package/dist/utils/constants.js.map +0 -1
  385. package/dist/utils/dev-hooks.js.map +0 -1
  386. package/dist/utils/error-codes.js.map +0 -1
  387. package/dist/utils/resolve-file-url.js.map +0 -1
  388. package/dist/utils/types-package.js.map +0 -1
  389. package/dist/utils/utilities.js.map +0 -1
  390. package/dist/utils/warn-unstable.js.map +0 -1
  391. package/dist/version.js.map +0 -1
@@ -1,16 +1,46 @@
1
- "use strict";var Rn=Object.create;var V=Object.defineProperty;var Pn=Object.getOwnPropertyDescriptor;var Kn=Object.getOwnPropertyNames;var Dn=Object.getPrototypeOf,Tn=Object.prototype.hasOwnProperty;var wt=o=>{throw TypeError(o)};var An=(o,e,t)=>e in o?V(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var i=(o,e)=>V(o,"name",{value:e,configurable:!0});var kn=(o,e)=>{for(var t in e)V(o,t,{get:e[t],enumerable:!0})},vt=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Kn(e))!Tn.call(o,r)&&r!==t&&V(o,r,{get:()=>e[r],enumerable:!(n=Pn(e,r))||n.enumerable});return o};var G=(o,e,t)=>(t=o!=null?Rn(Dn(o)):{},vt(e||!o||!o.__esModule?V(t,"default",{value:o,enumerable:!0}):t,o)),Bn=o=>vt(V({},"__esModule",{value:!0}),o);var x=(o,e,t)=>An(o,typeof e!="symbol"?e+"":e,t),Ue=(o,e,t)=>e.has(o)||wt("Cannot "+t);var p=(o,e,t)=>(Ue(o,e,"read from private field"),t?t.call(o):e.get(o)),b=(o,e,t)=>e.has(o)?wt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,t),P=(o,e,t,n)=>(Ue(o,e,"write to private field"),n?n.call(o,t):e.set(o,t),t),S=(o,e,t)=>(Ue(o,e,"access private method"),t);var pr={};kn(pr,{CommandKit:()=>ue,commandkit:()=>xn,onApplicationBootstrap:()=>dr,onBootstrap:()=>ur});module.exports=Bn(pr);var Cn=G(require("events"));var Mt=require("picocolors"),h=(0,Mt.createColors)(!0);var On=require("discord.js");var He=require("discord.js");var It=require("async_hooks");var w={ExitMiddleware:Symbol("kExitMiddleware"),ForwardedCommand:Symbol("kForwardedCommand"),InvalidCommandPrefix:Symbol("kInvalidCommandPrefix"),PluginCaptureHandle:Symbol("kPluginCaptureHandle")};function j(o){let e=new Error;return Reflect.set(e,"code",o),e}i(j,"createCommandKitError");function ce(o){if(!(o instanceof Error))return!1;let e=Reflect.get(o,"code");for(let t in w)if(w[t]===e)return!0;return!1}i(ce,"isCommandKitError");function F(o,e){if(!ce(o))return!1;let t=Reflect.get(o,"code");return t?Array.isArray(e)?e.includes(t):t===e:!1}i(F,"isErrorType");var Ln=Symbol("commandkitCommandWorker"),Ne=new It.AsyncLocalStorage;function me(o,e){return Reflect.set(o,Ln,!0),Ne.run(o,e)}i(me,"provideContext");function St(o,e,t){return i((...r)=>me(o,async()=>{try{return await e(...r)}catch(s){ce(s)||o.setExecutionError(s)}finally{typeof t=="function"&&setImmediate(async()=>{try{await t(...r)}catch{}})}}),"_fn")}i(St,"makeContextAwareFunction");function A(){return Ne.getStore()}i(A,"getContext");function Rt(){let o=Ne.getStore();if(!o)throw new Error("No commandkit environment found. Please make sure you are inside commandkit handler.");return o}i(Rt,"useEnvironment");var Fn=require("discord.js");var Pt=require("discord.js");var Ge=require("discord.js");var Kt=require("discord.js");var Dt=require("discord.js");var Tt=require("discord.js");var At=require("discord.js");var kt=require("discord.js");var $n=require("discord.js");var _=require("discord.js");var Un=require("discord.js");var Ot=require("discord.js");var de=require("discord.js");var Nn=require("discord.js");var Hn=require("discord.js");var Lt=new Set;function Gn(o,e="CommandKitWarning"){process.emitWarning(o,{code:e})}i(Gn,"emitWarning");function je(o){Lt.has(o)||(Lt.add(o),Gn(`${o} is unstable and may change in future versions.`,"CommandKitUnstableWarning"))}i(je,"warnUnstable");function Ft(o){return je("CommandKit JSX"),Array.isArray(o.children)?o.children.flat():[o.children]}i(Ft,"Fragment");function $t(o,e,...t){return je("CommandKit JSX"),o({...e,children:e.children??t})}i($t,"createElement");var fe,Ut,_e=class _e{constructor(e){this.client=e;b(this,fe);x(this,"subscribers",new Map);x(this,"globalHandlers",new Map);x(this,"cleanupTimer",null);S(this,fe,Ut).call(this)}destroy(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=null);for(let[e,t]of this.subscribers)for(let n of t)this.unsubscribe(e,n,"destroy");this.subscribers.clear(),this.globalHandlers.clear()}hasSubscribers(e){return this.subscribers.has(e)}getSubscriberCount(e){let t=this.subscribers.get(e);return(t==null?void 0:t.size)??0}hasGlobalHandlers(){return this.globalHandlers.size>0}getGlobalHandlersCount(){return this.subscribers.size}subscribe(e,t,n){return this.subscribers.has(e)||(this.subscribers.set(e,new Set),this.client.on(e,this.createGlobalHandler(e)),this.client.setMaxListeners(this.client.getMaxListeners()+1)),n??={},n.registeredAt=Date.now(),Reflect.set(t,"options",n),this.subscribers.get(e).add(t),()=>{this.unsubscribe(e,t)}}unsubscribe(e,t,n){var s,a;let r=this.subscribers.get(e);r&&(r.delete(t),r.size<1&&(this.subscribers.delete(e),this.client.removeListener(e,this.globalHandlers.get(e)),this.globalHandlers.delete(e),this.client.setMaxListeners(Math.max(this.client.getMaxListeners()-1,0))),(a=(s=Reflect.get(t,"options")).onEnd)==null||a.call(s,n??"unsubscribe"))}createGlobalHandler(e){if(this.globalHandlers.has(e))return this.globalHandlers.get(e);let t=i(async(...n)=>{let r=this.subscribers.get(e);if(r&&r.size>0)for(let s of r){let a=Reflect.get(s,"options");if(a.time&&Date.now()-a.registeredAt>a.time){this.unsubscribe(e,s,"time");continue}if(a.autoReset&&(a.registeredAt=Date.now()),!(a.filter&&!await a.filter(...n)))try{await s(...n)}catch(l){if(a.onError)await a.onError(l);else throw l}finally{a.once&&this.unsubscribe(e,s,"once")}}},"handler");return this.globalHandlers.set(e,t),t}};fe=new WeakSet,Ut=i(function(){this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=setInterval(()=>{for(let[e,t]of this.subscribers)for(let n of t){let r=Reflect.get(n,"options");r.time&&Date.now()-r.registeredAt>r.time&&this.unsubscribe(e,n,"time")}},6e4).unref()},"#cleanupLoop"),i(_e,"EventInterceptor");var pe=_e;var Fe=require("discord.js");var Ze=require("fs"),et=require("path");var ma=Symbol("kCommandKitCacheTag"),O=process.env.COMMANDKIT_IS_DEV==="true",ua=process.env.COMMANDKIT_IS_TEST==="true",da=process.env.COMMANDKIT_BOOTSTRAP_MODE||"development",he={ReloadCommands:"reload-commands",ReloadEvents:"reload-events",Unknown:"unknown"};var Nt=require("crypto");var Ve=class Ve{constructor(e){this.options=e}id=(0,Nt.randomUUID)();loadedAt=Date.now();async activate(e){}async deactivate(e){}};i(Ve,"PluginCommon");var J=Ve;function We(o){return o instanceof J}i(We,"isPlugin");var qe=class qe extends J{type="compiler";async transform(e){return null}async resolve(e){return null}async onBuildStart(){}async onBuildEnd(){}};i(qe,"CompilerPlugin");var Y=qe;function Ht(o){return We(o)&&o.type==="runtime"}i(Ht,"isRuntimePlugin");var Gt=require("discord.js");var _n={autocomplete:"Autocomplete",messageContextMenu:"MessageContextMenu",userContextMenu:"UserContextMenu",chatInput:"ChatInputCommand",message:"Message"},Wn={0:h.blue,1:h.green,2:h.yellow,3:h.red,4:h.white},Vn={0:h.bgBlue,1:h.bgGreen,2:h.bgYellow,3:h.bgRed,4:h.bgWhite},Ce={vertical:"\u2502",horizontalDown:"\u252C",horizontalUp:"\u2534",verticalRight:"\u251C",corner:"\u2514"},ze=class ze{constructor(e=process.stdout,t=process.stderr){this.stdout=e;this.stderr=t;this.logger=new console.Console(this.stdout,this.stderr)}logger;_formatTime(e){let t=e.getHours().toString().padStart(2,"0"),n=e.getMinutes().toString().padStart(2,"0"),r=e.getSeconds().toString().padStart(2,"0"),s=e.getMilliseconds().toString().padStart(3,"0");return`${t}:${n}:${r}.${s}`}_getContext(){let e=A();if(!e)return"";let t=e.variables.get("execHandlerKind"),n=e.variables.get("commandHandlerType"),r=e.variables.get("currentCommandName");if(!t&&!n)return"";let s=_n[t];if(!s&&!n)return"";let a=e.variables.get("forwardedBy"),m=e.variables.get("forwardedTo"),l=r?h.magenta(`/${r}`)+" ":"",c=m?`${h.yellowBright(`(${a||r} \u2192 ${m})`)} `:"";return h.dim(`${Ce.vertical} `)+h.cyanBright(`${l}${c}${s?h.gray(`[${s}]`):""}`.trim())}_getLevelLabel(e){let t;switch(e){case 0:t="[DEBUG]";break;case 1:t="[INFO]";break;case 2:t="[WARN]";break;case 3:t="[ERROR]";break;default:t="[LOG]"}return`${Vn[e](h.whiteBright(` ${t} `))} `}_getPrefix(e){let t=this._formatTime(new Date);return`${this._getLevelLabel(e)}${h.dim(Ce.vertical)} ${h.dim(t)}`}_log(e,...t){let n=this._getPrefix(e),r=this._getContext(),s=Wn[e];r?this.logger.log(`${n}
2
- ${r} ${h.dim(Ce.corner)}`,...t.map(a=>s(a))):this.logger.log(`${n} ${h.dim(Ce.corner)}`,...t.map(a=>s(a)))}debug(...e){this._log(0,...e)}error(...e){this._log(3,...e)}log(...e){this._log(4,...e)}info(...e){this._log(1,...e)}warn(...e){this._log(2,...e)}};i(ze,"DefaultLogger");var ge=ze;function qn(o){let e=o;if(!(e!=null&&e.provider))throw new Error("A logger provider must be provided.");let t=["log","error","warn","info","debug"],n={configure(r){e=r}};for(let r of t)n[r]=(...s)=>{e.provider[r](...s)};return n}i(qn,"createLogger");var C=qn({provider:new ge});var Je=class Je{constructor(e){this.commandkit=e}plugins=new Gt.Collection;getPlugins(){return this.plugins}getPlugin(e){return this.plugins.get(e)??null}async softRegisterPlugin(e){let t=e.name;if(!this.plugins.has(t))try{await e.activate(this),this.plugins.set(t,e)}catch(n){throw new Error(`Failed to activate plugin "${t}": ${(n==null?void 0:n.stack)||n}`)}}async registerPlugin(e){let t=e.name;if(this.plugins.has(t))throw new Error(`Plugin with name "${t}" already exists.`);try{await e.activate(this),this.plugins.set(t,e)}catch(n){throw new Error(`Failed to activate plugin "${t}": ${(n==null?void 0:n.stack)||n}`)}}async unregisterPlugin(e){let t=e.name;if(!this.plugins.has(t))throw new Error(`Plugin with name "${t}" does not exist.`);this.plugins.delete(t);try{await e.deactivate(this)}catch(n){throw new Error(`Failed to deactivate plugin "${t}": ${(n==null?void 0:n.stack)||n}`)}}async unregisterAllPlugins(){for(let e of this.plugins.values())await this.unregisterPlugin(e)}capture(){throw j(w.PluginCaptureHandle)}async execute(e){let t;for(let n of this.plugins.values())try{t=await e(this,n)}catch(r){if(F(r,w.PluginCaptureHandle))return!0;C.error(`Plugin "${n.name}" failed`,(r==null?void 0:r.stack)||r)}return t}};i(Je,"CommandKitPluginRuntime");var xe=Je;var zn=require("fs/promises");var Ye=class Ye extends Y{name="MacroPlugin";macroTransformer;async activate(){let e=await import("use-macro");this.macroTransformer=new e.MacroTransformer}async deactivate(){this.macroTransformer=null}async transform(e){if(!this.options.enabled)return null;let{contents:t,loader:n}=await this.macroTransformer.transform(e.contents.toString(),e.path);return{contents:t,loader:n}}};i(Ye,"MacroPlugin");var ye=Ye;var jt={plugins:[new ye({enabled:!0})],esbuildPlugins:[],compilerOptions:{macro:{development:!1}},static:!0,typescript:{ignoreBuildErrors:!1},distDir:"dist",env:{},sourceMap:{development:!0,production:!0},typedCommands:!0};var Jn=jt;function be(){return Jn}i(be,"getConfig");var _t=require("async_hooks");var Yn=Symbol("commandkitEventWorker"),Wt=new _t.AsyncLocalStorage;function Xe(o,e){return Reflect.set(o,Yn,!0),Wt.run(o,e)}i(Xe,"runInEventWorkerContext");var Qe=null;function Vt(){if(Qe)return Qe;let o=(0,et.join)(process.cwd(),O?".commandkit":be().distDir);(0,Ze.existsSync)(o)||(o=process.cwd());let e=["app"].map(t=>(0,et.join)(o,t));for(let t of e)if((0,Ze.existsSync)(t))return Qe=t,t;return null}i(Vt,"findAppDirectory");var tt=class tt extends Error{constructor(){super("Event propagation stopped"),this.name="StopEventPropagationError"}};i(tt,"StopEventPropagationError");var re=tt;var Et=require("path");var M=require("discord.js");var qt=G(require("path"));function oe(o,e=!1){return`${"file://"+qt.default.resolve(o).replace(/\\\\|\\/g,"/")}${e?`?ts=${Date.now()}`:""}`}i(oe,"toFileURL");var K=require("discord.js");var W,X,ie,rt=class rt{constructor(e,t,n){this.message=e;this.prefix=t;this.schema=n;b(this,W,null);b(this,X,null);b(this,ie,[])}getArgs(){return this.parse(),p(this,ie)}get options(){return p(this,X)||P(this,X,new nt(this)),p(this,X)}getOption(e){var t;return(t=this.parse().options.find(n=>n.name===e))==null?void 0:t.value}getCommand(){return this.parse().command}getSubcommand(){return this.parse().subcommand}getSubcommandGroup(){return this.parse().subcommandGroup}getPrefix(){for(let e of this.prefix)if(this.message.content.startsWith(e))return e}getFullCommand(){return[this.getCommand(),this.getSubcommandGroup(),this.getSubcommand()].filter(e=>e).join(" ")}parse(){if(p(this,W))return p(this,W);let e=this.message.content,t=this.getPrefix();if(!t)throw j(w.InvalidCommandPrefix);let n=e.slice(t.length).trim().split(" "),r=n.shift();P(this,ie,n);let s,a;if(r!=null&&r.includes(":")){let[,c,d]=r.split(":");!d&&c?a=c:d&&c&&(s=c,a=d)}let m=this.schema([r,s,a].filter(Boolean).join(" ").trim()),l=n.map(c=>{try{let[d,f]=c.split(":");if(!(d in m))return null;switch(m[d]){case K.ApplicationCommandOptionType.Boolean:return{name:d,value:f==="true"};case K.ApplicationCommandOptionType.Integer:return{name:d,value:parseInt(f,10)};case K.ApplicationCommandOptionType.Number:return{name:d,value:parseFloat(f)};case K.ApplicationCommandOptionType.String:return{name:d,value:f};case K.ApplicationCommandOptionType.User:return{name:d,value:this.message.mentions.users.find(g=>g.id===f.replace(/[<@!>]/g,""))};case K.ApplicationCommandOptionType.Channel:return{name:d,value:this.message.mentions.channels.find(g=>g.id===f.replace(/[<#>]/g,""))};case K.ApplicationCommandOptionType.Role:return{name:d,value:this.message.mentions.roles.find(g=>g.id===f.replace(/[<@&>]/g,""))};case K.ApplicationCommandOptionType.Attachment:return{name:d,value:this.message.attachments.find(g=>g.name===f)};default:return null}}catch{return null}}).filter(c=>c!==null);return P(this,W,{command:r,options:l,subcommand:a,subcommandGroup:s}),p(this,W)}};W=new WeakMap,X=new WeakMap,ie=new WeakMap,i(rt,"MessageCommandParser");var Ee=rt,ot=class ot{constructor(e){this.parser=e}assertOption(e,t=!1){let n=this.parser.getOption(e);if(t&&n===void 0)throw new Error(`Option "${e}" is required.`);return n??null}getMember(e,t=!1){var s;let n=this.assertOption(e,t),r=(s=this.parser.message.guild)==null?void 0:s.members.cache.get(n==null?void 0:n.id);if(t&&!r)throw new Error(`Member "${e}" is required.`);return r??null}getAttachment(e,t=!1){return this.assertOption(e,t)}getBoolean(e,t=!1){return this.assertOption(e,t)}getNumber(e,t=!1){return this.assertOption(e,t)}getString(e,t=!1){return this.assertOption(e,t)}getInteger(e,t=!1){return this.assertOption(e,t)}getUser(e,t=!1){return this.assertOption(e,t)}getChannel(e,t=!1){return this.assertOption(e,t)}getRole(e,t=!1){return this.assertOption(e,t)}getMentionable(e,t=!1){let n=this.assertOption(e,t);if(n instanceof K.GuildMember||n instanceof K.User||n instanceof K.Role)return n;if(t)throw new Error(`Mentionable "${e}" is required.`);return null}getSubcommand(e=!1){let t=this.parser.getSubcommand();if(e&&t===void 0)throw new Error("Subcommand is required.");return t??null}getSubcommandGroup(e=!1){let t=this.parser.getSubcommandGroup();if(e&&t===void 0)throw new Error("Subcommand group is required.");return t??null}};i(ot,"MessageCommandOptions");var nt=ot;var $=require("discord.js");var it=class it{constructor(e){this.commandkit=e;this.api.setToken(this.commandkit.client.token??process.env.DISCORD_TOKEN??process.env.TOKEN??"")}api=new $.REST;getCommandsData(){return this.commandkit.commandHandler.getCommandsArray().flatMap(n=>{let r="toJSON"in n.data.command?n.data.command.toJSON():n.data.command,s=[r];return n.data.userContextMenu&&r.type!==$.ApplicationCommandType.User&&s.push({...r,type:$.ApplicationCommandType.User,options:void 0,description_localizations:void 0,description:void 0}),n.data.messageContextMenu&&r.type!==$.ApplicationCommandType.Message&&s.push({...r,type:$.ApplicationCommandType.Message,description_localizations:void 0,description:void 0,options:void 0}),s})}async register(){let e=this.getCommandsData(),t=!1,n={preventDefault(){t=!0},commands:e};if(await this.commandkit.plugins.execute(async(a,m)=>{if(!t)return m.onBeforeRegisterCommands(a,n)}),t)return;if(!this.commandkit.client.isReady())throw new Error("Cannot register commands before the client is ready");let r=e.filter(a=>{var m;return(m=a.guilds)==null?void 0:m.filter(Boolean).length}).map(a=>{var m;return{...a,guilds:Array.from(new Set((m=a.guilds)==null?void 0:m.filter(Boolean)))}}),s=e.filter(a=>{var m;return!((m=a.guilds)!=null&&m.filter(Boolean).length)});await this.updateGlobalCommands(s),await this.updateGuildCommands(r)}async updateGlobalCommands(e){if(!e.length)return;let t=!1,n={preventDefault(){t=!0},commands:e};await this.commandkit.plugins.execute(async(r,s)=>{if(!t)return s.onBeforeRegisterGlobalCommands(r,n)});try{let r=await this.api.put($.Routes.applicationCommands(this.commandkit.client.user.id),{body:e.map(s=>({...s,guilds:void 0}))});C.info(`\u2728 Refreshed ${r.length} global application (/) commands`)}catch(r){C.error("Failed to update global application (/) commands",r)}}async updateGuildCommands(e){if(!e.length)return;let t=!1,n={preventDefault(){t=!0},commands:e};if(await this.commandkit.plugins.execute(async(r,s)=>{if(!t)return s.onBeforePrepareGuildCommandsRegistration(r,n)}),!t)try{let r=new Map;if(e.forEach(a=>{var m;(m=a.guilds)!=null&&m.length&&a.guilds.forEach(l=>{r.has(l)||r.set(l,[]),r.get(l).push(a)})}),!r.size)return;let s=0;for(let[a,m]of r){let l=!1,c={preventDefault(){l=!0},commands:m};if(await this.commandkit.plugins.execute(async(f,g)=>{if(!l)return g.onBeforeRegisterGuildCommands(f,c)}),l)continue;let d=await this.api.put($.Routes.applicationGuildCommands(this.commandkit.client.user.id,a),{body:m.map(f=>({...f,guilds:void 0}))});s+=d.length}C.info(`\u2728 Refreshed ${s} guild application (/) commands`)}catch(r){C.error("Failed to update guild application (/) commands",r)}}};i(it,"CommandRegistrar");var we=it;var Me=require("discord.js");var zt=require("crypto");var E,at=class at{constructor(e){this.commandkit=e;b(this,E,{executionError:null,type:null,variables:new Map,deferredFunctions:new Map,marker:"",markStart:0,markEnd:0,context:null})}setContext(e){p(this,E).context=e}get context(){return p(this,E).context}getExecutionError(){return p(this,E).executionError}setExecutionError(e){if(p(this,E).executionError)throw new Error("Execution error already set.");p(this,E).executionError=e}getType(){let e=p(this,E).type;if(!e)throw new Error("Environment type not set.");return e}setType(e){p(this,E).type=e}get variables(){return p(this,E).variables}registerDeferredFunction(e){let t=(0,zt.randomUUID)();return p(this,E).deferredFunctions.set(t,e),t}clearDeferredFunction(e){p(this,E).deferredFunctions.delete(e)}async runDeferredFunctions(){for(let[e,t]of p(this,E).deferredFunctions)try{await t(this)}catch(n){this.commandkit.emit("unhandledDeferredFunctionRejection",n)}finally{this.clearDeferredFunction(e)}}clearAllDeferredFunctions(){p(this,E).deferredFunctions.clear()}markStart(e){p(this,E).marker=e,p(this,E).markStart=performance.now()}markEnd(){p(this,E).markEnd||(p(this,E).markEnd=performance.now())}getMarker(){return p(this,E).marker}getExecutionTime(){return Math.abs(p(this,E).markEnd-p(this,E).markStart)}};E=new WeakMap,i(at,"CommandKitEnvironment");var ve=at;function Jt(){throw j(w.ExitMiddleware)}i(Jt,"exitMiddleware");function Yt(){throw j(w.ForwardedCommand)}i(Yt,"redirect");var D={ChatInputCommand:"chatInput",MessageContextMenu:"messageContextMenu",UserContextMenu:"userContextMenu",Autocomplete:"autocomplete",Message:"message"},Q,ae=class ae{constructor(e,t){this.commandkit=e;this.config=t;x(this,"interaction");x(this,"message");x(this,"guild");x(this,"guildId");x(this,"channel");x(this,"channelId");x(this,"client");x(this,"command");b(this,Q);x(this,"_locale",null);this.interaction=t.interaction,this.message=t.message,this.client=e.client,P(this,Q,t.store??new Map),this.command=t.command,t.interaction&&(this.guild=t.interaction.guild,this.guildId=t.interaction.guildId,this.channel=t.interaction.channel,this.channelId=t.interaction.channelId),t.message&&(this.guild=t.message.guild,this.guildId=t.message.guildId,this.channel=t.message.channel,this.channelId=t.message.channelId),this.config.environment&&this.config.environment.setContext(this)}get store(){return p(this,Q)}get commandName(){return this.isInteraction()?this.interaction.commandName:this.config.messageCommandParser.getCommand()}get options(){return this.isMessage()?this.config.messageCommandParser.options:this.interaction.options}get forwarded(){return this.config.forwarded??!1}async forwardCommand(e){let t=await this.commandkit.commandHandler.prepareCommandRun(this.isInteraction()?this.interaction:this.message,e);if(!t)throw new Error(`Command ${e} not found`);let n=this.config.environment??A();if(!n)throw new Error("No commandkit environment found.");let r={chatInput:t.command.data.chatInput,autocomplete:t.command.data.autocomplete,message:t.command.data.message,messageContextMenu:t.command.data.messageContextMenu,userContextMenu:t.command.data.userContextMenu},s=n.variables.get("execHandlerKind");if(!s)throw new Error("No execution handler kind found.");let a=r[s];if(!a)throw new Error(`No handler found for ${s}`);n.variables.set("forwardedBy",this.commandName),n.variables.set("forwardedTo",e),await a(this.clone({forwarded:!0})),Yt()}get executionMode(){return this.config.executionMode}isInteraction(){return this.executionMode===D.ChatInputCommand||this.executionMode===D.Autocomplete||this.executionMode===D.MessageContextMenu||this.executionMode===D.UserContextMenu}isChatInputCommand(){return this.executionMode===D.ChatInputCommand}isAutocomplete(){return this.executionMode===D.Autocomplete}isMessageContextMenu(){return this.executionMode===D.MessageContextMenu}isUserContextMenu(){return this.executionMode===D.UserContextMenu}isMessage(){return this.executionMode===D.Message}getCommandIdentifier(){return this.isInteraction()?this.interaction.commandName:this.message.content.split(" ")[0].slice(1)}getGuildLocale(){var e;return this.isInteraction()?this.interaction.guildLocale:((e=this.message.guild)==null?void 0:e.preferredLocale)??null}getUserLocale(){return this.isInteraction()?this.interaction.locale:null}getLocale(e=!1){if(this._locale)return this._locale;let t=e?this.getUserLocale():this.getGuildLocale();return t||this.commandkit.config.defaultLocale}setLocale(e){this._locale=e}clone(e){return e?new ae(this.commandkit,{...this.config,...e,store:p(this,Q)}):new ae(this.commandkit,this.config)}isMiddleware(){return this instanceof se}args(){return this.isMessage()?this.config.messageCommandParser.getArgs():[]}exit(){Jt()}};Q=new WeakMap,i(ae,"Context");var st=ae,le,lt=class lt extends st{constructor(){super(...arguments);b(this,le,!1)}get cancelled(){return p(this,le)}cancel(){P(this,le,!0)}setCommandRunner(t){var n,r;(r=(n=this.config.customArgs)==null?void 0:n.setCommandRunner)==null||r.call(n,t)}};le=new WeakMap,i(lt,"MiddlewareContext");var se=lt;var Se,Xt,ct=class ct{constructor(e){this.handler=e;b(this,Se)}async runCommand(e,t){let{commandkit:n}=this.handler,r=this.getExecutionMode(t),s=null,a=new ve(n);a.setType("COMMAND_HANDLER"),a.variables.set("commandHandlerType","app"),a.variables.set("currentCommandName",e.command.command.name),a.variables.set("execHandlerKind",r);let m=new se(n,{command:e.command,environment:a,executionMode:r,interaction:t instanceof Me.Message?null:t,message:t instanceof Me.Message?t:null,forwarded:!1,customArgs:{setCommandRunner:i(c=>{s=c},"setCommandRunner")},messageCommandParser:e.messageCommandParser}),l=!1;if(e.middlewares.length&&await me(a,async()=>{for(let c of e.middlewares)if(c.data.beforeExecute)try{await c.data.beforeExecute(m)}catch(d){if(F(d,w.ExitMiddleware)){l=!0;return}if(F(d,[w.ForwardedCommand,w.InvalidCommandPrefix]))continue;throw d}}),!m.cancelled){let d=e.command.data[r];if(d||C.warn(`Command ${e.command.command.name} has no handler for ${r}`),d)try{let f=St(a,async()=>(a.registerDeferredFunction(I=>{I.markEnd();let v=I.getExecutionError(),y=I.getMarker(),R=`${I.getExecutionTime().toFixed(2)}ms`;if(v){C.error(`[${y} - ${R}] Error executing command: ${v.stack||v}`);return}C.info(`[${y} - ${R}] Command executed successfully`)}),d(m.clone())),S(this,Se,Xt).bind(this)),g=s!=null?s(f):f;a.markStart(e.command.data.command.name),await n.plugins.execute(async(I,v)=>v.executeCommand(I,a,t,e,g))||await g()}catch(f){F(f,w.ExitMiddleware)&&(l=!0),F(f,[w.ForwardedCommand,w.ExitMiddleware])||C.error(f)}}!l&&e.middlewares.length&&await me(a,async()=>{for(let c of e.middlewares)if(c.data.afterExecute)try{await c.data.afterExecute(m)}catch(d){if(F(d,w.ExitMiddleware))return;throw d}})}getExecutionMode(e){return e instanceof Me.Message?D.Message:e.isChatInputCommand()?D.ChatInputCommand:e.isAutocomplete()?D.Autocomplete:e.isMessageContextMenuCommand()?D.MessageContextMenu:e.isUserContextMenuCommand()?D.UserContextMenu:null}};Se=new WeakSet,Xt=i(async function(){let e=Rt();await e.runDeferredFunctions(),e.clearAllDeferredFunctions(),await this.handler.commandkit.plugins.execute(async(t,n)=>{await n.onAfterCommand(t,e)})},"#finalizer"),i(ct,"AppCommandRunner");var Ie=ct;var H=require("fs/promises"),N=require("path");var Qt=require("fs");async function Re(o=!1){let e=(0,N.join)(process.cwd(),"node_modules","commandkit-types");if(!O&&!o)return e;let t=(0,N.join)(e,"package.json"),n=(0,N.join)(e,"index.js"),r=(0,N.join)(e,"index.d.ts"),s=(0,N.join)(e,"command.d.ts"),a={name:"commandkit-types",version:"1.0.0",description:"CommandKit types package",type:"commonjs",main:"index.js",types:"index.d.ts"},m="module.exports = {};",l=`// Main types index file - imports all type declarations
3
- import './command';
4
- export {};
5
- `,c=`// Auto-generated command types
6
- export {};
7
- declare module 'commandkit' {
8
- type CommandTypeData = string
9
- }`;return await(0,H.mkdir)(e,{recursive:!0}).catch(()=>{}),await(0,H.writeFile)(t,JSON.stringify(a,null,2)),await(0,H.writeFile)(n,m),await(0,H.writeFile)(r,l),await(0,H.writeFile)(s,c),e}i(Re,"generateTypesPackage");async function Zt(o){let e=`// Auto-generated command types
10
- declare module 'commandkit' {
11
- ${o}
12
- }
13
- export {};
14
- `,t=(0,N.join)(process.cwd(),"node_modules","commandkit-types");if(!(0,Qt.existsSync)(t))return;let n=(0,N.join)(t,"command.d.ts");await(0,H.writeFile)(n,e,{encoding:"utf-8"})}i(Zt,"rewriteCommandDeclaration");var Xn={command:i(o=>o instanceof M.SlashCommandBuilder||o instanceof M.ContextMenuCommandBuilder||o&&typeof o=="object","command"),chatInput:i(o=>typeof o=="function","chatInput"),autocomplete:i(o=>typeof o=="function","autocomplete"),message:i(o=>typeof o=="function","message"),messageContextMenu:i(o=>typeof o=="function","messageContextMenu"),userContextMenu:i(o=>typeof o=="function","userContextMenu")},Qn={beforeExecute:i(o=>typeof o=="function","beforeExecute"),afterExecute:i(o=>typeof o=="function","afterExecute")},mt=class mt{constructor(e){this.commandkit=e;this.registrar=new we(this.commandkit)}loadedCommands=new M.Collection;loadedMiddlewares=new M.Collection;commandNameToId=new Map;subcommandPathToId=new Map;registrar;onInteraction=null;onMessageCreate=null;commandRunner=new Ie(this);externalCommandData=new M.Collection;externalMiddlewareData=new M.Collection;printBanner(){let e=crypto.randomUUID(),t=this.getCommandsArray().reduce((l,c)=>{let d=c.command.category||e;return l[d]=l[d]||[],l[d].push(c),l},{});console.log(h.green(`Loaded ${h.magenta(this.loadedCommands.size.toString())} commands:`));let n=Object.keys(t).sort(),r={};n.forEach(l=>{if(l!==e&&l.includes(":")){let c=l.split(":"),d=null;for(let f=c.length-1;f>0;f--){let g=c.slice(0,f).join(":");if(n.includes(g)){d=g;break}}d&&(r[d]=r[d]||[],r[d].push(l))}});let s=new Set,a=i((l,c="",d=!1,f="")=>{if(s.has(l))return;s.add(l);let g=t[l],T=r[l]&&r[l].length>0,I=d?"\u2514\u2500":"\u251C\u2500",v=f+(d?" ":"\u2502 ");if(l!==e){let y=l.includes(":")?l.split(":").pop():l;console.log(h.cyan(`${c}${I} ${h.bold(y)}`))}if(g.forEach((y,R)=>{let $e=R===g.length-1&&!T?"\u2514\u2500":"\u251C\u2500",Mn=l!==e?v:c,In=y.data.command.name,Sn=y.command.middlewares.length>0?h.magenta(" (\u03BB)"):"";console.log(`${h.green(`${Mn}${$e}`)} ${h.yellow(In)}${Sn}`)}),T){let y=r[l].sort();y.forEach((R,ne)=>{let $e=ne===y.length-1;a(R,v,$e,v)})}},"printCategory"),m=n.filter(l=>{if(l===e)return!0;if(l.includes(":")){let c=l.split(":");for(let d=1;d<c.length;d++){let f=c.slice(0,d).join(":");if(n.includes(f))return!1}return!0}return!0}).sort();m.forEach((l,c)=>{let d=c===m.length-1;a(l,"",d)})}getCommandsArray(){return Array.from(this.loadedCommands.values())}registerCommandHandler(){this.onInteraction??=async e=>{if(await this.commandkit.plugins.execute(async(s,a)=>a.onBeforeInteraction(s,e))||!(e.isCommand()||e.isAutocomplete()||e.isUserContextMenuCommand()||e.isMessageContextMenuCommand()))return;let r=await this.prepareCommandRun(e);if(r)return this.commandRunner.runCommand(r,e)},this.onMessageCreate??=async e=>{if(await this.commandkit.plugins.execute(async(r,s)=>s.onBeforeMessageCommand(r,e))||e.author.bot)return;let n=await this.prepareCommandRun(e);if(n)return this.commandRunner.runCommand(n,e)},this.commandkit.client.on(M.Events.InteractionCreate,this.onInteraction),this.commandkit.client.on(M.Events.MessageCreate,this.onMessageCreate)}async prepareCommandRun(e,t){var m;let n;if(!t)if(e instanceof M.Message){if(e.author.bot)return null;let l=await this.commandkit.config.getMessageCommandPrefix(e);n=new Ee(e,Array.isArray(l)?l:[l],c=>{var T,I;let d=this.commandNameToId.get(c);if(!d)return null;let f=this.loadedCommands.get(d);return!f||e.guildId&&((T=f.guilds)!=null&&T.length)&&!f.guilds.includes(e.guildId)?null:((I=("toJSON"in f.data.command?f.data.command.toJSON():f.data.command).options)==null?void 0:I.reduce((v,y)=>(v[y.name]=y.type,v),{}))??{}});try{t=n.getFullCommand().split(" ")[0]}catch(c){return F(c,w.InvalidCommandPrefix)||C.error(c),null}}else{if(!(e.isChatInputCommand()||e.isAutocomplete()||e.isContextMenuCommand()))return null;t=e.commandName}let r=this.commandNameToId.get(t);if(!r)return null;let s=this.loadedCommands.get(r);if(!s||(e instanceof M.CommandInteraction||e instanceof M.AutocompleteInteraction)&&e.guildId&&((m=s.guilds)!=null&&m.length)&&!s.guilds.includes(e.guildId))return null;let a=[];for(let l of s.command.middlewares){let c=this.loadedMiddlewares.get(l);c&&a.push(c)}return{command:s,middlewares:a,messageCommandParser:n}}async reloadCommands(){this.loadedCommands.clear(),this.loadedMiddlewares.clear(),this.commandNameToId.clear(),this.subcommandPathToId.clear(),this.externalCommandData.clear(),this.externalMiddlewareData.clear(),await this.loadCommands()}async addExternalMiddleware(e){for(let t of e)t.id&&this.externalMiddlewareData.set(t.id,t)}async addExternalCommands(e){for(let t of e)t.id&&this.externalCommandData.set(t.id,t)}async registerExternalLoadedMiddleware(e){for(let t of e)this.loadedMiddlewares.set(t.middleware.id,t)}async registerExternalLoadedCommands(e){for(let t of e)this.loadedCommands.set(t.command.id,t),this.commandNameToId.set(t.command.name,t.command.id)}async loadCommands(){await this.commandkit.plugins.execute((a,m)=>m.onBeforeCommandsLoad(a));let e=this.commandkit.commandsRouter;if(!e)throw new Error("Commands router has not yet initialized");let{commands:t,middlewares:n}=e.getData(),r=this.externalCommandData.size?t.concat(this.externalCommandData):t,s=this.externalMiddlewareData.size?n.concat(this.externalMiddlewareData):n;for(let[a,m]of s)await this.loadMiddleware(a,m);for(let[a,m]of r)await this.loadCommand(a,m);O&&await Zt(`type CommandTypeData = ${Array.from(this.loadedCommands.mapValues(a=>JSON.stringify(a.command.name)).values()).join(" | ")}`),await this.commandkit.plugins.execute((a,m)=>m.onAfterCommandsLoad(a))}async loadMiddleware(e,t){try{let n=await import(`${oe(t.path)}?t=${Date.now()}`),r=0;for(let[s,a]of Object.entries(Qn)){if(n[s]&&!await a(n[s]))throw new Error(`Invalid export for middleware ${e}: ${s} does not match expected value`);n[s]&&r++}if(r===0)throw new Error(`Invalid export for middleware ${e}: at least one handler function must be provided`);this.loadedMiddlewares.set(e,{middleware:t,data:n})}catch(n){C.error(`Failed to load middleware ${e}`,n)}}async loadCommand(e,t){try{if(t.path===null){this.loadedCommands.set(e,{command:t,data:{command:{name:t.name,description:`${t.name} commands`,type:1}}});return}let n=await import(`${oe(t.path)}?t=${Date.now()}`);if(!n.command)throw new Error(`Invalid export for command ${t.name}: no command definition found`);let r=0;for(let[a,m]of Object.entries(Xn))if(a!=="command"&&n[a]&&r++,n[a]&&!await m(n[a]))throw new Error(`Invalid export for command ${t.name}: ${a} does not match expected value`);if(r===0)throw new Error(`Invalid export for command ${t.name}: at least one handler function must be provided`);let s=n.command;await this.commandkit.plugins.execute(async(a,m)=>{let l=await m.prepareCommand(a,s);l&&(s=l)}),this.loadedCommands.set(e,{command:t,guilds:n.guilds,data:{...n,command:"toJSON"in s?s.toJSON():s}}),this.commandNameToId.set(t.name,e)}catch(n){C.error(`Failed to load command ${t.name} (${e})`,n)}}};i(mt,"AppCommandHandler");var Pe=mt;var ut=require("discord.js"),nn=require("fs"),dt=require("fs/promises"),k=require("path");var Zn=/^\+middleware\.(m|c)?(j|t)sx?$/,en=/^\+([^+().][^().]*)\.middleware\.(m|c)?(j|t)sx?$/,tn=/^\+global-middleware\.(m|c)?(j|t)sx?$/,er=/^([^+().][^().]*)\.(m|c)?(j|t)sx?$/,tr=/^\(.+\)$/,pt=class pt{constructor(e){this.options=e}commands=new ut.Collection;middlewares=new ut.Collection;populate(e){for(let[t,n]of Object.entries(e.commands))this.commands.set(t,n);for(let[t,n]of Object.entries(e.middlewares))this.middlewares.set(t,n)}isValidPath(){return(0,nn.existsSync)(this.options.entrypoint)}isCommand(e){return er.test(e)}isMiddleware(e){return Zn.test(e)||tn.test(e)||en.test(e)}isCategory(e){return tr.test(e)}clear(){this.commands.clear(),this.middlewares.clear()}async scan(){let e=await(0,dt.readdir)(this.options.entrypoint,{withFileTypes:!0});for(let t of e){if(t.name.startsWith("_"))continue;let n=(0,k.join)(this.options.entrypoint,t.name);if(t.isDirectory()){let r=this.isCategory(t.name)?t.name.slice(1,-1):null;await this.traverse(n,r)}else await this.handle(t)}return await this.applyMiddlewares(),this.toJSON()}getData(){return{commands:this.commands,middlewares:this.middlewares}}toJSON(){return{commands:Object.fromEntries(this.commands.entries()),middlewares:Object.fromEntries(this.middlewares.entries())}}async traverse(e,t){let n=await(0,dt.readdir)(e,{withFileTypes:!0});for(let r of n)if(!r.name.startsWith("_")){if(r.isFile())(this.isCommand(r.name)||this.isMiddleware(r.name))&&await this.handle(r,t);else if(r.isDirectory()&&this.isCategory(r.name)&&t){let s=this.isCategory(r.name)?`${t}:${r.name.slice(1,-1)}`:null;await this.traverse((0,k.join)(e,r.name),s)}}}async handle(e,t=null){let n=e.name,r=(0,k.join)(e.parentPath,e.name);if(this.isCommand(n)){let s={id:crypto.randomUUID(),name:(0,k.basename)(r,(0,k.extname)(r)),path:r,category:t,parentPath:e.parentPath,relativePath:this.replaceEntrypoint(r),middlewares:[]};this.commands.set(s.id,s)}else if(this.isMiddleware(n)){let s={id:crypto.randomUUID(),name:(0,k.basename)(r,(0,k.extname)(r)),path:r,relativePath:this.replaceEntrypoint(r),parentPath:e.parentPath,global:tn.test(n),command:en.test(n)&&n.split(".")[0]||null};this.middlewares.set(s.id,s)}}applyMiddlewares(){this.commands.forEach(e=>{let t=e.parentPath,n=Array.from(this.middlewares.values()).filter(r=>r.global?!0:r.command?r.command===e.name:r.parentPath===t).map(r=>r.id);e.middlewares=Array.from(new Set([...e.middlewares,...n]))})}replaceEntrypoint(e){return(0,k.normalize)(e).replace(this.options.entrypoint,"")}};i(pt,"CommandsRouter");var Ke=pt;var rn=require("discord.js"),on=require("fs"),ft=require("fs/promises"),De=require("path");var ht=class ht{constructor(e){this.options=e;var t;if(e.entrypoints&&(e.entrypoints=Array.from(new Set(e.entrypoints))),!((t=e.entrypoints)!=null&&t.length))throw new Error("Entrypoint directory must be provided")}events=new rn.Collection;addEntrypoints(e){this.options.entrypoints=Array.from(new Set([...this.options.entrypoints,...e]))}match(e){return this.events.get(e)??null}get entrypoints(){return this.options.entrypoints}isValidPath(){return this.entrypoints.every(e=>(0,on.existsSync)(e))}clear(){this.events.clear()}async reload(){return this.clear(),this.scan()}async scan(){for(let e of this.entrypoints){let t=await(0,ft.readdir)(e,{withFileTypes:!0});for(let n of t)if(n.isDirectory()){let r=(0,De.join)(e,n.name);await this.scanEvent(n.name,r,null,[],!0)}}return Object.fromEntries(this.events)}toJSON(){return Object.fromEntries(this.events)}async scanEvent(e,t,n=null,r=[],s=!1){let a=await(0,ft.readdir)(t,{withFileTypes:!0}),m=s&&/^\(.+\)$/.test(e),l=m?e.slice(1,-1):n??null;a.sort((c,d)=>c.name.localeCompare(d.name));for(let c of a)if(!c.name.startsWith("_")){if(c.isDirectory()){let d=(0,De.join)(t,c.name);await this.scanEvent(c.name,d,l,r);continue}c.isFile()&&/\.(m|c)?(j|t)sx?$/.test(c.name)&&r.push((0,De.join)(c.parentPath,c.name))}if(!m){let c=this.events.get(e);if(c){c.listeners=Array.from(new Set([...c.listeners,...r]));return}this.events.set(e,{event:e,path:t,listeners:r,namespace:l})}}};i(ht,"EventsRouter");var Te=ht;var an=require("discord.js");var Ct=class Ct{constructor(e){this.commandkit=e}loadedEvents=new an.Collection;getEvents(){return this.loadedEvents.size===0?[]:this.loadedEvents.toJSON().map(t=>({name:t.name,namespace:t.namespace,onceListeners:t.listeners.filter(n=>n.once).length,regularListeners:t.listeners.filter(n=>!n.once).length,metadata:t.event}))}async reloadEvents(){this.unregisterAll(),await this.loadEvents()}async loadEvents(){await this.commandkit.plugins.execute((n,r)=>r.onBeforeEventsLoad(n));let t=await this.commandkit.eventsRouter.scan();for(let n of Object.values(t)){let r=[];for(let m of n.listeners){let l=await import(oe(m,!0));(!l.default||typeof l.default!="function")&&C.error(`Event handler for ${n.event}${n.namespace?` of namespace ${n.namespace}`:""} does not have a default export or is not a function`),r.push({handler:l.default,once:!!l.once})}let s=r.length;s||C.warn(`Event ${n.event}${n.namespace?` of namespace ${n.namespace}`:""} does not have any listeners`);let a=`${n.namespace?`${n.namespace}:`:""}${n.event}`;this.loadedEvents.set(a,{name:n.event,namespace:n.namespace,event:n,listeners:r}),C.info(`\u2728 Loaded event ${n.event}${n.namespace?` of namespace ${n.namespace}`:""} with ${s} listener${s===1?"":"s"}`)}this.registerAllClientEvents(),await this.commandkit.plugins.execute((n,r)=>r.onAfterEventsLoad(n))}unregisterAll(){this.unregisterAllClientListeners(),this.loadedEvents.clear()}registerAllClientEvents(){let e=this.commandkit.client;for(let[t,n]of this.loadedEvents.entries()){let{name:r,listeners:s,namespace:a}=n,m=s.filter(g=>g.once),l=s.filter(g=>!g.once),c=new Set,d=i(async(...g)=>{let T=!1,I={name:r,args:g,namespace:a??null,once:!1,metadata:n.event,accept(){T||(T=!0)}};await this.commandkit.plugins.execute(async(v,y)=>{var R;if(!T)return(R=y.willEmitEvent)==null?void 0:R.call(y,v,I)}).catch(Object),await Xe({event:r,namespace:a??null,data:n.event,commandkit:this.commandkit,arguments:g},async()=>{for(let v of l)try{await v.handler(...g)}catch(y){if(y instanceof re){C.debug(`Event propagation stopped for ${r}${a?` of namespace ${a}`:""}`);break}C.error(`Error handling event ${r}${a?` of namespace ${a}`:""}`,y)}})},"mainHandler"),f=i(async(...g)=>{let T=!1,I=!1,v={name:r,args:g,namespace:a??null,once:!0,metadata:n.event,accept(){I||(I=!0)}};await this.commandkit.plugins.execute(async(y,R)=>{var ne;if(!I)return(ne=R.willEmitEvent)==null?void 0:ne.call(R,y,v)}).catch(Object);for(let y of m){if(T)break;await Xe({event:r,namespace:a??null,data:n.event,commandkit:this.commandkit,arguments:g},async()=>{try{if(c.has(y.handler))return;await y.handler(...g),c.add(y.handler)}catch(R){R instanceof re&&(C.debug(`Event propagation stopped for ${r}${a?` of namespace ${a}`:""}`),T=!0),C.error(`Error handling event ${r}${a?` of namespace ${a}`:""}`,R)}})}c.size===m.length&&l.length===0&&(this.loadedEvents.delete(t),C.info(`\u{1F9F9} Cleaned up completed once-only event ${r}${a?` of namespace ${a}`:""}`))},"onceHandler");this.loadedEvents.set(t,{...n,mainListener:l.length>0?{handler:d,once:!1}:void 0,executedOnceListeners:c}),a?(l.length>0&&this.commandkit.events.on(a,r,d),m.length>0&&this.commandkit.events.once(a,r,f)):(l.length>0&&e.on(r,d),m.length>0&&e.once(r,f)),C.info(`\u{1F50C} Registered event ${r}${a?` of namespace ${a}`:""} (${l.length} regular, ${m.length} once-only)`)}}unregisterAllClientListeners(){let e=this.commandkit.client;for(let[t,{name:n,mainListener:r,namespace:s}]of this.loadedEvents.entries())r?s?this.commandkit.events.off(s,n,r.handler):e.off(n,r.handler):s?this.commandkit.events.removeAllListeners(s,n):e.removeAllListeners(n),this.loadedEvents.delete(t),C.info(`\u{1F5D1}\uFE0F Unregistered event ${n}${s?` of namespace ${s}`:""}`)}};i(Ct,"AppEventsHandler");var Ae=Ct;var mn=require("fs"),un=require("path");var nr=require("rimraf"),gt=require("path"),ee=G(require("fs"));var ln=require("child_process");var L;function rr(o){process.stdout.write(o),process.stdout.write(`
15
- `)}i(rr,"write");function sn(o){rr(h.red(`Error: ${o}`)),process.exit(1)}i(sn,"panic");async function or(o){return/\.(c|m)?tsx?$/.test(o)?(process.features.typescript||await ar(),!0):!1}i(or,"ensureTypeScript");var Z;function ir(){if(Z)return Z;let o={"yarn.lock":"yarn","pnpm-lock.yaml":"pnpm","package-lock.json":"npm","bun.lock":"bun","bun.lockb":"bun"};for(let[e,t]of Object.entries(o))if(ee.default.existsSync((0,gt.join)(process.cwd(),e))){Z=t;break}return Z||(Z="npm"),Z}i(ir,"detectPackageManager");async function ar(o){if(L)return L;try{L=await import("typescript")}catch(e){if(e instanceof Error&&"code"in e&&e.code==="MODULE_NOT_FOUND")try{let t=ir();return(0,ln.execSync)(`${t} add typescript`,{stdio:"inherit",cwd:process.cwd()}),console.log(h.cyan("TypeScript has been installed automatically, restarting...")),L=await import("typescript"),L}catch{sn("TypeScript is not installed and could not be installed automatically. Please install it manually.")}sn(e||"TypeScript must be installed to use TypeScript config files.")}return L}i(ar,"loadTypeScript");async function cn(o){await sr(o);let e=await or(o),t;if(e&&L){let{transpileModule:r}=L,s=ee.default.readFileSync(o,"utf8"),{outputText:a}=r(s,{compilerOptions:{module:L.ModuleKind.ESNext,target:L.ScriptTarget.ESNext,moduleResolution:L.ModuleResolutionKind.NodeNext},fileName:o});await Re();let m=process.cwd(),l=(0,gt.join)(m,"compiled-commandkit.config.mjs");ee.default.writeFileSync(l,a),t=l,o=l}let n=await import(`file://${o}`).then(r=>r.default||r);if(t)try{ee.default.unlinkSync(t)}catch{}return n}i(cn,"loadConfigFileFromPath");async function sr(o){if(!ee.default.existsSync(o))throw new Error(`File not found: ${o}`)}i(sr,"ensureExists");var lr=["commandkit.config.js","commandkit.config.mjs","commandkit.config.cjs","commandkit.config.ts"];function cr(o){return lr.map(e=>(0,un.join)(o,e))}i(cr,"getPossibleConfigPaths");function mr(o){let e=cr(o);for(let t of e)if((0,mn.existsSync)(t))return{path:t,isTypeScript:/\.ts$/.test(t)};return null}i(mr,"findConfigFile");var xt=null;async function dn(o=process.cwd()){if(xt)return xt;let e=mr(o);if(!e)return be();let t=await cn(e.path);return xt=t,t}i(dn,"loadConfigFile");function pn(o){O&&process.on("message",async e=>{if(typeof e!="object"||e===null)return;let{event:t,path:n,id:r}=e;if(!t)return;process.env.COMMANDKIT_DEBUG_HMR==="true"&&C.info(`Received HMR event: ${t}${n?` for ${n}`:""}`);let s=!1,a=!1,m=!1,l={accept(){s=!0},preventDefault(){a=!0},path:n,event:t};try{if(await o.plugins.execute(async(c,d)=>{var f;s||await((f=d.performHMR)==null?void 0:f.call(d,c,l))}),a)return;switch(t){case he.ReloadCommands:o.commandHandler.reloadCommands(),m=!0;break;case he.ReloadEvents:o.eventHandler.reloadEvents(),m=!0;break;case he.Unknown:m=!1;break;default:break}}finally{r&&process.send&&process.send({type:"commandkit-hmr-ack",id:r,handled:m||s})}})}i(pn,"registerDevHooks");var gn=require("fs");var fn=G(require("events"));var yt=class yt{constructor(e){this.commandkit=e}emitter=new fn.default;to(e){return{on:this.on.bind(this,e),off:this.off.bind(this,e),once:this.once.bind(this,e),emit:this.emit.bind(this,e),removeAllListeners:this.removeAllListeners.bind(this,e)}}on(e,t,n){this.emitter.on(`${e}:${t}`,n)}off(e,t,n){this.emitter.off(`${e}:${t}`,n)}once(e,t,n){this.emitter.once(`${e}:${t}`,n)}emit(e,t,...n){return this.emitter.emit(`${e}:${t}`,...n)}removeAllListeners(e,t){t?this.emitter.removeAllListeners(`${e}:${t}`):this.emitter.removeAllListeners(e)}};i(yt,"CommandKitEventsChannel");var ke=yt;var hn=require("discord.js");var bt=class bt extends hn.Collection{};i(bt,"FlagStore");var Be=bt;var xn,Oe=new Set,Le=new Set;function ur(o){Oe.add(o)}i(ur,"onBootstrap");function dr(o){Le.add(o)}i(dr,"onApplicationBootstrap");var te,B,yn,bn,En,wn,vn,U=class U extends Cn.default{constructor(t){if(U.instance&&process.emitWarning("CommandKit instance already exists. Having multiple instance in same project is discouraged and it may lead to unexpected behavior.",{code:"MultiInstanceWarning"}),!t.client)throw new Error(h.red('"client" is required when instantiating CommandKit.'));super();this.options=t;b(this,B);b(this,te,!1);x(this,"eventInterceptor");x(this,"config",{defaultLocale:Fe.Locale.EnglishUS,getMessageCommandPrefix:i(()=>"!","getMessageCommandPrefix")});x(this,"store",new Map);x(this,"flags",new Be);x(this,"commandsRouter");x(this,"eventsRouter");x(this,"commandHandler",new Pe(this));x(this,"eventHandler",new Ae(this));x(this,"plugins");x(this,"events",new ke(this));this.plugins=new xe(this),U.instance||(U.instance=this),xn=U.instance,S(this,B,yn).call(this)}async start(t){if(!p(this,te)){if(!this.options.client)throw new Error(h.red('"client" is required when starting CommandKit.'));if(this.eventInterceptor=new pe(this.client),O)try{pn(this),await Re()}catch(n){process.env.COMMANDKIT_DEBUG_TYPEGEN&&C.error(n)}if(await this.loadPlugins(),await S(this,B,En).call(this),this.commandHandler.registerCommandHandler(),this.incrementClientListenersCount(),t!==!1&&!this.options.client.isReady()){this.client.once(Fe.Events.ClientReady,async()=>{await this.commandHandler.registrar.register()}),await this.plugins.execute((r,s)=>{var a;return(a=s.onBeforeClientLogin)==null?void 0:a.call(s,r)});let n=t??this.options.client.token??process.env.TOKEN??process.env.DISCORD_TOKEN;await this.options.client.login(n),await this.plugins.execute((r,s)=>{var a;return(a=s.onAfterClientLogin)==null?void 0:a.call(s,r)})}else this.options.client.isReady()&&await this.commandHandler.registrar.register();P(this,te,!0),await S(this,B,bn).call(this)}}async loadPlugins(){let n=(await dn()).plugins.flat(2).filter(r=>Ht(r));if(n.length)for(let r of n)await this.plugins.softRegisterPlugin(r)}get started(){return p(this,te)}setPrefixResolver(t){return this.config.getMessageCommandPrefix=t,this}setDefaultLocale(t){return this.config.defaultLocale=t,this}get client(){return this.options.client}async reloadCommands(){await this.commandHandler.reloadCommands()}async reloadEvents(){await this.eventHandler.reloadEvents()}incrementClientListenersCount(){this.options.client.setMaxListeners(this.options.client.getMaxListeners()+1)}decrementClientListenersCount(){this.options.client.setMaxListeners(this.options.client.getMaxListeners()-1)}getAppDirectory(){return Vt()}getPath(t){let n=this.getAppDirectory();if(!n)return null;switch(t){case"commands":return(0,Et.join)(n,"commands");case"events":return(0,Et.join)(n,"events");default:return t}}};te=new WeakMap,B=new WeakSet,yn=i(async function(){for(let t of Oe)try{await t(this)}catch(n){C.error("Error while executing bootstrap hook: ",n)}finally{Oe.delete(t)}Oe.clear()},"#bootstrapHooks"),bn=i(async function(){for(let t of Le)try{await t(this)}catch(n){C.error("Error while executing application bootstrap hook: ",n)}finally{Le.delete(t)}Le.clear()},"#applicationBootstrapHooks"),En=i(async function(){if(!this.getAppDirectory())return;let n=this.getPath("commands"),r=this.getPath("events");this.commandsRouter=new Ke({entrypoint:n}),await this.plugins.execute((s,a)=>a.onCommandsRouterInit(s)),this.eventsRouter=new Te({entrypoints:[r]}),await this.plugins.execute((s,a)=>a.onEventsRouterInit(s)),await S(this,B,vn).call(this),await S(this,B,wn).call(this)},"#init"),wn=i(async function(){if(this.commandsRouter.isValidPath()){let t=await this.commandsRouter.scan();O&&(0,gn.writeFileSync)("./.commandkit/commands.json",JSON.stringify(t,null,2))}await this.commandHandler.loadCommands(),this.commandHandler.printBanner()},"#initCommands"),vn=i(async function(){this.eventsRouter.isValidPath()&&await this.eventsRouter.scan(),await this.eventHandler.loadEvents()},"#initEvents"),i(U,"CommandKit"),x(U,"createElement",$t),x(U,"Fragment",Ft),x(U,"instance");var ue=U;0&&(module.exports={CommandKit,commandkit,onApplicationBootstrap,onBootstrap});
16
- //# sourceMappingURL=CommandKit.js.map
1
+ require('./colors-Cd4Oz-r-.js');
2
+ require('./ActionRow-CmTHbo2t.js');
3
+ require('./error-codes-C_UO39jz.js');
4
+ const require_CommandKit = require('./CommandKit-DDrQtQns.js');
5
+ require('./common-CcfjYnPG.js');
6
+ require('./common-CeO-vn8Y.js');
7
+ require('./container-CpuiLsZM.js');
8
+ require('./file-DE69SSOP.js');
9
+ require('./media-gallery-nUEHqKVF.js');
10
+ require('./section-D6t7tyEZ.js');
11
+ require('./separator-DYAFK-Jj.js');
12
+ require('./text-display-Dy6JHB5X.js');
13
+ require('./v2-DofkPKHs.js');
14
+ require('./warn-unstable-V20WCBDd.js');
15
+ require('./element-hdSqnIpC.js');
16
+ require('./types-B5VPP9ig.js');
17
+ require('./EventInterceptor-DtRINyTP.js');
18
+ require('./constants-DOPSzXI0.js');
19
+ require('./PluginCommon-DPqnQngK.js');
20
+ require('./CompilerPlugin-XzuGixkC.js');
21
+ require('./RuntimePlugin-CKsd83M3.js');
22
+ require('./types-Bq0EWaM3.js');
23
+ require('./CompilerPluginRuntime-zFCCw1kM.js');
24
+ require('./types-Cdh4uaFR.js');
25
+ require('./runtime-ByJtSXs_.js');
26
+ require('./EventWorkerContext-XZGSHn5F.js');
27
+ require('./resolve-file-url-pO9_rLft.js');
28
+ require('./MessageCommandParser-B13Pkwo9.js');
29
+ require('./signals-Bp0bzjE6.js');
30
+ require('./types-package-DRhFn59I.js');
31
+ require('./CommandsRouter-BHaPno8o.js');
32
+ require('./EventsRouter-CqnrlbjN.js');
33
+ require('./router-Dn35v30f.js');
34
+ require('./common-DirpDCa6.js');
35
+ require('./CommandKitEventsChannel-B6LKgxmv.js');
36
+ require('./store-Ci6ib2C9.js');
37
+
38
+ exports.CommandKit = require_CommandKit.CommandKit;
39
+ Object.defineProperty(exports, 'commandkit', {
40
+ enumerable: true,
41
+ get: function () {
42
+ return require_CommandKit.commandkit;
43
+ }
44
+ });
45
+ exports.onApplicationBootstrap = require_CommandKit.onApplicationBootstrap;
46
+ exports.onBootstrap = require_CommandKit.onBootstrap;
@@ -0,0 +1,44 @@
1
+ const require_chunk = require('./chunk-nOFOJqeH.js');
2
+ const node_events = require_chunk.__toESM(require("node:events"));
3
+
4
+ //#region src/events/CommandKitEventsChannel.ts
5
+ var CommandKitEventsChannel = class {
6
+ emitter = new node_events.default();
7
+ constructor(commandkit) {
8
+ this.commandkit = commandkit;
9
+ }
10
+ to(namespace) {
11
+ return {
12
+ on: this.on.bind(this, namespace),
13
+ off: this.off.bind(this, namespace),
14
+ once: this.once.bind(this, namespace),
15
+ emit: this.emit.bind(this, namespace),
16
+ removeAllListeners: this.removeAllListeners.bind(this, namespace)
17
+ };
18
+ }
19
+ on(namespace, event, listener) {
20
+ this.emitter.on(`${namespace}:${event}`, listener);
21
+ }
22
+ off(namespace, event, listener) {
23
+ this.emitter.off(`${namespace}:${event}`, listener);
24
+ }
25
+ once(namespace, event, listener) {
26
+ this.emitter.once(`${namespace}:${event}`, listener);
27
+ }
28
+ emit(namespace, event, ...args) {
29
+ return this.emitter.emit(`${namespace}:${event}`, ...args);
30
+ }
31
+ removeAllListeners(namespace, event) {
32
+ if (event) this.emitter.removeAllListeners(`${namespace}:${event}`);
33
+ else this.emitter.removeAllListeners(namespace);
34
+ }
35
+ };
36
+
37
+ //#endregion
38
+ Object.defineProperty(exports, 'CommandKitEventsChannel', {
39
+ enumerable: true,
40
+ get: function () {
41
+ return CommandKitEventsChannel;
42
+ }
43
+ });
44
+ //# sourceMappingURL=CommandKitEventsChannel-B6LKgxmv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandKitEventsChannel-B6LKgxmv.js","names":[],"sources":["../src/events/CommandKitEventsChannel.ts"],"sourcesContent":["import EventEmitter from 'node:events';\nimport type { CommandKit } from '../CommandKit';\nimport type { AsyncFunction, GenericFunction } from '../context/async-context';\n\nexport type ListenerFunction = GenericFunction | AsyncFunction;\n\nexport class CommandKitEventsChannel {\n private emitter = new EventEmitter();\n\n public constructor(public readonly commandkit: CommandKit) {}\n\n public to(namespace: string) {\n return {\n on: this.on.bind(this, namespace),\n off: this.off.bind(this, namespace),\n once: this.once.bind(this, namespace),\n emit: this.emit.bind(this, namespace),\n removeAllListeners: this.removeAllListeners.bind(this, namespace),\n };\n }\n\n public on(namespace: string, event: string, listener: ListenerFunction) {\n this.emitter.on(`${namespace}:${event}`, listener);\n }\n\n public off(namespace: string, event: string, listener: ListenerFunction) {\n this.emitter.off(`${namespace}:${event}`, listener);\n }\n\n public once(namespace: string, event: string, listener: ListenerFunction) {\n this.emitter.once(`${namespace}:${event}`, listener);\n }\n\n public emit(namespace: string, event: string, ...args: any[]) {\n return this.emitter.emit(`${namespace}:${event}`, ...args);\n }\n\n public removeAllListeners(namespace: string): void;\n public removeAllListeners(namespace: string, event: string): void;\n public removeAllListeners(namespace: string, event?: string): void {\n if (event) {\n this.emitter.removeAllListeners(`${namespace}:${event}`);\n } else {\n this.emitter.removeAllListeners(namespace);\n }\n }\n}\n"],"mappings":";;;;AAMA,IAAa,0BAAb,MAAqC;CACnC,AAAQ,UAAU,IAAI;CAEtB,AAAO,YAA4B,YAAwB;EAAxB;CAAyB;CAE5D,AAAO,GAAG,WAAmB;AAC3B,SAAO;GACL,IAAI,KAAK,GAAG,KAAK,MAAM,UAAU;GACjC,KAAK,KAAK,IAAI,KAAK,MAAM,UAAU;GACnC,MAAM,KAAK,KAAK,KAAK,MAAM,UAAU;GACrC,MAAM,KAAK,KAAK,KAAK,MAAM,UAAU;GACrC,oBAAoB,KAAK,mBAAmB,KAAK,MAAM,UAAU;EAClE;CACH;CAEA,AAAO,GAAG,WAAmB,OAAe,UAA4B;AACtE,OAAK,QAAQ,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;CACpD;CAEA,AAAO,IAAI,WAAmB,OAAe,UAA4B;AACvE,OAAK,QAAQ,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;CACrD;CAEA,AAAO,KAAK,WAAmB,OAAe,UAA4B;AACxE,OAAK,QAAQ,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;CACtD;CAEA,AAAO,KAAK,WAAmB,OAAe,GAAG,MAAa;AAC5D,SAAO,KAAK,QAAQ,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,GAAG,KAAK;CAC5D;CAIA,AAAO,mBAAmB,WAAmB,OAAsB;AACjE,MAAI,MACF,MAAK,QAAQ,oBAAoB,EAAE,UAAU,GAAG,MAAM,EAAE;MAExD,MAAK,QAAQ,mBAAmB,UAAU;CAE9C;AACF"}
@@ -0,0 +1,127 @@
1
+ const require_chunk = require('./chunk-nOFOJqeH.js');
2
+ const discord_js = require_chunk.__toESM(require("discord.js"));
3
+ const node_fs = require_chunk.__toESM(require("node:fs"));
4
+ const node_path = require_chunk.__toESM(require("node:path"));
5
+ const node_fs_promises = require_chunk.__toESM(require("node:fs/promises"));
6
+
7
+ //#region src/app/router/CommandsRouter.ts
8
+ const MIDDLEWARE_PATTERN = /^\+middleware\.(m|c)?(j|t)sx?$/;
9
+ const COMMAND_MIDDLEWARE_PATTERN = /^\+([^+().][^().]*)\.middleware\.(m|c)?(j|t)sx?$/;
10
+ const GLOBAL_MIDDLEWARE_PATTERN = /^\+global-middleware\.(m|c)?(j|t)sx?$/;
11
+ const COMMAND_PATTERN = /^([^+().][^().]*)\.(m|c)?(j|t)sx?$/;
12
+ const CATEGORY_PATTERN = /^\(.+\)$/;
13
+ var CommandsRouter = class {
14
+ commands = new discord_js.Collection();
15
+ middlewares = new discord_js.Collection();
16
+ constructor(options) {
17
+ this.options = options;
18
+ }
19
+ populate(data) {
20
+ for (const [id, command] of Object.entries(data.commands)) this.commands.set(id, command);
21
+ for (const [id, middleware] of Object.entries(data.middlewares)) this.middlewares.set(id, middleware);
22
+ }
23
+ isValidPath() {
24
+ return (0, node_fs.existsSync)(this.options.entrypoint);
25
+ }
26
+ isCommand(name) {
27
+ return COMMAND_PATTERN.test(name);
28
+ }
29
+ isMiddleware(name) {
30
+ return MIDDLEWARE_PATTERN.test(name) || GLOBAL_MIDDLEWARE_PATTERN.test(name) || COMMAND_MIDDLEWARE_PATTERN.test(name);
31
+ }
32
+ isCategory(name) {
33
+ return CATEGORY_PATTERN.test(name);
34
+ }
35
+ clear() {
36
+ this.commands.clear();
37
+ this.middlewares.clear();
38
+ }
39
+ async scan() {
40
+ const entries = await (0, node_fs_promises.readdir)(this.options.entrypoint, { withFileTypes: true });
41
+ for (const entry of entries) {
42
+ if (entry.name.startsWith("_")) continue;
43
+ const fullPath = (0, node_path.join)(this.options.entrypoint, entry.name);
44
+ if (entry.isDirectory()) {
45
+ const category = this.isCategory(entry.name) ? entry.name.slice(1, -1) : null;
46
+ await this.traverse(fullPath, category);
47
+ } else await this.handle(entry);
48
+ }
49
+ await this.applyMiddlewares();
50
+ return this.toJSON();
51
+ }
52
+ getData() {
53
+ return {
54
+ commands: this.commands,
55
+ middlewares: this.middlewares
56
+ };
57
+ }
58
+ toJSON() {
59
+ return {
60
+ commands: Object.fromEntries(this.commands.entries()),
61
+ middlewares: Object.fromEntries(this.middlewares.entries())
62
+ };
63
+ }
64
+ async traverse(path, category) {
65
+ const entries = await (0, node_fs_promises.readdir)(path, { withFileTypes: true });
66
+ for (const entry of entries) {
67
+ if (entry.name.startsWith("_")) continue;
68
+ if (entry.isFile()) {
69
+ if (this.isCommand(entry.name) || this.isMiddleware(entry.name)) await this.handle(entry, category);
70
+ } else if (entry.isDirectory() && this.isCategory(entry.name) && category) {
71
+ const nestedCategory = this.isCategory(entry.name) ? `${category}:${entry.name.slice(1, -1)}` : null;
72
+ await this.traverse((0, node_path.join)(path, entry.name), nestedCategory);
73
+ }
74
+ }
75
+ }
76
+ async handle(entry, category = null) {
77
+ const name = entry.name;
78
+ const path = (0, node_path.join)(entry.parentPath, entry.name);
79
+ if (this.isCommand(name)) {
80
+ const command = {
81
+ id: crypto.randomUUID(),
82
+ name: (0, node_path.basename)(path, (0, node_path.extname)(path)),
83
+ path,
84
+ category,
85
+ parentPath: entry.parentPath,
86
+ relativePath: this.replaceEntrypoint(path),
87
+ middlewares: []
88
+ };
89
+ this.commands.set(command.id, command);
90
+ } else if (this.isMiddleware(name)) {
91
+ const middleware = {
92
+ id: crypto.randomUUID(),
93
+ name: (0, node_path.basename)(path, (0, node_path.extname)(path)),
94
+ path,
95
+ relativePath: this.replaceEntrypoint(path),
96
+ parentPath: entry.parentPath,
97
+ global: GLOBAL_MIDDLEWARE_PATTERN.test(name),
98
+ command: COMMAND_MIDDLEWARE_PATTERN.test(name) ? name.split(".")[0] || null : null
99
+ };
100
+ this.middlewares.set(middleware.id, middleware);
101
+ }
102
+ }
103
+ applyMiddlewares() {
104
+ this.commands.forEach((command) => {
105
+ const commandPath = command.parentPath;
106
+ const samePathMiddlewares = Array.from(this.middlewares.values()).filter((middleware) => {
107
+ if (middleware.global) return true;
108
+ if (middleware.command) return middleware.command === command.name;
109
+ return middleware.parentPath === commandPath;
110
+ }).map((middleware) => middleware.id);
111
+ command.middlewares = Array.from(new Set([...command.middlewares, ...samePathMiddlewares]));
112
+ });
113
+ }
114
+ replaceEntrypoint(path) {
115
+ const normalized = (0, node_path.normalize)(path);
116
+ return normalized.replace(this.options.entrypoint, "");
117
+ }
118
+ };
119
+
120
+ //#endregion
121
+ Object.defineProperty(exports, 'CommandsRouter', {
122
+ enumerable: true,
123
+ get: function () {
124
+ return CommandsRouter;
125
+ }
126
+ });
127
+ //# sourceMappingURL=CommandsRouter-BHaPno8o.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandsRouter-BHaPno8o.js","names":[],"sources":["../src/app/router/CommandsRouter.ts"],"sourcesContent":["import { Collection } from 'discord.js';\nimport { Dirent, existsSync } from 'node:fs';\nimport { readdir } from 'node:fs/promises';\nimport { basename, extname, join, normalize } from 'node:path';\n\nexport interface Command {\n id: string;\n name: string;\n path: string;\n relativePath: string;\n parentPath: string;\n middlewares: Array<string>;\n category: string | null;\n}\n\nexport interface Middleware {\n id: string;\n name: string;\n path: string;\n relativePath: string;\n parentPath: string;\n global: boolean;\n command: string | null;\n}\n\nexport interface ParsedCommandData {\n commands: Record<string, Command>;\n middlewares: Record<string, Middleware>;\n}\n\nexport interface CommandsRouterOptions {\n entrypoint: string;\n}\n\nconst MIDDLEWARE_PATTERN = /^\\+middleware\\.(m|c)?(j|t)sx?$/;\nconst COMMAND_MIDDLEWARE_PATTERN =\n /^\\+([^+().][^().]*)\\.middleware\\.(m|c)?(j|t)sx?$/;\nconst GLOBAL_MIDDLEWARE_PATTERN = /^\\+global-middleware\\.(m|c)?(j|t)sx?$/;\nconst COMMAND_PATTERN = /^([^+().][^().]*)\\.(m|c)?(j|t)sx?$/;\nconst CATEGORY_PATTERN = /^\\(.+\\)$/;\n\nexport class CommandsRouter {\n private commands = new Collection<string, Command>();\n private middlewares = new Collection<string, Middleware>();\n\n public constructor(private readonly options: CommandsRouterOptions) {}\n\n public populate(data: ParsedCommandData) {\n for (const [id, command] of Object.entries(data.commands)) {\n this.commands.set(id, command);\n }\n\n for (const [id, middleware] of Object.entries(data.middlewares)) {\n this.middlewares.set(id, middleware);\n }\n }\n\n public isValidPath(): boolean {\n return existsSync(this.options.entrypoint);\n }\n\n private isCommand(name: string): boolean {\n return COMMAND_PATTERN.test(name);\n }\n\n private isMiddleware(name: string): boolean {\n return (\n MIDDLEWARE_PATTERN.test(name) ||\n GLOBAL_MIDDLEWARE_PATTERN.test(name) ||\n COMMAND_MIDDLEWARE_PATTERN.test(name)\n );\n }\n\n private isCategory(name: string): boolean {\n return CATEGORY_PATTERN.test(name);\n }\n\n public clear() {\n this.commands.clear();\n this.middlewares.clear();\n }\n\n public async scan() {\n const entries = await readdir(this.options.entrypoint, {\n withFileTypes: true,\n });\n\n for (const entry of entries) {\n // ignore _ prefixed files\n if (entry.name.startsWith('_')) continue;\n\n const fullPath = join(this.options.entrypoint, entry.name);\n\n if (entry.isDirectory()) {\n const category = this.isCategory(entry.name)\n ? entry.name.slice(1, -1)\n : null;\n\n await this.traverse(fullPath, category);\n } else {\n await this.handle(entry);\n }\n }\n\n await this.applyMiddlewares();\n\n return this.toJSON();\n }\n\n public getData() {\n return {\n commands: this.commands,\n middlewares: this.middlewares,\n };\n }\n\n public toJSON() {\n return {\n commands: Object.fromEntries(this.commands.entries()),\n middlewares: Object.fromEntries(this.middlewares.entries()),\n };\n }\n\n private async traverse(path: string, category: string | null) {\n const entries = await readdir(path, {\n withFileTypes: true,\n });\n\n for (const entry of entries) {\n // ignore _ prefixed files\n if (entry.name.startsWith('_')) continue;\n\n if (entry.isFile()) {\n if (this.isCommand(entry.name) || this.isMiddleware(entry.name)) {\n await this.handle(entry, category);\n }\n } else if (\n entry.isDirectory() &&\n this.isCategory(entry.name) &&\n category\n ) {\n // nested category\n const nestedCategory = this.isCategory(entry.name)\n ? `${category}:${entry.name.slice(1, -1)}`\n : null;\n await this.traverse(join(path, entry.name), nestedCategory);\n }\n\n // TODO: handle subcommands\n }\n }\n\n private async handle(entry: Dirent, category: string | null = null) {\n const name = entry.name;\n const path = join(entry.parentPath, entry.name);\n\n if (this.isCommand(name)) {\n const command: Command = {\n id: crypto.randomUUID(),\n name: basename(path, extname(path)),\n path,\n category,\n parentPath: entry.parentPath,\n relativePath: this.replaceEntrypoint(path),\n middlewares: [],\n };\n\n this.commands.set(command.id, command);\n } else if (this.isMiddleware(name)) {\n const middleware: Middleware = {\n id: crypto.randomUUID(),\n name: basename(path, extname(path)),\n path,\n relativePath: this.replaceEntrypoint(path),\n parentPath: entry.parentPath,\n global: GLOBAL_MIDDLEWARE_PATTERN.test(name),\n command: COMMAND_MIDDLEWARE_PATTERN.test(name)\n ? name.split('.')[0] || null\n : null,\n };\n\n this.middlewares.set(middleware.id, middleware);\n }\n }\n\n private applyMiddlewares() {\n this.commands.forEach((command) => {\n const commandPath = command.parentPath;\n const samePathMiddlewares = Array.from(this.middlewares.values())\n .filter((middleware) => {\n if (middleware.global) return true;\n if (middleware.command) return middleware.command === command.name;\n return middleware.parentPath === commandPath;\n })\n .map((middleware) => middleware.id);\n\n command.middlewares = Array.from(\n new Set([...command.middlewares, ...samePathMiddlewares]),\n );\n });\n }\n\n private replaceEntrypoint(path: string) {\n const normalized = normalize(path);\n return normalized.replace(this.options.entrypoint, '');\n }\n}\n"],"mappings":";;;;;;;AAkCA,MAAM,qBAAqB;AAC3B,MAAM,6BACN;AACA,MAAM,4BAA4B;AAClC,MAAM,kBAAkB;AACxB,MAAM,mBAAmB;AAEzB,IAAa,iBAAb,MAA4B;CAC1B,AAAQ,WAAW,IAAI;CACvB,AAAQ,cAAc,IAAI;CAE1B,AAAO,YAA6B,SAAgC;EAAhC;CAAiC;CAErE,AAAO,SAAS,MAAyB;AACvC,OAAK,MAAM,CAAC,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,SAAS,CACvD,MAAK,SAAS,IAAI,IAAI,QAAQ;AAGhC,OAAK,MAAM,CAAC,IAAI,WAAW,IAAI,OAAO,QAAQ,KAAK,YAAY,CAC7D,MAAK,YAAY,IAAI,IAAI,WAAW;CAExC;CAEA,AAAO,cAAuB;AAC5B,SAAO,wBAAW,KAAK,QAAQ,WAAW;CAC5C;CAEA,AAAQ,UAAU,MAAuB;AACvC,SAAO,gBAAgB,KAAK,KAAK;CACnC;CAEA,AAAQ,aAAa,MAAuB;AAC1C,SACE,mBAAmB,KAAK,KAAK,IAC7B,0BAA0B,KAAK,KAAK,IACpC,2BAA2B,KAAK,KAAI;CAExC;CAEA,AAAQ,WAAW,MAAuB;AACxC,SAAO,iBAAiB,KAAK,KAAK;CACpC;CAEA,AAAO,QAAQ;AACb,OAAK,SAAS,OAAO;AACrB,OAAK,YAAY,OAAO;CAC1B;CAEA,MAAa,OAAO;EAClB,MAAM,UAAU,MAAM,8BAAQ,KAAK,QAAQ,YAAY,EACrD,eAAe,KAChB,EAAC;AAEF,OAAK,MAAM,SAAS,SAAS;AAE3B,OAAI,MAAM,KAAK,WAAW,IAAI,CAAE;GAEhC,MAAM,WAAW,oBAAK,KAAK,QAAQ,YAAY,MAAM,KAAK;AAE1D,OAAI,MAAM,aAAa,EAAE;IACvB,MAAM,WAAW,KAAK,WAAW,MAAM,KAAI,GAC3C,MAAM,KAAK,MAAM,GAAG,GAAG,GACvB;AAEA,UAAM,KAAK,SAAS,UAAU,SAAS;GACxC,MACC,OAAM,KAAK,OAAO,MAAM;EAE5B;AAEA,QAAM,KAAK,kBAAkB;AAE7B,SAAO,KAAK,QAAQ;CACtB;CAEA,AAAO,UAAU;AACf,SAAO;GACL,UAAU,KAAK;GACf,aAAa,KAAK;EACnB;CACH;CAEA,AAAO,SAAS;AACd,SAAO;GACL,UAAU,OAAO,YAAY,KAAK,SAAS,SAAS,CAAC;GACrD,aAAa,OAAO,YAAY,KAAK,YAAY,SAAS,CAAC;EAC5D;CACH;CAEA,MAAc,SAAS,MAAc,UAAyB;EAC5D,MAAM,UAAU,MAAM,8BAAQ,MAAM,EAClC,eAAe,KAChB,EAAC;AAEF,OAAK,MAAM,SAAS,SAAS;AAE3B,OAAI,MAAM,KAAK,WAAW,IAAI,CAAE;AAEhC,OAAI,MAAM,QAAQ,EAChB;QAAI,KAAK,UAAU,MAAM,KAAK,IAAI,KAAK,aAAa,MAAM,KAAK,CAC7D,OAAM,KAAK,OAAO,OAAO,SAAS;GACpC,WAEF,MAAM,aAAa,IACnB,KAAK,WAAW,MAAM,KAAK,IAC3B,UACA;IAEE,MAAM,iBAAiB,KAAK,WAAW,MAAM,KAAI,IAChD,EAAE,SAAS,GAAG,MAAM,KAAK,MAAM,GAAG,GAAG,CAAC,IACvC;AACA,UAAM,KAAK,SAAS,oBAAK,MAAM,MAAM,KAAK,EAAE,eAAe;GAC7D;EAGF;CACF;CAEA,MAAc,OAAO,OAAe,WAA0B,MAAM;EAClE,MAAM,OAAO,MAAM;EACnB,MAAM,OAAO,oBAAK,MAAM,YAAY,MAAM,KAAK;AAE/C,MAAI,KAAK,UAAU,KAAK,EAAE;GACxB,MAAM,UAAmB;IACvB,IAAI,OAAO,YAAY;IACvB,MAAM,wBAAS,MAAM,uBAAQ,KAAK,CAAC;IACnC;IACA;IACA,YAAY,MAAM;IAClB,cAAc,KAAK,kBAAkB,KAAK;IAC1C,aAAa,CAAE;GAChB;AAED,QAAK,SAAS,IAAI,QAAQ,IAAI,QAAQ;EACvC,WAAU,KAAK,aAAa,KAAK,EAAE;GAClC,MAAM,aAAyB;IAC7B,IAAI,OAAO,YAAY;IACvB,MAAM,wBAAS,MAAM,uBAAQ,KAAK,CAAC;IACnC;IACA,cAAc,KAAK,kBAAkB,KAAK;IAC1C,YAAY,MAAM;IAClB,QAAQ,0BAA0B,KAAK,KAAK;IAC5C,SAAS,2BAA2B,KAAK,KAAI,GAC7C,KAAK,MAAM,IAAI,CAAC,MAAM,OACtB;GACD;AAED,QAAK,YAAY,IAAI,WAAW,IAAI,WAAW;EACjD;CACF;CAEA,AAAQ,mBAAmB;AACzB,OAAK,SAAS,QAAQ,CAAC,YAAY;GACjC,MAAM,cAAc,QAAQ;GAC5B,MAAM,sBAAsB,MAAM,KAAK,KAAK,YAAY,QAAQ,CAAA,CAChE,OAAO,CAAC,eAAe;AACrB,QAAI,WAAW,OAAQ,QAAO;AAC9B,QAAI,WAAW,QAAS,QAAO,WAAW,YAAY,QAAQ;AAC9D,WAAO,WAAW,eAAe;GAClC,EAAC,CACF,IAAI,CAAC,eAAe,WAAW,GAAG;AAElC,WAAQ,cAAc,MAAM,KAC1B,IAAI,IAAI,CAAC,GAAG,QAAQ,aAAa,GAAG,mBAAoB,GACzD;EACF,EAAC;CACJ;CAEA,AAAQ,kBAAkB,MAAc;EACtC,MAAM,aAAa,yBAAU,KAAK;AAClC,SAAO,WAAW,QAAQ,KAAK,QAAQ,YAAY,GAAG;CACxD;AACF"}
@@ -0,0 +1,67 @@
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
@@ -0,0 +1,32 @@
1
+ const require_PluginCommon = require('./PluginCommon-DPqnQngK.js');
2
+
3
+ //#region src/plugins/CompilerPlugin.ts
4
+ var CompilerPlugin = class extends require_PluginCommon.PluginCommon {
5
+ type = require_PluginCommon.PluginType.Compiler;
6
+ /**
7
+ * Called when transformation is requested to this plugin
8
+ * @param params The parameters for the transformation
9
+ * @returns The transformed result
10
+ */
11
+ async transform(params) {
12
+ return null;
13
+ }
14
+ };
15
+ function isCompilerPlugin(plugin) {
16
+ return require_PluginCommon.isPlugin(plugin) && plugin.type === require_PluginCommon.PluginType.Compiler;
17
+ }
18
+
19
+ //#endregion
20
+ Object.defineProperty(exports, 'CompilerPlugin', {
21
+ enumerable: true,
22
+ get: function () {
23
+ return CompilerPlugin;
24
+ }
25
+ });
26
+ Object.defineProperty(exports, 'isCompilerPlugin', {
27
+ enumerable: true,
28
+ get: function () {
29
+ return isCompilerPlugin;
30
+ }
31
+ });
32
+ //# sourceMappingURL=CompilerPlugin-XzuGixkC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompilerPlugin-XzuGixkC.js","names":[],"sources":["../src/plugins/CompilerPlugin.ts"],"sourcesContent":["import { OnResolveArgs } from './plugin-runtime/types';\nimport {\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 isPlugin(plugin) && plugin.type === PluginType.Compiler;\n}\n"],"mappings":";;;AAoBA,IAAsB,iBAAtB,cAEA,kCAAuC;CACrC,AAAgB,OAAO,gCAAW;;;;;;CAOlC,MAAa,UACb,QAC0C;AACxC,SAAO;CACT;AACF;AAEA,SAAgB,iBAAiB,QAA2C;AAC1E,QAAO,8BAAS,OAAO,IAAI,OAAO,SAAS,gCAAW;AACxD"}
@@ -0,0 +1,70 @@
1
+
2
+ //#region src/plugins/plugin-runtime/CompilerPluginRuntime.ts
3
+ var CompilerPluginRuntime = class {
4
+ name = "CompilerPluginRuntime";
5
+ initialized = false;
6
+ constructor(plugins) {
7
+ this.plugins = plugins;
8
+ }
9
+ getPlugins() {
10
+ return this.plugins;
11
+ }
12
+ isEmpty() {
13
+ return !this.plugins.length;
14
+ }
15
+ async transform(code, id) {
16
+ let map = null;
17
+ for (const plugin of this.plugins) try {
18
+ var _plugin$transform;
19
+ const res = await ((_plugin$transform = plugin.transform) === null || _plugin$transform === void 0 ? void 0 : _plugin$transform.call(plugin, {
20
+ code,
21
+ id
22
+ }));
23
+ if (!res) continue;
24
+ if (res.code) code = res.code;
25
+ if (res.map) map = res.map;
26
+ } catch (e) {
27
+ const err = e instanceof Error ? e : new Error(e);
28
+ throw new Error(`Plugin ${plugin.name} failed to transform: ${err.message}`);
29
+ }
30
+ return {
31
+ code,
32
+ map
33
+ };
34
+ }
35
+ async init() {
36
+ if (this.initialized) return;
37
+ for (const plugin of this.plugins) try {
38
+ var _plugin$activate;
39
+ await ((_plugin$activate = plugin.activate) === null || _plugin$activate === void 0 ? void 0 : _plugin$activate.call(plugin, this));
40
+ } catch (e) {
41
+ console.error(`Plugin ${plugin.name} failed to activate with ${(e === null || e === void 0 ? void 0 : e.stack) || e}`);
42
+ }
43
+ this.initialized = true;
44
+ }
45
+ async destroy() {
46
+ if (!this.initialized) return;
47
+ for (const plugin of this.plugins) try {
48
+ var _plugin$deactivate;
49
+ await ((_plugin$deactivate = plugin.deactivate) === null || _plugin$deactivate === void 0 ? void 0 : _plugin$deactivate.call(plugin, this));
50
+ } catch (e) {
51
+ console.error(`Plugin ${plugin.name} failed to deactivate with ${(e === null || e === void 0 ? void 0 : e.stack) || e}`);
52
+ }
53
+ this.initialized = false;
54
+ }
55
+ toJSON() {
56
+ return {
57
+ name: this.name,
58
+ transform: this.transform.bind(this)
59
+ };
60
+ }
61
+ };
62
+
63
+ //#endregion
64
+ Object.defineProperty(exports, 'CompilerPluginRuntime', {
65
+ enumerable: true,
66
+ get: function () {
67
+ return CompilerPluginRuntime;
68
+ }
69
+ });
70
+ //# sourceMappingURL=CompilerPluginRuntime-zFCCw1kM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompilerPluginRuntime-zFCCw1kM.js","names":[],"sources":["../src/plugins/plugin-runtime/CompilerPluginRuntime.ts"],"sourcesContent":["import { CompilerPlugin, MaybeFalsey, TransformedResult } from '..';\n\nexport class CompilerPluginRuntime {\n public readonly name = 'CompilerPluginRuntime';\n private initialized = false;\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 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 plugin.activate?.(this);\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 plugin.deactivate?.(this);\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":";;AAEA,IAAa,wBAAb,MAAmC;CACjC,AAAgB,OAAO;CACvB,AAAQ,cAAc;CAEtB,AAAO,YAA6B,SAA2B;EAA3B;CAA4B;CAEhE,AAAO,aAAa;AAClB,SAAO,KAAK;CACd;CAEA,AAAO,UAAU;AACf,UAAQ,KAAK,QAAQ;CACvB;CAEA,MAAa,UACb,MACA,IAC8C;EAC5C,IAAI,MAAqB;AACzB,OAAK,MAAM,UAAU,KAAK,QACxB,KAAI;;GACF,MAAM,MAAsC,4BAAM,OAAO,+DAAP,+BAAmB;IACnE;IACA;GACD,EAAC;AAEF,QAAK,IAAK;AAEV,OAAI,IAAI,KACN,QAAO,IAAI;AAGb,OAAI,IAAI,IACN,OAAM,IAAI;EAEb,SAAQ,GAAQ;GACf,MAAM,MAAM,aAAa,QAAQ,IAAI,IAAI,MAAM;AAC/C,SAAM,IAAI,OACP,SAAS,OAAO,KAAK,wBAAwB,IAAI,QAAQ;EAE9D;AAGF,SAAO;GACL;GACA;EACD;CACH;CAEA,MAAa,OAAO;AAClB,MAAI,KAAK,YAAa;AAEtB,OAAK,MAAM,UAAU,KAAK,QACxB,KAAI;;AACF,8BAAM,OAAO,6DAAP,8BAAkB,KAAK;EAC9B,SAAQ,GAAQ;AACf,WAAQ,OACL,SAAS,OAAO,KAAK,kEAA2B,EAAG,UAAS,EAAE,EAChE;EACH;AAGF,OAAK,cAAc;CACrB;CAEA,MAAa,UAAU;AACrB,OAAK,KAAK,YAAa;AAEvB,OAAK,MAAM,UAAU,KAAK,QACxB,KAAI;;AACF,gCAAM,OAAO,iEAAP,gCAAoB,KAAK;EAChC,SAAQ,GAAQ;AACf,WAAQ,OACL,SAAS,OAAO,KAAK,oEAA6B,EAAG,UAAS,EAAE,EAClE;EACH;AAGF,OAAK,cAAc;CACrB;CAEA,AAAO,SAAS;AACd,SAAO;GACL,MAAM,KAAK;GACX,WAAW,KAAK,UAAU,KAAK,KAAK;EACrC;CACH;AACF"}
@@ -0,0 +1,30 @@
1
+ import { ILogger } from "./ILogger-BTMQuall.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-D3G0rGnV.d.ts.map