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.
- package/dist/ActionRow-CmTHbo2t.js +25 -0
- package/dist/ActionRow-CmTHbo2t.js.map +1 -0
- package/dist/ActionRow-D0wafJhZ.d.ts +16 -0
- package/dist/Button-Bl5nbwTS.d.ts +32 -0
- package/dist/ButtonKit-BSI7lCI0.d.ts +68 -0
- package/dist/ChannelSelectMenuKit-L15A2jpT.d.ts +51 -0
- package/dist/CommandKit-CDlCsGCx.d.ts +926 -0
- package/dist/CommandKit-DDrQtQns.js +3281 -0
- package/dist/CommandKit-DDrQtQns.js.map +1 -0
- package/dist/CommandKit.d.ts +33 -13
- package/dist/CommandKit.js +46 -16
- package/dist/CommandKitEventsChannel-B6LKgxmv.js +44 -0
- package/dist/CommandKitEventsChannel-B6LKgxmv.js.map +1 -0
- package/dist/CommandsRouter-BHaPno8o.js +127 -0
- package/dist/CommandsRouter-BHaPno8o.js.map +1 -0
- package/dist/CommandsRouter-C7X-eXE2.d.ts +67 -0
- package/dist/CompilerPlugin-XzuGixkC.js +32 -0
- package/dist/CompilerPlugin-XzuGixkC.js.map +1 -0
- package/dist/CompilerPluginRuntime-zFCCw1kM.js +70 -0
- package/dist/CompilerPluginRuntime-zFCCw1kM.js.map +1 -0
- package/dist/DefaultLogger-D3G0rGnV.d.ts +30 -0
- package/dist/EventInterceptor-D_oEWSnF.d.ts +84 -0
- package/dist/EventInterceptor-DtRINyTP.js +140 -0
- package/dist/EventInterceptor-DtRINyTP.js.map +1 -0
- package/dist/EventWorkerContext-C0e23GNY.d.ts +19 -0
- package/dist/EventWorkerContext-XZGSHn5F.js +45 -0
- package/dist/EventWorkerContext-XZGSHn5F.js.map +1 -0
- package/dist/EventsRouter-BacqK6z3.d.ts +90 -0
- package/dist/EventsRouter-CqnrlbjN.js +133 -0
- package/dist/EventsRouter-CqnrlbjN.js.map +1 -0
- package/dist/ILogger-BTMQuall.d.ts +11 -0
- package/dist/ILogger-DucYb0bG.js +0 -0
- package/dist/Logger-A3wjB7L1.d.ts +17 -0
- package/dist/MentionableSelectMenuKit-BiUSKUtZ.d.ts +51 -0
- package/dist/MessageCommandParser-B13Pkwo9.js +200 -0
- package/dist/MessageCommandParser-B13Pkwo9.js.map +1 -0
- package/dist/MessageCommandParser-tzroBwij.d.ts +62 -0
- package/dist/Modal-Cxm6cs5c.d.ts +58 -0
- package/dist/ModalKit-CKtQ8eXW.d.ts +66 -0
- package/dist/PluginCommon-DPqnQngK.js +48 -0
- package/dist/PluginCommon-DPqnQngK.js.map +1 -0
- package/dist/RoleSelectMenuKit-BSMKkru2.d.ts +51 -0
- package/dist/RuntimePlugin-CKsd83M3.js +130 -0
- package/dist/RuntimePlugin-CKsd83M3.js.map +1 -0
- package/dist/SelectMenu-b7jgrkjO.d.ts +36 -0
- package/dist/StringSelectMenuKit-B9FHTe48.d.ts +51 -0
- package/dist/UserSelectMenuKit-DiP0imyo.d.ts +51 -0
- package/dist/app/commands/AppCommandRunner.d.ts +33 -13
- package/dist/app/commands/AppCommandRunner.js +38 -3
- package/dist/app/commands/Context.d.ts +33 -13
- package/dist/app/commands/Context.js +40 -3
- package/dist/app/commands/MessageCommandParser.d.ts +2 -60
- package/dist/app/commands/MessageCommandParser.js +5 -2
- package/dist/app/commands/helpers.d.ts +2 -7
- package/dist/app/commands/helpers.js +4 -2
- package/dist/app/events/EventWorkerContext.d.ts +34 -28
- package/dist/app/events/EventWorkerContext.js +6 -2
- package/dist/app/handlers/AppCommandHandler.d.ts +33 -13
- package/dist/app/handlers/AppCommandHandler.js +38 -8
- package/dist/app/handlers/AppEventsHandler.d.ts +33 -13
- package/dist/app/handlers/AppEventsHandler.js +38 -3
- package/dist/app/index.d.ts +33 -15
- package/dist/app/index.js +51 -8
- package/dist/app/middleware/signals.d.ts +2 -18
- package/dist/app/middleware/signals.js +6 -2
- package/dist/app/register/CommandRegistrar.d.ts +33 -13
- package/dist/app/register/CommandRegistrar.js +38 -3
- package/dist/app/router/CommandsRouter.d.ts +2 -65
- package/dist/app/router/CommandsRouter.js +3 -2
- package/dist/app/router/EventsRouter.d.ts +2 -88
- package/dist/app/router/EventsRouter.js +3 -2
- package/dist/app/router/index.d.ts +4 -3
- package/dist/app/router/index.js +6 -2
- package/dist/app-CXCbKsPz.js +0 -0
- package/dist/app-process-uCX52YaE.js +48 -0
- package/dist/app-process-uCX52YaE.js.map +1 -0
- package/dist/build-Bkb5t3XA.js +122 -0
- package/dist/build-Bkb5t3XA.js.map +1 -0
- package/dist/chunk-nOFOJqeH.js +30 -0
- package/dist/cli/app-process.d.ts +5 -3
- package/dist/cli/app-process.js +8 -3
- package/dist/cli/build.d.ts +46 -21
- package/dist/cli/build.js +40 -48
- package/dist/cli/common.d.ts +39 -19
- package/dist/cli/common.js +13 -10
- package/dist/cli/development.d.ts +3 -1
- package/dist/cli/development.js +185 -50
- package/dist/cli/development.js.map +1 -1
- package/dist/cli/env.d.ts +7 -5
- package/dist/cli/env.js +9 -2
- package/dist/cli/generators.d.ts +3 -1
- package/dist/cli/generators.js +64 -15
- package/dist/cli/generators.js.map +1 -1
- package/dist/cli/information.d.ts +3 -1
- package/dist/cli/information.js +110 -5
- package/dist/cli/information.js.map +1 -1
- package/dist/cli/init.d.ts +2 -10
- package/dist/cli/init.js +4 -99
- package/dist/cli/parse-env.d.ts +3 -1
- package/dist/cli/parse-env.js +53 -1
- package/dist/cli/parse-env.js.map +1 -1
- package/dist/cli/production.d.ts +5 -3
- package/dist/cli/production.js +68 -46
- package/dist/cli/production.js.map +1 -1
- package/dist/cli/type-checker.d.ts +3 -1
- package/dist/cli/type-checker.js +7 -5
- package/dist/cli/utils.d.ts +4 -2
- package/dist/cli/utils.js +3 -2
- package/dist/colors-Cd4Oz-r-.js +14 -0
- package/dist/colors-Cd4Oz-r-.js.map +1 -0
- package/dist/common-CcfjYnPG.js +0 -0
- package/dist/common-CeO-vn8Y.js +14 -0
- package/dist/common-CeO-vn8Y.js.map +1 -0
- package/dist/common-DirpDCa6.js +182 -0
- package/dist/common-DirpDCa6.js.map +1 -0
- package/dist/common-pvPJVTfe.d.ts +25 -0
- package/dist/components/common/EventInterceptor.d.ts +2 -82
- package/dist/components/common/EventInterceptor.js +3 -2
- package/dist/components/common/element.d.ts +5 -29
- package/dist/components/common/element.js +10 -2
- package/dist/components/common/types.d.ts +2 -3
- package/dist/components/common/types.js +1 -2
- package/dist/components/index.d.ts +24 -22
- package/dist/components/index.js +72 -16
- package/dist/components/v1/action-row/ActionRow.d.ts +6 -18
- package/dist/components/v1/action-row/ActionRow.js +3 -2
- package/dist/components/v1/button/Button.d.ts +7 -31
- package/dist/components/v1/button/Button.js +38 -16
- package/dist/components/v1/button/ButtonKit.d.ts +3 -66
- package/dist/components/v1/button/ButtonKit.js +38 -16
- package/dist/components/v1/modal/Modal.d.ts +7 -57
- package/dist/components/v1/modal/Modal.js +41 -16
- package/dist/components/v1/modal/ModalKit.d.ts +3 -64
- package/dist/components/v1/modal/ModalKit.js +38 -16
- package/dist/components/v1/select-menu/ChannelSelectMenuKit.d.ts +4 -49
- package/dist/components/v1/select-menu/ChannelSelectMenuKit.js +38 -16
- package/dist/components/v1/select-menu/MentionableSelectMenuKit.d.ts +4 -49
- package/dist/components/v1/select-menu/MentionableSelectMenuKit.js +38 -16
- package/dist/components/v1/select-menu/RoleSelectMenuKit.d.ts +4 -49
- package/dist/components/v1/select-menu/RoleSelectMenuKit.js +38 -16
- package/dist/components/v1/select-menu/SelectMenu.d.ts +10 -40
- package/dist/components/v1/select-menu/SelectMenu.js +43 -16
- package/dist/components/v1/select-menu/StringSelectMenuKit.d.ts +4 -49
- package/dist/components/v1/select-menu/StringSelectMenuKit.js +38 -16
- package/dist/components/v1/select-menu/UserSelectMenuKit.d.ts +4 -49
- package/dist/components/v1/select-menu/UserSelectMenuKit.js +38 -16
- package/dist/components/v1/select-menu/common.d.ts +3 -23
- package/dist/components/v1/select-menu/common.js +1 -2
- package/dist/components/v2/common.d.ts +5 -3
- package/dist/components/v2/common.js +3 -2
- package/dist/components/v2/container.d.ts +2 -8
- package/dist/components/v2/container.js +4 -2
- package/dist/components/v2/file.d.ts +2 -8
- package/dist/components/v2/file.js +3 -2
- package/dist/components/v2/index.d.ts +8 -7
- package/dist/components/v2/index.js +17 -2
- package/dist/components/v2/media-gallery.d.ts +2 -15
- package/dist/components/v2/media-gallery.js +5 -2
- package/dist/components/v2/section.d.ts +2 -16
- package/dist/components/v2/section.js +5 -2
- package/dist/components/v2/separator.d.ts +2 -7
- package/dist/components/v2/separator.js +3 -2
- package/dist/components/v2/text-display.d.ts +2 -10
- package/dist/components/v2/text-display.js +3 -2
- package/dist/config/config.d.ts +36 -28
- package/dist/config/config.js +39 -3
- package/dist/config/default.d.ts +37 -17
- package/dist/config/default.js +38 -3
- package/dist/config/loader.d.ts +37 -17
- package/dist/config/loader.js +39 -11
- package/dist/config/types.d.ts +34 -83
- package/dist/config/types.js +0 -2
- package/dist/config/utils.d.ts +35 -26
- package/dist/config/utils.js +15 -1
- package/dist/config/utils.js.map +1 -1
- package/dist/config-Dyb-zl9w.d.ts +17 -0
- package/dist/constants-Ce6w4OFe.d.ts +17 -0
- package/dist/constants-DOPSzXI0.js +47 -0
- package/dist/constants-DOPSzXI0.js.map +1 -0
- package/dist/container-CpuiLsZM.js +33 -0
- package/dist/container-CpuiLsZM.js.map +1 -0
- package/dist/container-CwEATQy2.d.ts +10 -0
- package/dist/context/async-context.d.ts +33 -13
- package/dist/context/async-context.js +44 -16
- package/dist/context/environment.d.ts +33 -13
- package/dist/context/environment.js +41 -3
- package/dist/element-D_nyVwgB.d.ts +30 -0
- package/dist/element-hdSqnIpC.js +62 -0
- package/dist/element-hdSqnIpC.js.map +1 -0
- package/dist/env-DKFSgEcR.js +68 -0
- package/dist/env-DKFSgEcR.js.map +1 -0
- package/dist/error-codes-C_UO39jz.js +53 -0
- package/dist/error-codes-C_UO39jz.js.map +1 -0
- package/dist/events/CommandKitEventsChannel.d.ts +33 -13
- package/dist/events/CommandKitEventsChannel.js +3 -2
- package/dist/feature-flags-BJp6kYmi.js +85 -0
- package/dist/feature-flags-BJp6kYmi.js.map +1 -0
- package/dist/file-BdyYwkaI.d.ts +10 -0
- package/dist/file-DE69SSOP.js +18 -0
- package/dist/file-DE69SSOP.js.map +1 -0
- package/dist/flags/feature-flags.d.ts +33 -13
- package/dist/flags/feature-flags.js +40 -16
- package/dist/flags/store.d.ts +33 -13
- package/dist/flags/store.js +3 -2
- package/dist/helpers-CswC9gKF.js +25 -0
- package/dist/helpers-CswC9gKF.js.map +1 -0
- package/dist/helpers-DAmE106r.d.ts +9 -0
- package/dist/index-CUPkUUOR.d.ts +1 -0
- package/dist/index-Dw5cCt-A.d.ts +1 -0
- package/dist/index-E7Wvm5uX.d.ts +1 -0
- package/dist/index.d.ts +43 -51
- package/dist/index.js +147 -102
- package/dist/index.js.map +1 -1
- package/dist/init--p1nl1NO.d.ts +13 -0
- package/dist/init-D2me-V0n.js +67 -0
- package/dist/init-D2me-V0n.js.map +1 -0
- package/dist/logger/DefaultLogger.d.ts +3 -28
- package/dist/logger/DefaultLogger.js +38 -3
- package/dist/logger/ILogger.d.ts +2 -9
- package/dist/logger/ILogger.js +1 -2
- package/dist/logger/Logger.d.ts +3 -15
- package/dist/logger/Logger.js +39 -3
- package/dist/media-gallery-DCu02VXc.d.ts +17 -0
- package/dist/media-gallery-nUEHqKVF.js +36 -0
- package/dist/media-gallery-nUEHqKVF.js.map +1 -0
- package/dist/plugins/CompilerPlugin.d.ts +33 -13
- package/dist/plugins/CompilerPlugin.js +5 -2
- package/dist/plugins/PluginCommon.d.ts +33 -13
- package/dist/plugins/PluginCommon.js +5 -2
- package/dist/plugins/RuntimePlugin.d.ts +33 -13
- package/dist/plugins/RuntimePlugin.js +5 -2
- package/dist/plugins/index.d.ts +33 -15
- package/dist/plugins/index.js +44 -3
- package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.d.ts +33 -13
- package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js +38 -3
- package/dist/plugins/plugin-runtime/CompilerPluginRuntime.d.ts +33 -13
- package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js +3 -3
- package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.d.ts +33 -26
- package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js +38 -3
- package/dist/plugins/plugin-runtime/builtin/MacroPlugin.d.ts +40 -19
- package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js +38 -3
- package/dist/plugins/plugin-runtime/runtime.d.ts +33 -13
- package/dist/plugins/plugin-runtime/runtime.js +1 -2
- package/dist/plugins/plugin-runtime/types.d.ts +2 -72
- package/dist/plugins/plugin-runtime/types.js +1 -2
- package/dist/plugins/types.d.ts +33 -13
- package/dist/plugins/types.js +1 -2
- package/dist/resolve-file-url-pO9_rLft.js +23 -0
- package/dist/resolve-file-url-pO9_rLft.js.map +1 -0
- package/dist/router-Dn35v30f.js +0 -0
- package/dist/runtime-ByJtSXs_.js +0 -0
- package/dist/section-D6t7tyEZ.js +40 -0
- package/dist/section-D6t7tyEZ.js.map +1 -0
- package/dist/section-fktaECHL.d.ts +18 -0
- package/dist/separator-CuesaLrC.d.ts +8 -0
- package/dist/separator-DYAFK-Jj.js +17 -0
- package/dist/separator-DYAFK-Jj.js.map +1 -0
- package/dist/signals-Bp0bzjE6.js +46 -0
- package/dist/signals-Bp0bzjE6.js.map +1 -0
- package/dist/signals-DUoWkeZ7.d.ts +20 -0
- package/dist/store-Ci6ib2C9.js +14 -0
- package/dist/store-Ci6ib2C9.js.map +1 -0
- package/dist/text-display-DNMwmGHJ.d.ts +12 -0
- package/dist/text-display-Dy6JHB5X.js +19 -0
- package/dist/text-display-Dy6JHB5X.js.map +1 -0
- package/dist/type-checker-FOYNSGX0.js +84 -0
- package/dist/type-checker-FOYNSGX0.js.map +1 -0
- package/dist/types-0ADL_reY.d.ts +73 -0
- package/dist/types-B5VPP9ig.js +0 -0
- package/dist/types-BDwNROY2.d.ts +74 -0
- package/dist/types-Bq0EWaM3.js +0 -0
- package/dist/types-CJ-XvOFN.d.ts +5 -0
- package/dist/types-Cdh4uaFR.js +0 -0
- package/dist/types-package-DRhFn59I.js +66 -0
- package/dist/types-package-DRhFn59I.js.map +1 -0
- package/dist/types.d.ts +33 -13
- package/dist/types.js +0 -2
- package/dist/utilities-5Jw5BdE1.d.ts +42 -0
- package/dist/utils/clone.d.ts +3 -1
- package/dist/utils/clone.js +8 -1
- package/dist/utils/clone.js.map +1 -1
- package/dist/utils/colors.d.ts +5 -3
- package/dist/utils/colors.js +4 -2
- package/dist/utils/constants.d.ts +2 -15
- package/dist/utils/constants.js +7 -2
- package/dist/utils/dev-hooks.d.ts +33 -13
- package/dist/utils/dev-hooks.js +38 -3
- package/dist/utils/error-codes.d.ts +9 -7
- package/dist/utils/error-codes.js +6 -2
- package/dist/utils/get-paths.d.ts +3 -1
- package/dist/utils/get-paths.js +33 -1
- package/dist/utils/get-paths.js.map +1 -1
- package/dist/utils/resolve-file-url.d.ts +3 -1
- package/dist/utils/resolve-file-url.js +3 -2
- package/dist/utils/types-package.d.ts +3 -1
- package/dist/utils/types-package.js +5 -14
- package/dist/utils/utilities.d.ts +2 -40
- package/dist/utils/utilities.js +44 -3
- package/dist/utils/warn-unstable.d.ts +3 -1
- package/dist/utils/warn-unstable.js +4 -2
- package/dist/utils-C0V7zD7R.d.ts +10 -0
- package/dist/utils-IYtoeTur.js +19 -0
- package/dist/utils-IYtoeTur.js.map +1 -0
- package/dist/v2-DofkPKHs.js +0 -0
- package/dist/version-DnRxh8U8.js +15 -0
- package/dist/version-DnRxh8U8.js.map +1 -0
- package/dist/version-SMsmj3M1.d.ts +8 -0
- package/dist/version.d.ts +2 -6
- package/dist/version.js +3 -2
- package/dist/warn-unstable-V20WCBDd.js +26 -0
- package/dist/warn-unstable-V20WCBDd.js.map +1 -0
- package/package.json +5 -4
- package/dist/CommandKit-jZCy9fZX.d.ts +0 -914
- package/dist/CommandKit.js.map +0 -1
- package/dist/app/commands/AppCommandRunner.js.map +0 -1
- package/dist/app/commands/Context.js.map +0 -1
- package/dist/app/commands/MessageCommandParser.js.map +0 -1
- package/dist/app/commands/helpers.js.map +0 -1
- package/dist/app/events/EventWorkerContext.js.map +0 -1
- package/dist/app/handlers/AppCommandHandler.js.map +0 -1
- package/dist/app/handlers/AppEventsHandler.js.map +0 -1
- package/dist/app/index.js.map +0 -1
- package/dist/app/middleware/signals.js.map +0 -1
- package/dist/app/register/CommandRegistrar.js.map +0 -1
- package/dist/app/router/CommandsRouter.js.map +0 -1
- package/dist/app/router/EventsRouter.js.map +0 -1
- package/dist/app/router/index.js.map +0 -1
- package/dist/cli/app-process.js.map +0 -1
- package/dist/cli/build.js.map +0 -1
- package/dist/cli/common.js.map +0 -1
- package/dist/cli/env.js.map +0 -1
- package/dist/cli/init.js.map +0 -1
- package/dist/cli/type-checker.js.map +0 -1
- package/dist/cli/utils.js.map +0 -1
- package/dist/components/common/EventInterceptor.js.map +0 -1
- package/dist/components/common/element.js.map +0 -1
- package/dist/components/common/types.js.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/components/v1/action-row/ActionRow.js.map +0 -1
- package/dist/components/v1/button/Button.js.map +0 -1
- package/dist/components/v1/button/ButtonKit.js.map +0 -1
- package/dist/components/v1/modal/Modal.js.map +0 -1
- package/dist/components/v1/modal/ModalKit.js.map +0 -1
- package/dist/components/v1/select-menu/ChannelSelectMenuKit.js.map +0 -1
- package/dist/components/v1/select-menu/MentionableSelectMenuKit.js.map +0 -1
- package/dist/components/v1/select-menu/RoleSelectMenuKit.js.map +0 -1
- package/dist/components/v1/select-menu/SelectMenu.js.map +0 -1
- package/dist/components/v1/select-menu/StringSelectMenuKit.js.map +0 -1
- package/dist/components/v1/select-menu/UserSelectMenuKit.js.map +0 -1
- package/dist/components/v1/select-menu/common.js.map +0 -1
- package/dist/components/v2/common.js.map +0 -1
- package/dist/components/v2/container.js.map +0 -1
- package/dist/components/v2/file.js.map +0 -1
- package/dist/components/v2/index.js.map +0 -1
- package/dist/components/v2/media-gallery.js.map +0 -1
- package/dist/components/v2/section.js.map +0 -1
- package/dist/components/v2/separator.js.map +0 -1
- package/dist/components/v2/text-display.js.map +0 -1
- package/dist/config/config.js.map +0 -1
- package/dist/config/default.js.map +0 -1
- package/dist/config/loader.js.map +0 -1
- package/dist/config/types.js.map +0 -1
- package/dist/context/async-context.js.map +0 -1
- package/dist/context/environment.js.map +0 -1
- package/dist/events/CommandKitEventsChannel.js.map +0 -1
- package/dist/flags/feature-flags.js.map +0 -1
- package/dist/flags/store.js.map +0 -1
- package/dist/logger/DefaultLogger.js.map +0 -1
- package/dist/logger/ILogger.js.map +0 -1
- package/dist/logger/Logger.js.map +0 -1
- package/dist/plugins/CompilerPlugin.js.map +0 -1
- package/dist/plugins/PluginCommon.js.map +0 -1
- package/dist/plugins/RuntimePlugin.js.map +0 -1
- package/dist/plugins/index.js.map +0 -1
- package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js.map +0 -1
- package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js.map +0 -1
- package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js.map +0 -1
- package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js.map +0 -1
- package/dist/plugins/plugin-runtime/runtime.js.map +0 -1
- package/dist/plugins/plugin-runtime/types.js.map +0 -1
- package/dist/plugins/types.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils/colors.js.map +0 -1
- package/dist/utils/constants.js.map +0 -1
- package/dist/utils/dev-hooks.js.map +0 -1
- package/dist/utils/error-codes.js.map +0 -1
- package/dist/utils/resolve-file-url.js.map +0 -1
- package/dist/utils/types-package.js.map +0 -1
- package/dist/utils/utilities.js.map +0 -1
- package/dist/utils/warn-unstable.js.map +0 -1
- package/dist/version.js.map +0 -1
package/dist/CommandKit.js
CHANGED
|
@@ -1,16 +1,46 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
16
|
-
|
|
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
|