commandkit 1.0.0-dev.20250530125137 → 1.0.0-dev.20250530135418
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/cache.cjs +13 -0
- package/cache.d.ts +1 -0
- package/config.cjs +1 -1
- package/dist/{CommandKit-DHRwL4K_.d.ts → CommandKit-DDSUNOAe.d.ts} +11 -4
- package/dist/{CommandKit-DDrQtQns.js → CommandKit-L7X8fflj.js} +11 -11
- package/dist/{CommandKit-DDrQtQns.js.map → CommandKit-L7X8fflj.js.map} +1 -1
- package/dist/CommandKit.d.ts +1 -2
- package/dist/CommandKit.js +14 -15
- package/dist/{CommandKitEventsChannel-B6LKgxmv.js → CommandKitEventsChannel-BnSPcFdq.js} +1 -1
- package/dist/{CommandKitEventsChannel-B6LKgxmv.js.map → CommandKitEventsChannel-BnSPcFdq.js.map} +1 -1
- package/dist/{CommandsRouter-BHaPno8o.js → CommandsRouter-B91EHi6O.js} +1 -1
- package/dist/{CommandsRouter-BHaPno8o.js.map → CommandsRouter-B91EHi6O.js.map} +1 -1
- package/dist/CompilerPlugin-XzuGixkC.js.map +1 -1
- package/dist/CompilerPluginRuntime-BWLDMYQl.js +113 -0
- package/dist/CompilerPluginRuntime-BWLDMYQl.js.map +1 -0
- package/dist/{DefaultLogger-D3G0rGnV.d.ts → DefaultLogger-CcW-Fuq5.d.ts} +2 -2
- package/dist/{EventWorkerContext-XZGSHn5F.js → EventWorkerContext-BAKiTqJz.js} +1 -1
- package/dist/{EventWorkerContext-XZGSHn5F.js.map → EventWorkerContext-BAKiTqJz.js.map} +1 -1
- package/dist/{EventWorkerContext-Bt96B-EK.d.ts → EventWorkerContext-CjU5wt-a.d.ts} +2 -2
- package/dist/{EventsRouter-CqnrlbjN.js → EventsRouter-C_J0M3uO.js} +1 -1
- package/dist/{EventsRouter-CqnrlbjN.js.map → EventsRouter-C_J0M3uO.js.map} +1 -1
- package/dist/{ILogger-BTMQuall.d.ts → ILogger-kqwb2kUu.d.ts} +1 -1
- package/dist/{Logger-A3wjB7L1.d.ts → Logger-B4B_URL-.d.ts} +2 -2
- package/dist/{MessageCommandParser-B13Pkwo9.js → MessageCommandParser-D02-wpZN.js} +1 -1
- package/dist/{MessageCommandParser-B13Pkwo9.js.map → MessageCommandParser-D02-wpZN.js.map} +1 -1
- package/dist/app/commands/AppCommandRunner.d.ts +1 -2
- package/dist/app/commands/AppCommandRunner.js +14 -15
- package/dist/app/commands/Context.d.ts +1 -2
- package/dist/app/commands/Context.js +14 -15
- package/dist/app/commands/MessageCommandParser.js +1 -1
- package/dist/app/commands/helpers.js +1 -1
- package/dist/app/events/EventWorkerContext.d.ts +2 -3
- package/dist/app/events/EventWorkerContext.js +1 -1
- package/dist/app/handlers/AppCommandHandler.d.ts +1 -2
- package/dist/app/handlers/AppCommandHandler.js +14 -15
- package/dist/app/handlers/AppEventsHandler.d.ts +1 -2
- package/dist/app/handlers/AppEventsHandler.js +14 -15
- package/dist/app/index.d.ts +1 -2
- package/dist/app/index.js +16 -17
- package/dist/app/middleware/signals.js +1 -1
- package/dist/app/register/CommandRegistrar.d.ts +1 -2
- package/dist/app/register/CommandRegistrar.js +14 -15
- package/dist/app/router/CommandsRouter.js +1 -1
- package/dist/app/router/EventsRouter.js +1 -1
- package/dist/app/router/index.js +3 -3
- package/dist/{app-process-uCX52YaE.js → app-process-juzsCZp9.js} +3 -3
- package/dist/{app-process-uCX52YaE.js.map → app-process-juzsCZp9.js.map} +1 -1
- package/dist/{build-Bkb5t3XA.js → build-DSm40c6Y.js} +6 -6
- package/dist/{build-Bkb5t3XA.js.map → build-DSm40c6Y.js.map} +1 -1
- package/dist/cli/app-process.d.ts +2 -2
- package/dist/cli/app-process.js +4 -4
- package/dist/cli/build.d.ts +1 -2
- package/dist/cli/build.js +17 -18
- package/dist/cli/common.d.ts +5 -6
- package/dist/cli/common.js +2 -2
- package/dist/cli/development.js +18 -19
- package/dist/cli/development.js.map +1 -1
- package/dist/cli/env.js +1 -1
- package/dist/cli/generators.js +2 -2
- package/dist/cli/information.js +8 -8
- package/dist/cli/information.js.map +1 -1
- package/dist/cli/init.d.ts +1 -1
- package/dist/cli/init.js +35 -2
- package/dist/cli/production.js +19 -20
- package/dist/cli/production.js.map +1 -1
- package/dist/cli/type-checker.js +3 -3
- package/dist/cli/utils.js +1 -1
- package/dist/{common-DirpDCa6.js → common-CtMBxAf-.js} +2 -2
- package/dist/{common-DirpDCa6.js.map → common-CtMBxAf-.js.map} +1 -1
- package/dist/components/index.js +14 -15
- package/dist/components/v1/button/Button.js +14 -15
- package/dist/components/v1/button/ButtonKit.js +14 -15
- package/dist/components/v1/modal/Modal.js +14 -15
- package/dist/components/v1/modal/ModalKit.js +14 -15
- package/dist/components/v1/select-menu/ChannelSelectMenuKit.js +14 -15
- package/dist/components/v1/select-menu/MentionableSelectMenuKit.js +14 -15
- package/dist/components/v1/select-menu/RoleSelectMenuKit.js +14 -15
- package/dist/components/v1/select-menu/SelectMenu.js +14 -15
- package/dist/components/v1/select-menu/StringSelectMenuKit.js +14 -15
- package/dist/components/v1/select-menu/UserSelectMenuKit.js +14 -15
- package/dist/config/config.d.ts +4 -5
- package/dist/config/config.js +14 -15
- package/dist/config/default.d.ts +3 -4
- package/dist/config/default.js +14 -15
- package/dist/config/loader.d.ts +3 -4
- package/dist/config/loader.js +14 -15
- package/dist/config/types.d.ts +2 -3
- package/dist/config/utils.d.ts +3 -4
- package/dist/{config-elWHycDV.d.ts → config-LPxTebft.d.ts} +3 -3
- package/dist/context/async-context.d.ts +1 -2
- package/dist/context/async-context.js +14 -15
- package/dist/context/environment.d.ts +1 -2
- package/dist/context/environment.js +14 -15
- package/dist/{env-DKFSgEcR.js → env-DXL8PZiG.js} +1 -1
- package/dist/{env-DKFSgEcR.js.map → env-DXL8PZiG.js.map} +1 -1
- package/dist/events/CommandKitEventsChannel.d.ts +1 -2
- package/dist/events/CommandKitEventsChannel.js +1 -1
- package/dist/{feature-flags-BJp6kYmi.js → feature-flags-BtOkZJxW.js} +3 -3
- package/dist/{feature-flags-BJp6kYmi.js.map → feature-flags-BtOkZJxW.js.map} +1 -1
- package/dist/flags/feature-flags.d.ts +1 -2
- package/dist/flags/feature-flags.js +15 -16
- package/dist/flags/store.d.ts +1 -2
- package/dist/flags/store.js +1 -1
- package/dist/{helpers-CswC9gKF.js → helpers-blGYXnUH.js} +1 -1
- package/dist/{helpers-CswC9gKF.js.map → helpers-blGYXnUH.js.map} +1 -1
- package/dist/index.d.ts +12 -13
- package/dist/index.js +20 -21
- package/dist/index.js.map +1 -1
- package/dist/{init-D2me-V0n.js → init-CakfOuYm.js} +38 -6
- package/dist/init-CakfOuYm.js.map +1 -0
- package/dist/{init--p1nl1NO.d.ts → init-_e3eZTUb.d.ts} +1 -1
- package/dist/logger/DefaultLogger.d.ts +2 -2
- package/dist/logger/DefaultLogger.js +14 -15
- package/dist/logger/ILogger.d.ts +1 -1
- package/dist/logger/ILogger.js +1 -1
- package/dist/logger/Logger.d.ts +2 -2
- package/dist/logger/Logger.js +14 -15
- package/dist/plugins/CompilerPlugin.d.ts +1 -2
- package/dist/plugins/PluginCommon.d.ts +1 -2
- package/dist/plugins/RuntimePlugin.d.ts +1 -2
- package/dist/plugins/index.d.ts +2 -3
- package/dist/plugins/index.js +14 -15
- package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.d.ts +1 -2
- package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js +14 -15
- package/dist/plugins/plugin-runtime/CompilerPluginRuntime.d.ts +1 -2
- package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js +1 -1
- package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.d.ts +1 -2
- package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js +14 -15
- package/dist/plugins/plugin-runtime/builtin/MacroPlugin.d.ts +1 -2
- package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js +14 -15
- package/dist/plugins/plugin-runtime/runtime.d.ts +1 -2
- package/dist/plugins/plugin-runtime/runtime.js +1 -1
- package/dist/plugins/types.d.ts +2 -3
- package/dist/{resolve-file-url-pO9_rLft.js → resolve-file-url-ifwdwqmq.js} +1 -1
- package/dist/{resolve-file-url-pO9_rLft.js.map → resolve-file-url-ifwdwqmq.js.map} +1 -1
- package/dist/{signals-Bp0bzjE6.js → signals-scJdEbly.js} +1 -1
- package/dist/{signals-Bp0bzjE6.js.map → signals-scJdEbly.js.map} +1 -1
- package/dist/{store-Ci6ib2C9.js → store-B9bo6On8.js} +1 -1
- package/dist/{store-Ci6ib2C9.js.map → store-B9bo6On8.js.map} +1 -1
- package/dist/{type-checker-FOYNSGX0.js → type-checker-DodpF2I2.js} +2 -2
- package/dist/{type-checker-FOYNSGX0.js.map → type-checker-DodpF2I2.js.map} +1 -1
- package/dist/{types-package-DRhFn59I.js → types-package-BrES1tNq.js} +1 -1
- package/dist/{types-package-DRhFn59I.js.map → types-package-BrES1tNq.js.map} +1 -1
- package/dist/{types-CL3C7RSa.d.ts → types-w2bWHUve.d.ts} +2 -2
- package/dist/types.d.ts +1 -2
- package/dist/{utilities-5Jw5BdE1.d.ts → utilities-oDL3vjhR.d.ts} +1 -1
- package/dist/utils/colors.d.ts +2 -2
- package/dist/utils/dev-hooks.d.ts +1 -2
- package/dist/utils/dev-hooks.js +14 -15
- package/dist/utils/resolve-file-url.js +1 -1
- package/dist/utils/types-package.js +1 -1
- package/dist/utils/utilities.d.ts +1 -1
- package/dist/utils/utilities.js +14 -15
- package/dist/{utils-IYtoeTur.js → utils-CU2bkxji.js} +1 -1
- package/dist/{utils-IYtoeTur.js.map → utils-CU2bkxji.js.map} +1 -1
- package/dist/{utils-1_rHMeek.d.ts → utils-Dprjd7Oz.d.ts} +2 -2
- package/dist/{version-DRFi8ntI.js → version-BDY5RKTk.js} +2 -2
- package/dist/{version-DRFi8ntI.js.map → version-BDY5RKTk.js.map} +1 -1
- package/dist/{version-SMsmj3M1.d.ts → version-DggMfP_1.d.ts} +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/events.cjs +6 -0
- package/events.d.ts +7 -0
- package/flag.cjs +3 -3
- package/hooks.cjs +36 -26
- package/i18n.cjs +6 -0
- package/i18n.d.ts +1 -0
- package/logger.cjs +11 -0
- package/logger.d.ts +8 -0
- package/package.json +31 -3
- package/plugin.cjs +14 -7
- package/dist/CompilerPluginRuntime-zFCCw1kM.js +0 -70
- package/dist/CompilerPluginRuntime-zFCCw1kM.js.map +0 -1
- package/dist/cli/parse-env.d.ts +0 -5
- package/dist/cli/parse-env.js +0 -54
- package/dist/cli/parse-env.js.map +0 -1
- package/dist/init-D2me-V0n.js.map +0 -1
- package/dist/plugins/plugin-runtime/types.d.ts +0 -2
- package/dist/plugins/plugin-runtime/types.js +0 -1
- package/dist/types-BDwNROY2.d.ts +0 -74
- package/dist/types-Cdh4uaFR.js +0 -0
- /package/dist/{ILogger-DucYb0bG.js → ILogger-dQ7Y9X1f.js} +0 -0
- /package/dist/{app-CXCbKsPz.js → app-HN1cVg8J.js} +0 -0
- /package/dist/{router-Dn35v30f.js → router-DHnFRADH.js} +0 -0
- /package/dist/{runtime-ByJtSXs_.js → runtime-D0JnztkU.js} +0 -0
package/dist/CommandKit.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BootstrapFunction, CommandKit, CommandKitConfiguration, commandkit, onApplicationBootstrap, onBootstrap } from "./CommandKit-
|
|
1
|
+
import { BootstrapFunction, CommandKit, CommandKitConfiguration, commandkit, onApplicationBootstrap, onBootstrap } from "./CommandKit-DDSUNOAe.js";
|
|
2
2
|
import "./EventInterceptor-D_oEWSnF.js";
|
|
3
3
|
import "./ButtonKit-BSI7lCI0.js";
|
|
4
4
|
import "./ModalKit-CKtQ8eXW.js";
|
|
@@ -29,5 +29,4 @@ import "./CommandsRouter-C7X-eXE2.js";
|
|
|
29
29
|
import "./EventsRouter-BacqK6z3.js";
|
|
30
30
|
import "./index-CUPkUUOR.js";
|
|
31
31
|
import "./constants-Ce6w4OFe.js";
|
|
32
|
-
import "./types-BDwNROY2.js";
|
|
33
32
|
export { BootstrapFunction, CommandKit, CommandKitConfiguration, commandkit, onApplicationBootstrap, onBootstrap };
|
package/dist/CommandKit.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require('./colors-Cd4Oz-r-.js');
|
|
2
2
|
require('./ActionRow-CmTHbo2t.js');
|
|
3
3
|
require('./error-codes-C_UO39jz.js');
|
|
4
|
-
const require_CommandKit = require('./CommandKit-
|
|
4
|
+
const require_CommandKit = require('./CommandKit-L7X8fflj.js');
|
|
5
5
|
require('./common-CcfjYnPG.js');
|
|
6
6
|
require('./common-CeO-vn8Y.js');
|
|
7
7
|
require('./container-CpuiLsZM.js');
|
|
@@ -20,20 +20,19 @@ require('./PluginCommon-DPqnQngK.js');
|
|
|
20
20
|
require('./CompilerPlugin-XzuGixkC.js');
|
|
21
21
|
require('./RuntimePlugin-CKsd83M3.js');
|
|
22
22
|
require('./types-Bq0EWaM3.js');
|
|
23
|
-
require('./CompilerPluginRuntime-
|
|
24
|
-
require('./
|
|
25
|
-
require('./
|
|
26
|
-
require('./
|
|
27
|
-
require('./
|
|
28
|
-
require('./
|
|
29
|
-
require('./
|
|
30
|
-
require('./
|
|
31
|
-
require('./
|
|
32
|
-
require('./
|
|
33
|
-
require('./
|
|
34
|
-
require('./
|
|
35
|
-
require('./
|
|
36
|
-
require('./store-Ci6ib2C9.js');
|
|
23
|
+
require('./CompilerPluginRuntime-BWLDMYQl.js');
|
|
24
|
+
require('./runtime-D0JnztkU.js');
|
|
25
|
+
require('./EventWorkerContext-BAKiTqJz.js');
|
|
26
|
+
require('./resolve-file-url-ifwdwqmq.js');
|
|
27
|
+
require('./MessageCommandParser-D02-wpZN.js');
|
|
28
|
+
require('./signals-scJdEbly.js');
|
|
29
|
+
require('./types-package-BrES1tNq.js');
|
|
30
|
+
require('./CommandsRouter-B91EHi6O.js');
|
|
31
|
+
require('./EventsRouter-C_J0M3uO.js');
|
|
32
|
+
require('./router-DHnFRADH.js');
|
|
33
|
+
require('./common-CtMBxAf-.js');
|
|
34
|
+
require('./CommandKitEventsChannel-BnSPcFdq.js');
|
|
35
|
+
require('./store-B9bo6On8.js');
|
|
37
36
|
|
|
38
37
|
exports.CommandKit = require_CommandKit.CommandKit;
|
|
39
38
|
Object.defineProperty(exports, 'commandkit', {
|
package/dist/{CommandKitEventsChannel-B6LKgxmv.js.map → CommandKitEventsChannel-BnSPcFdq.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandKitEventsChannel-
|
|
1
|
+
{"version":3,"file":"CommandKitEventsChannel-BnSPcFdq.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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandsRouter-
|
|
1
|
+
{"version":3,"file":"CommandsRouter-B91EHi6O.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":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompilerPlugin-XzuGixkC.js","names":[],"sources":["../src/plugins/CompilerPlugin.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"CompilerPlugin-XzuGixkC.js","names":[],"sources":["../src/plugins/CompilerPlugin.ts"],"sourcesContent":["import {\n isPlugin,\n PluginCommon,\n PluginOptions,\n PluginType,\n} from './PluginCommon';\nimport { MaybeFalsey } from './types';\nimport { CompilerPluginRuntime } from './plugin-runtime/CompilerPluginRuntime';\n\nexport interface PluginTransformParameters {\n code: string;\n id: string;\n}\n\nexport interface TransformedResult {\n code?: string;\n map?: string | null;\n}\n\nexport abstract class CompilerPlugin<\n T extends PluginOptions = PluginOptions,\n> extends PluginCommon<T, CompilerPluginRuntime> {\n public readonly type = PluginType.Compiler;\n\n /**\n * Called when transformation is requested to this plugin\n * @param params The parameters for the transformation\n * @returns The transformed result\n */\n public async transform(\n params: PluginTransformParameters,\n ): Promise<MaybeFalsey<TransformedResult>> {\n return null;\n }\n}\n\nexport function isCompilerPlugin(plugin: unknown): plugin is CompilerPlugin {\n return isPlugin(plugin) && plugin.type === PluginType.Compiler;\n}\n"],"mappings":";;;AAmBA,IAAsB,iBAAtB,cAEA,kCAAuC;CACrC,AAAgB,OAAO,gCAAW;;;;;;CAOlC,MAAa,UACb,QAC0C;AACxC,SAAO;CACT;AACF;AAEA,SAAgB,iBAAiB,QAA2C;AAC1E,QAAO,8BAAS,OAAO,IAAI,OAAO,SAAS,gCAAW;AACxD"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-nOFOJqeH.js');
|
|
2
|
+
const node_async_hooks = require_chunk.__toESM(require("node:async_hooks"));
|
|
3
|
+
|
|
4
|
+
//#region src/plugins/plugin-runtime/CompilerPluginRuntime.ts
|
|
5
|
+
var PluginExecutionMode = /* @__PURE__ */ function(PluginExecutionMode$1) {
|
|
6
|
+
PluginExecutionMode$1["Activate"] = "activate";
|
|
7
|
+
PluginExecutionMode$1["Deactivate"] = "deactivate";
|
|
8
|
+
return PluginExecutionMode$1;
|
|
9
|
+
}(PluginExecutionMode || {});
|
|
10
|
+
var CompilerPluginRuntime = class {
|
|
11
|
+
name = "CompilerPluginRuntime";
|
|
12
|
+
initialized = false;
|
|
13
|
+
templates = new Map();
|
|
14
|
+
#pluginContext = new node_async_hooks.AsyncLocalStorage();
|
|
15
|
+
constructor(plugins) {
|
|
16
|
+
this.plugins = plugins;
|
|
17
|
+
}
|
|
18
|
+
getPlugins() {
|
|
19
|
+
return this.plugins;
|
|
20
|
+
}
|
|
21
|
+
isEmpty() {
|
|
22
|
+
return !this.plugins.length;
|
|
23
|
+
}
|
|
24
|
+
registerTemplate(name, handler) {
|
|
25
|
+
const ctx = this.#pluginContext.getStore();
|
|
26
|
+
if (!ctx || ctx.mode !== PluginExecutionMode.Activate) throw new Error("registerTemplate() must be called inside activate() method");
|
|
27
|
+
if (this.templates.has(name)) throw new Error(`Template "${name}" already exists`);
|
|
28
|
+
this.templates.set(name, {
|
|
29
|
+
handler,
|
|
30
|
+
plugin: ctx.plugin
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
unregisterTemplate(name) {
|
|
34
|
+
const ctx = this.#pluginContext.getStore();
|
|
35
|
+
if (!ctx || ctx.mode !== PluginExecutionMode.Deactivate) throw new Error("unregisterTemplate() must be called inside deactivate() method");
|
|
36
|
+
const template = this.templates.get(name);
|
|
37
|
+
if (!template) throw new Error(`Template "${name}" does not exist`);
|
|
38
|
+
if (template.plugin !== ctx.plugin) throw new Error(`Template "${name}" is owned by plugin "${template.plugin.name}" and cannot be unregistered by "${ctx.plugin.name}"`);
|
|
39
|
+
this.templates.delete(name);
|
|
40
|
+
}
|
|
41
|
+
getTemplate(name) {
|
|
42
|
+
var _this$templates$get;
|
|
43
|
+
return (_this$templates$get = this.templates.get(name)) === null || _this$templates$get === void 0 ? void 0 : _this$templates$get.handler;
|
|
44
|
+
}
|
|
45
|
+
getTemplates() {
|
|
46
|
+
return new Map(Array.from(this.templates.entries()).map(([name, entry]) => [name, entry.handler]));
|
|
47
|
+
}
|
|
48
|
+
async transform(code, id) {
|
|
49
|
+
let map = null;
|
|
50
|
+
for (const plugin of this.plugins) try {
|
|
51
|
+
var _plugin$transform;
|
|
52
|
+
const res = await ((_plugin$transform = plugin.transform) === null || _plugin$transform === void 0 ? void 0 : _plugin$transform.call(plugin, {
|
|
53
|
+
code,
|
|
54
|
+
id
|
|
55
|
+
}));
|
|
56
|
+
if (!res) continue;
|
|
57
|
+
if (res.code) code = res.code;
|
|
58
|
+
if (res.map) map = res.map;
|
|
59
|
+
} catch (e) {
|
|
60
|
+
const err = e instanceof Error ? e : new Error(e);
|
|
61
|
+
throw new Error(`Plugin ${plugin.name} failed to transform: ${err.message}`);
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
code,
|
|
65
|
+
map
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
async init() {
|
|
69
|
+
if (this.initialized) return;
|
|
70
|
+
for (const plugin of this.plugins) try {
|
|
71
|
+
await this.#pluginContext.run({
|
|
72
|
+
plugin,
|
|
73
|
+
mode: PluginExecutionMode.Activate
|
|
74
|
+
}, async () => {
|
|
75
|
+
var _plugin$activate;
|
|
76
|
+
await ((_plugin$activate = plugin.activate) === null || _plugin$activate === void 0 ? void 0 : _plugin$activate.call(plugin, this));
|
|
77
|
+
});
|
|
78
|
+
} catch (e) {
|
|
79
|
+
console.error(`Plugin ${plugin.name} failed to activate with ${(e === null || e === void 0 ? void 0 : e.stack) || e}`);
|
|
80
|
+
}
|
|
81
|
+
this.initialized = true;
|
|
82
|
+
}
|
|
83
|
+
async destroy() {
|
|
84
|
+
if (!this.initialized) return;
|
|
85
|
+
for (const plugin of this.plugins) try {
|
|
86
|
+
await this.#pluginContext.run({
|
|
87
|
+
plugin,
|
|
88
|
+
mode: PluginExecutionMode.Deactivate
|
|
89
|
+
}, async () => {
|
|
90
|
+
var _plugin$deactivate;
|
|
91
|
+
await ((_plugin$deactivate = plugin.deactivate) === null || _plugin$deactivate === void 0 ? void 0 : _plugin$deactivate.call(plugin, this));
|
|
92
|
+
});
|
|
93
|
+
} catch (e) {
|
|
94
|
+
console.error(`Plugin ${plugin.name} failed to deactivate with ${(e === null || e === void 0 ? void 0 : e.stack) || e}`);
|
|
95
|
+
}
|
|
96
|
+
this.initialized = false;
|
|
97
|
+
}
|
|
98
|
+
toJSON() {
|
|
99
|
+
return {
|
|
100
|
+
name: this.name,
|
|
101
|
+
transform: this.transform.bind(this)
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
//#endregion
|
|
107
|
+
Object.defineProperty(exports, 'CompilerPluginRuntime', {
|
|
108
|
+
enumerable: true,
|
|
109
|
+
get: function () {
|
|
110
|
+
return CompilerPluginRuntime;
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
//# sourceMappingURL=CompilerPluginRuntime-BWLDMYQl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompilerPluginRuntime-BWLDMYQl.js","names":[],"sources":["../src/plugins/plugin-runtime/CompilerPluginRuntime.ts"],"sourcesContent":["import {\n CompilerPlugin,\n MaybeFalsey,\n TransformedResult,\n TemplateHandler,\n} from '..';\nimport { AsyncLocalStorage } from 'node:async_hooks';\n\ninterface TemplateEntry {\n handler: TemplateHandler;\n plugin: CompilerPlugin;\n}\n\nenum PluginExecutionMode {\n Activate = 'activate',\n Deactivate = 'deactivate',\n}\n\ntype PluginContext = {\n plugin: CompilerPlugin;\n mode: PluginExecutionMode;\n};\n\nexport class CompilerPluginRuntime {\n public readonly name = 'CompilerPluginRuntime';\n private initialized = false;\n private templates = new Map<string, TemplateEntry>();\n #pluginContext = new AsyncLocalStorage<PluginContext>();\n\n public constructor(private readonly plugins: CompilerPlugin[]) {}\n\n public getPlugins() {\n return this.plugins;\n }\n\n public isEmpty() {\n return !this.plugins.length;\n }\n\n public registerTemplate(name: string, handler: TemplateHandler) {\n const ctx = this.#pluginContext.getStore();\n\n if (!ctx || ctx.mode !== PluginExecutionMode.Activate) {\n throw new Error(\n 'registerTemplate() must be called inside activate() method',\n );\n }\n\n if (this.templates.has(name)) {\n throw new Error(`Template \"${name}\" already exists`);\n }\n\n this.templates.set(name, { handler, plugin: ctx.plugin });\n }\n\n public unregisterTemplate(name: string) {\n const ctx = this.#pluginContext.getStore();\n\n if (!ctx || ctx.mode !== PluginExecutionMode.Deactivate) {\n throw new Error(\n 'unregisterTemplate() must be called inside deactivate() method',\n );\n }\n\n const template = this.templates.get(name);\n if (!template) {\n throw new Error(`Template \"${name}\" does not exist`);\n }\n\n if (template.plugin !== ctx.plugin) {\n throw new Error(\n `Template \"${name}\" is owned by plugin \"${template.plugin.name}\" and cannot be unregistered by \"${ctx.plugin.name}\"`,\n );\n }\n\n this.templates.delete(name);\n }\n\n public getTemplate(name: string): TemplateHandler | undefined {\n return this.templates.get(name)?.handler;\n }\n\n public getTemplates(): Map<string, TemplateHandler> {\n return new Map(\n Array.from(this.templates.entries()).map(([name, entry]) => [\n name,\n entry.handler,\n ]),\n );\n }\n\n public async transform(\n code: string,\n id: string,\n ): Promise<{ code: string; map: string | null }> {\n let map: string | null = null;\n for (const plugin of this.plugins) {\n try {\n const res: MaybeFalsey<TransformedResult> = await plugin.transform?.({\n code,\n id,\n });\n\n if (!res) continue;\n\n if (res.code) {\n code = res.code;\n }\n\n if (res.map) {\n map = res.map;\n }\n } catch (e: any) {\n const err = e instanceof Error ? e : new Error(e);\n throw new Error(\n `Plugin ${plugin.name} failed to transform: ${err.message}`,\n );\n }\n }\n\n return {\n code,\n map,\n };\n }\n\n public async init() {\n if (this.initialized) return;\n\n for (const plugin of this.plugins) {\n try {\n await this.#pluginContext.run(\n {\n plugin,\n mode: PluginExecutionMode.Activate,\n },\n async () => {\n await plugin.activate?.(this);\n },\n );\n } catch (e: any) {\n console.error(\n `Plugin ${plugin.name} failed to activate with ${e?.stack || e}`,\n );\n }\n }\n\n this.initialized = true;\n }\n\n public async destroy() {\n if (!this.initialized) return;\n\n for (const plugin of this.plugins) {\n try {\n await this.#pluginContext.run(\n {\n plugin,\n mode: PluginExecutionMode.Deactivate,\n },\n async () => {\n await plugin.deactivate?.(this);\n },\n );\n } catch (e: any) {\n console.error(\n `Plugin ${plugin.name} failed to deactivate with ${e?.stack || e}`,\n );\n }\n }\n\n this.initialized = false;\n }\n\n public toJSON() {\n return {\n name: this.name,\n transform: this.transform.bind(this),\n };\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ILogger } from "./ILogger-
|
|
1
|
+
import { ILogger } from "./ILogger-kqwb2kUu.js";
|
|
2
2
|
|
|
3
3
|
//#region src/logger/DefaultLogger.d.ts
|
|
4
4
|
declare class DefaultLogger implements ILogger {
|
|
@@ -27,4 +27,4 @@ declare class DefaultLogger implements ILogger {
|
|
|
27
27
|
}
|
|
28
28
|
//#endregion
|
|
29
29
|
export { DefaultLogger };
|
|
30
|
-
//# sourceMappingURL=DefaultLogger-
|
|
30
|
+
//# sourceMappingURL=DefaultLogger-CcW-Fuq5.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventWorkerContext-
|
|
1
|
+
{"version":3,"file":"EventWorkerContext-BAKiTqJz.js","names":[],"sources":["../src/app/events/EventWorkerContext.ts"],"sourcesContent":["import { AsyncLocalStorage } from 'node:async_hooks';\nimport { ParsedEvent } from '../router';\nimport { CommandKit } from '../../CommandKit';\n\nexport interface EventWorkerContext {\n event: string;\n namespace: string | null;\n data: ParsedEvent;\n commandkit: CommandKit;\n arguments: any[];\n}\n\nconst kEventWorker = Symbol('commandkitEventWorker');\n\nexport const eventWorkerContext = new AsyncLocalStorage<EventWorkerContext>();\n\nexport function runInEventWorkerContext<T>(\n context: EventWorkerContext,\n callback: () => T,\n): T {\n Reflect.set(context, kEventWorker, true);\n\n return eventWorkerContext.run(context, callback);\n}\n\nexport function getEventWorkerContext(): EventWorkerContext {\n const context = eventWorkerContext.getStore();\n\n if (!context) {\n throw new Error('Event worker context not found');\n }\n\n return context;\n}\n\nexport function isEventWorkerContext(\n worker: any,\n): worker is EventWorkerContext {\n return worker && Reflect.get(worker, kEventWorker) === true;\n}\n"],"mappings":";;;;AAYA,MAAM,eAAe,OAAO,wBAAwB;AAEpD,MAAa,qBAAqB,IAAI;AAEtC,SAAgB,wBAChB,SACA,UACI;AACF,SAAQ,IAAI,SAAS,cAAc,KAAK;AAExC,QAAO,mBAAmB,IAAI,SAAS,SAAS;AAClD;AAEA,SAAgB,wBAA4C;CAC1D,MAAM,UAAU,mBAAmB,UAAU;AAE7C,MAAK,QACH,OAAM,IAAI,MAAM;AAGlB,QAAO;AACT;AAEA,SAAgB,qBAChB,QAC+B;AAC7B,QAAO,UAAU,QAAQ,IAAI,QAAQ,aAAa,KAAK;AACzD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CommandKit } from "./CommandKit-
|
|
1
|
+
import { CommandKit } from "./CommandKit-DDSUNOAe.js";
|
|
2
2
|
import { ParsedEvent } from "./EventsRouter-BacqK6z3.js";
|
|
3
3
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
4
4
|
|
|
@@ -16,4 +16,4 @@ declare function getEventWorkerContext(): EventWorkerContext;
|
|
|
16
16
|
declare function isEventWorkerContext(worker: any): worker is EventWorkerContext;
|
|
17
17
|
//#endregion
|
|
18
18
|
export { EventWorkerContext, eventWorkerContext, getEventWorkerContext, isEventWorkerContext, runInEventWorkerContext };
|
|
19
|
-
//# sourceMappingURL=EventWorkerContext-
|
|
19
|
+
//# sourceMappingURL=EventWorkerContext-CjU5wt-a.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventsRouter-
|
|
1
|
+
{"version":3,"file":"EventsRouter-C_J0M3uO.js","names":[],"sources":["../src/app/router/EventsRouter.ts"],"sourcesContent":["import { Collection } from 'discord.js';\nimport { existsSync } from 'node:fs';\nimport { readdir } from 'node:fs/promises';\nimport { join } from 'node:path';\n\n/**\n * Configuration options for the EventsRouter\n * @interface EventsRouterOptions\n */\nexport interface EventsRouterOptions {\n /** Root directory path where event handlers are located */\n entrypoints: string[];\n}\n\n/**\n * Represents a parsed event with its handlers\n * @interface ParsedEvent\n */\nexport interface ParsedEvent {\n /** Name of the event derived from directory name */\n event: string;\n /** Absolute path to the event directory */\n path: string;\n /** Array of file paths to event listener handlers */\n listeners: string[];\n /** Namespace of the event */\n namespace: string | null;\n}\n\n/** Collection of event names to their parsed metadata */\nexport type EventsTree = Record<string, ParsedEvent>;\n\n/**\n * Router for discovering and managing event handler files in a directory structure.\n * Events are represented by directories, and handlers are files within those directories.\n */\nexport class EventsRouter {\n /** Internal storage of parsed events */\n private events = new Collection<string, ParsedEvent>();\n\n /**\n * Creates a new EventsRouter instance\n * @param options - Configuration options for the router\n * @throws Error if entrypoint is not provided\n */\n public constructor(private options: EventsRouterOptions) {\n if (options.entrypoints) {\n options.entrypoints = Array.from(new Set(options.entrypoints));\n }\n\n if (!options.entrypoints?.length) {\n throw new Error('Entrypoint directory must be provided');\n }\n }\n\n /**\n * Adds new entrypoints to the router\n * @param entrypoints - Array of new entrypoint paths\n */\n public addEntrypoints(entrypoints: string[]) {\n this.options.entrypoints = Array.from(\n new Set([...this.options.entrypoints, ...entrypoints]),\n );\n }\n\n /**\n * Find a parsed event by its name\n * @param event - Name of the event to find\n * @returns Parsed event metadata or null if not found\n */\n public match(event: string): ParsedEvent | null {\n return this.events.get(event) ?? null;\n }\n\n /**\n * Get the entrypoint directory path\n * @returns Entrypoint directory path\n */\n public get entrypoints(): string[] {\n return this.options.entrypoints;\n }\n\n /**\n * Checks if the entrypoint path is valid\n */\n public isValidPath() {\n return this.entrypoints.every((entrypoint) => existsSync(entrypoint));\n }\n\n /**\n * Clear all parsed events\n */\n public clear() {\n this.events.clear();\n }\n\n /**\n * Reload and re-scan the entrypoint directory for events\n * @returns Promise resolving to the updated events tree\n */\n public async reload() {\n this.clear();\n return this.scan();\n }\n\n /**\n * Scan the entrypoint directory for events and their handlers\n * @returns Promise resolving to the events tree\n */\n public async scan(): Promise<EventsTree> {\n for (const entrypoint of this.entrypoints) {\n const dirs = await readdir(entrypoint, { withFileTypes: true });\n\n for (const dir of dirs) {\n if (dir.isDirectory()) {\n const path = join(entrypoint, dir.name);\n await this.scanEvent(dir.name, path, null, [], true);\n }\n }\n }\n\n return Object.fromEntries(this.events);\n }\n\n /**\n * Convert the internal events Collection to a plain object\n * @returns Events tree as a plain object\n */\n public toJSON(): EventsTree {\n return Object.fromEntries(this.events);\n }\n\n /**\n * Recursively scan a directory for event handlers\n * @param event - Name of the event\n * @param path - Path to the event directory\n * @param listeners - Array to collect listener file paths\n * @returns Promise resolving to the parsed event metadata\n */\n private async scanEvent(\n event: string,\n path: string,\n _namespace: string | null = null,\n listeners: string[] = [],\n isRoot = false,\n ): Promise<void> {\n const files = await readdir(path, { withFileTypes: true });\n const isNamespace = isRoot && /^\\(.+\\)$/.test(event);\n\n // if event = (something) pattern then namespace is something\n const namespace = isNamespace ? event.slice(1, -1) : (_namespace ?? null);\n\n files.sort((a, b) => a.name.localeCompare(b.name));\n\n for (const file of files) {\n if (file.name.startsWith('_')) continue;\n\n if (file.isDirectory()) {\n const nextPath = join(path, file.name);\n await this.scanEvent(file.name, nextPath, namespace, listeners);\n continue;\n }\n\n if (file.isFile() && /\\.(m|c)?(j|t)sx?$/.test(file.name)) {\n listeners.push(join(file.parentPath, file.name));\n }\n }\n\n if (!isNamespace) {\n const existing = this.events.get(event);\n\n if (existing) {\n existing.listeners = Array.from(\n new Set([...existing.listeners, ...listeners]),\n );\n\n return;\n }\n\n this.events.set(event, { event, path, listeners, namespace });\n }\n }\n}\n"],"mappings":";;;;;;;;;;;AAoCA,IAAa,eAAb,MAA0B;;CAExB,AAAQ,SAAS,IAAI;;;;;;CAOrB,AAAO,YAAoB,SAA8B;;EAA9B;AACzB,MAAI,QAAQ,YACV,SAAQ,cAAc,MAAM,KAAK,IAAI,IAAI,QAAQ,aAAa;AAGhE,gCAAK,QAAQ,yFAAa,QACxB,OAAM,IAAI,MAAM;CAEpB;;;;;CAMA,AAAO,eAAe,aAAuB;AAC3C,OAAK,QAAQ,cAAc,MAAM,KAC/B,IAAI,IAAI,CAAC,GAAG,KAAK,QAAQ,aAAa,GAAG,WAAY,GACtD;CACH;;;;;;CAOA,AAAO,MAAM,OAAmC;AAC9C,SAAO,KAAK,OAAO,IAAI,MAAM,IAAI;CACnC;;;;;CAMA,IAAW,cAAwB;AACjC,SAAO,KAAK,QAAQ;CACtB;;;;CAKA,AAAO,cAAc;AACnB,SAAO,KAAK,YAAY,MAAM,CAAC,eAAe,wBAAW,WAAW,CAAC;CACvE;;;;CAKA,AAAO,QAAQ;AACb,OAAK,OAAO,OAAO;CACrB;;;;;CAMA,MAAa,SAAS;AACpB,OAAK,OAAO;AACZ,SAAO,KAAK,MAAM;CACpB;;;;;CAMA,MAAa,OAA4B;AACvC,OAAK,MAAM,cAAc,KAAK,aAAa;GACzC,MAAM,OAAO,MAAM,8BAAQ,YAAY,EAAE,eAAe,KAAM,EAAC;AAE/D,QAAK,MAAM,OAAO,KAChB,KAAI,IAAI,aAAa,EAAE;IACrB,MAAM,OAAO,oBAAK,YAAY,IAAI,KAAK;AACvC,UAAM,KAAK,UAAU,IAAI,MAAM,MAAM,MAAM,CAAE,GAAE,KAAK;GACtD;EAEJ;AAEA,SAAO,OAAO,YAAY,KAAK,OAAO;CACxC;;;;;CAMA,AAAO,SAAqB;AAC1B,SAAO,OAAO,YAAY,KAAK,OAAO;CACxC;;;;;;;;CASA,MAAc,UACd,OACA,MACA,aAA4B,MAC5B,YAAsB,CAAE,GACxB,SAAS,OACO;EACd,MAAM,QAAQ,MAAM,8BAAQ,MAAM,EAAE,eAAe,KAAM,EAAC;EAC1D,MAAM,cAAc,UAAU,WAAW,KAAK,MAAM;EAGpD,MAAM,YAAY,cAAc,MAAM,MAAM,GAAG,GAAG,GAAG,cAAc;AAEnE,QAAM,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,cAAc,EAAE,KAAK,CAAC;AAElD,OAAK,MAAM,QAAQ,OAAO;AACxB,OAAI,KAAK,KAAK,WAAW,IAAI,CAAE;AAE/B,OAAI,KAAK,aAAa,EAAE;IACtB,MAAM,WAAW,oBAAK,MAAM,KAAK,KAAK;AACtC,UAAM,KAAK,UAAU,KAAK,MAAM,UAAU,WAAW,UAAU;AAC/D;GACF;AAEA,OAAI,KAAK,QAAQ,IAAI,oBAAoB,KAAK,KAAK,KAAK,CACtD,WAAU,KAAK,oBAAK,KAAK,YAAY,KAAK,KAAK,CAAC;EAEpD;AAEA,OAAK,aAAa;GAChB,MAAM,WAAW,KAAK,OAAO,IAAI,MAAM;AAEvC,OAAI,UAAU;AACZ,aAAS,YAAY,MAAM,KACzB,IAAI,IAAI,CAAC,GAAG,SAAS,WAAW,GAAG,SAAU,GAC9C;AAED;GACF;AAEA,QAAK,OAAO,IAAI,OAAO;IAAE;IAAO;IAAM;IAAW;GAAW,EAAC;EAC/D;CACF;AACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ILogger } from "./ILogger-
|
|
1
|
+
import { ILogger } from "./ILogger-kqwb2kUu.js";
|
|
2
2
|
|
|
3
3
|
//#region src/logger/Logger.d.ts
|
|
4
4
|
interface CommandKitLoggerOptions {
|
|
@@ -14,4 +14,4 @@ declare function createLogger(options: CommandKitLoggerOptions): LoggerImpl;
|
|
|
14
14
|
declare const Logger: LoggerImpl;
|
|
15
15
|
//#endregion
|
|
16
16
|
export { CommandKitLoggerOptions, Logger, LoggerImpl, createLogger };
|
|
17
|
-
//# sourceMappingURL=Logger-
|
|
17
|
+
//# sourceMappingURL=Logger-B4B_URL-.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageCommandParser-B13Pkwo9.js","names":[],"sources":["../src/app/commands/MessageCommandParser.ts"],"sourcesContent":["import { Channel } from 'diagnostics_channel';\nimport {\n Message,\n ApplicationCommandOptionType,\n GuildMember,\n Attachment,\n User,\n Role,\n CommandInteractionOption,\n} from 'discord.js';\nimport {\n CommandKitErrorCodes,\n createCommandKitError,\n} from '../../utils/error-codes';\n\nexport interface ParsedMessageCommand {\n command: string;\n options: { name: string; value: unknown }[];\n subcommand?: string;\n subcommandGroup?: string;\n}\n\nexport type MessageCommandOptionsSchema = Record<\n string,\n ApplicationCommandOptionType\n>;\n\nexport class MessageCommandParser {\n #parsed: ParsedMessageCommand | null = null;\n #options: MessageCommandOptions | null = null;\n #args: string[] = [];\n\n public constructor(\n public message: Message,\n private prefix: string[],\n private schema: (command: string) => MessageCommandOptionsSchema,\n ) {}\n\n public getArgs() {\n void this.parse();\n return this.#args;\n }\n\n public get options() {\n if (!this.#options) {\n this.#options = new MessageCommandOptions(this);\n }\n\n return this.#options;\n }\n\n public getOption<T>(name: string): T | undefined {\n return this.parse().options.find((o) => o.name === name)?.value as T;\n }\n\n public getCommand(): string {\n return this.parse().command;\n }\n\n public getSubcommand(): string | undefined {\n return this.parse().subcommand;\n }\n\n public getSubcommandGroup(): string | undefined {\n return this.parse().subcommandGroup;\n }\n\n public getPrefix() {\n for (const p of this.prefix) {\n if (this.message.content.startsWith(p)) {\n return p;\n }\n }\n }\n\n public getFullCommand() {\n return [this.getCommand(), this.getSubcommandGroup(), this.getSubcommand()]\n .filter((v) => v)\n .join(' ');\n }\n\n public parse(): ParsedMessageCommand {\n if (this.#parsed) {\n return this.#parsed;\n }\n\n const content = this.message.content;\n\n const prefix = this.getPrefix();\n\n if (!prefix) {\n throw createCommandKitError(CommandKitErrorCodes.InvalidCommandPrefix);\n }\n\n const parts = content.slice(prefix.length).trim().split(' ');\n const command = parts.shift();\n\n this.#args = parts;\n\n let subcommandGroup: string | undefined;\n let subcommand: string | undefined;\n\n if (command?.includes(':')) {\n const [, group, cmd] = command.split(':');\n\n if (!cmd && group) {\n subcommand = group;\n } else if (cmd && group) {\n subcommandGroup = group;\n subcommand = cmd;\n }\n }\n\n const schema = this.schema(\n [command, subcommandGroup, subcommand].filter(Boolean).join(' ').trim(),\n );\n\n const options = parts\n .map((part) => {\n try {\n const [name, value] = part.split(':');\n\n if (!(name in schema)) return null;\n\n switch (schema[name]) {\n case ApplicationCommandOptionType.Boolean:\n return { name, value: value === 'true' };\n case ApplicationCommandOptionType.Integer:\n return { name, value: parseInt(value, 10) };\n case ApplicationCommandOptionType.Number:\n return { name, value: parseFloat(value) };\n case ApplicationCommandOptionType.String:\n return { name, value };\n case ApplicationCommandOptionType.User:\n return {\n name,\n value: this.message.mentions.users.find((u) => {\n return u.id === value.replace(/[<@!>]/g, '');\n }),\n };\n case ApplicationCommandOptionType.Channel:\n return {\n name,\n value: this.message.mentions.channels.find((c) => {\n return c.id === value.replace(/[<#>]/g, '');\n }),\n };\n case ApplicationCommandOptionType.Role:\n return {\n name,\n value: this.message.mentions.roles.find((r) => {\n return r.id === value.replace(/[<@&>]/g, '');\n }),\n };\n case ApplicationCommandOptionType.Attachment:\n return {\n name,\n value: this.message.attachments.find((a) => {\n return a.name === value;\n }),\n };\n default:\n return null;\n }\n } catch {\n // Invalid option\n return null;\n }\n })\n .filter((v) => v !== null);\n\n this.#parsed = {\n command: command!,\n options,\n subcommand,\n subcommandGroup,\n };\n\n return this.#parsed;\n }\n}\n\nexport class MessageCommandOptions {\n public constructor(private parser: MessageCommandParser) {}\n\n private assertOption<T>(name: string, required = false) {\n const option = this.parser.getOption<T>(name);\n\n if (required && option === undefined) {\n throw new Error(`Option \"${name}\" is required.`);\n }\n\n return option ?? null;\n }\n\n getMember(name: string): GuildMember | null;\n getMember(name: string, required: true): GuildMember;\n getMember(name: string, required = false) {\n const user = this.assertOption<User>(name, required);\n const member = this.parser.message.guild?.members.cache.get(user?.id!);\n\n if (required && !member) {\n throw new Error(`Member \"${name}\" is required.`);\n }\n\n return member ?? null;\n }\n\n getAttachment(name: string): Attachment | null;\n getAttachment(name: string, required: true): Attachment;\n getAttachment(name: string, required = false) {\n return this.assertOption<Attachment>(name, required);\n }\n\n getBoolean(name: string): boolean | null;\n getBoolean(name: string, required: true): boolean;\n getBoolean(name: string, required = false) {\n return this.assertOption<boolean>(name, required);\n }\n\n getNumber(name: string): number | null;\n getNumber(name: string, required: true): number;\n getNumber(name: string, required = false) {\n return this.assertOption<number>(name, required);\n }\n\n getString(name: string): string | null;\n getString(name: string, required: true): string;\n getString(name: string, required = false) {\n return this.assertOption<string>(name, required);\n }\n\n getInteger(name: string): number | null;\n getInteger(name: string, required: true): number;\n getInteger(name: string, required = false) {\n return this.assertOption<number>(name, required);\n }\n\n getUser(name: string): User | null;\n getUser(name: string, required: true): User;\n getUser(name: string, required = false) {\n return this.assertOption<User>(name, required);\n }\n\n getChannel(name: string): Channel | null;\n getChannel(name: string, required: true): Channel;\n getChannel(name: string, required = false) {\n return this.assertOption<Channel>(name, required);\n }\n\n getRole(name: string): Role | null;\n getRole(name: string, required: true): Role;\n getRole(name: string, required = false) {\n return this.assertOption<Role>(name, required);\n }\n\n getMentionable(\n name: string,\n ): NonNullable<CommandInteractionOption['member' | 'role' | 'user']> | null;\n getMentionable(\n name: string,\n required: true,\n ): NonNullable<CommandInteractionOption['member' | 'role' | 'user']>;\n getMentionable(\n name: string,\n required = false,\n ): NonNullable<CommandInteractionOption['member' | 'role' | 'user']> | null {\n const target = this.assertOption(name, required);\n\n if (\n target instanceof GuildMember ||\n target instanceof User ||\n target instanceof Role\n ) {\n return target;\n }\n\n if (required) {\n throw new Error(`Mentionable \"${name}\" is required.`);\n }\n\n return null;\n }\n\n getSubcommand(): string | null;\n getSubcommand(required: true): string;\n getSubcommand(required = false) {\n const sub = this.parser.getSubcommand();\n\n if (required && sub === undefined) {\n throw new Error('Subcommand is required.');\n }\n\n return sub ?? null;\n }\n\n getSubcommandGroup(): string | null;\n getSubcommandGroup(required: true): string;\n getSubcommandGroup(required = false) {\n const sub = this.parser.getSubcommandGroup();\n\n if (required && sub === undefined) {\n throw new Error('Subcommand group is required.');\n }\n\n return sub ?? null;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessageCommandParser-D02-wpZN.js","names":[],"sources":["../src/app/commands/MessageCommandParser.ts"],"sourcesContent":["import { Channel } from 'diagnostics_channel';\nimport {\n Message,\n ApplicationCommandOptionType,\n GuildMember,\n Attachment,\n User,\n Role,\n CommandInteractionOption,\n} from 'discord.js';\nimport {\n CommandKitErrorCodes,\n createCommandKitError,\n} from '../../utils/error-codes';\n\nexport interface ParsedMessageCommand {\n command: string;\n options: { name: string; value: unknown }[];\n subcommand?: string;\n subcommandGroup?: string;\n}\n\nexport type MessageCommandOptionsSchema = Record<\n string,\n ApplicationCommandOptionType\n>;\n\nexport class MessageCommandParser {\n #parsed: ParsedMessageCommand | null = null;\n #options: MessageCommandOptions | null = null;\n #args: string[] = [];\n\n public constructor(\n public message: Message,\n private prefix: string[],\n private schema: (command: string) => MessageCommandOptionsSchema,\n ) {}\n\n public getArgs() {\n void this.parse();\n return this.#args;\n }\n\n public get options() {\n if (!this.#options) {\n this.#options = new MessageCommandOptions(this);\n }\n\n return this.#options;\n }\n\n public getOption<T>(name: string): T | undefined {\n return this.parse().options.find((o) => o.name === name)?.value as T;\n }\n\n public getCommand(): string {\n return this.parse().command;\n }\n\n public getSubcommand(): string | undefined {\n return this.parse().subcommand;\n }\n\n public getSubcommandGroup(): string | undefined {\n return this.parse().subcommandGroup;\n }\n\n public getPrefix() {\n for (const p of this.prefix) {\n if (this.message.content.startsWith(p)) {\n return p;\n }\n }\n }\n\n public getFullCommand() {\n return [this.getCommand(), this.getSubcommandGroup(), this.getSubcommand()]\n .filter((v) => v)\n .join(' ');\n }\n\n public parse(): ParsedMessageCommand {\n if (this.#parsed) {\n return this.#parsed;\n }\n\n const content = this.message.content;\n\n const prefix = this.getPrefix();\n\n if (!prefix) {\n throw createCommandKitError(CommandKitErrorCodes.InvalidCommandPrefix);\n }\n\n const parts = content.slice(prefix.length).trim().split(' ');\n const command = parts.shift();\n\n this.#args = parts;\n\n let subcommandGroup: string | undefined;\n let subcommand: string | undefined;\n\n if (command?.includes(':')) {\n const [, group, cmd] = command.split(':');\n\n if (!cmd && group) {\n subcommand = group;\n } else if (cmd && group) {\n subcommandGroup = group;\n subcommand = cmd;\n }\n }\n\n const schema = this.schema(\n [command, subcommandGroup, subcommand].filter(Boolean).join(' ').trim(),\n );\n\n const options = parts\n .map((part) => {\n try {\n const [name, value] = part.split(':');\n\n if (!(name in schema)) return null;\n\n switch (schema[name]) {\n case ApplicationCommandOptionType.Boolean:\n return { name, value: value === 'true' };\n case ApplicationCommandOptionType.Integer:\n return { name, value: parseInt(value, 10) };\n case ApplicationCommandOptionType.Number:\n return { name, value: parseFloat(value) };\n case ApplicationCommandOptionType.String:\n return { name, value };\n case ApplicationCommandOptionType.User:\n return {\n name,\n value: this.message.mentions.users.find((u) => {\n return u.id === value.replace(/[<@!>]/g, '');\n }),\n };\n case ApplicationCommandOptionType.Channel:\n return {\n name,\n value: this.message.mentions.channels.find((c) => {\n return c.id === value.replace(/[<#>]/g, '');\n }),\n };\n case ApplicationCommandOptionType.Role:\n return {\n name,\n value: this.message.mentions.roles.find((r) => {\n return r.id === value.replace(/[<@&>]/g, '');\n }),\n };\n case ApplicationCommandOptionType.Attachment:\n return {\n name,\n value: this.message.attachments.find((a) => {\n return a.name === value;\n }),\n };\n default:\n return null;\n }\n } catch {\n // Invalid option\n return null;\n }\n })\n .filter((v) => v !== null);\n\n this.#parsed = {\n command: command!,\n options,\n subcommand,\n subcommandGroup,\n };\n\n return this.#parsed;\n }\n}\n\nexport class MessageCommandOptions {\n public constructor(private parser: MessageCommandParser) {}\n\n private assertOption<T>(name: string, required = false) {\n const option = this.parser.getOption<T>(name);\n\n if (required && option === undefined) {\n throw new Error(`Option \"${name}\" is required.`);\n }\n\n return option ?? null;\n }\n\n getMember(name: string): GuildMember | null;\n getMember(name: string, required: true): GuildMember;\n getMember(name: string, required = false) {\n const user = this.assertOption<User>(name, required);\n const member = this.parser.message.guild?.members.cache.get(user?.id!);\n\n if (required && !member) {\n throw new Error(`Member \"${name}\" is required.`);\n }\n\n return member ?? null;\n }\n\n getAttachment(name: string): Attachment | null;\n getAttachment(name: string, required: true): Attachment;\n getAttachment(name: string, required = false) {\n return this.assertOption<Attachment>(name, required);\n }\n\n getBoolean(name: string): boolean | null;\n getBoolean(name: string, required: true): boolean;\n getBoolean(name: string, required = false) {\n return this.assertOption<boolean>(name, required);\n }\n\n getNumber(name: string): number | null;\n getNumber(name: string, required: true): number;\n getNumber(name: string, required = false) {\n return this.assertOption<number>(name, required);\n }\n\n getString(name: string): string | null;\n getString(name: string, required: true): string;\n getString(name: string, required = false) {\n return this.assertOption<string>(name, required);\n }\n\n getInteger(name: string): number | null;\n getInteger(name: string, required: true): number;\n getInteger(name: string, required = false) {\n return this.assertOption<number>(name, required);\n }\n\n getUser(name: string): User | null;\n getUser(name: string, required: true): User;\n getUser(name: string, required = false) {\n return this.assertOption<User>(name, required);\n }\n\n getChannel(name: string): Channel | null;\n getChannel(name: string, required: true): Channel;\n getChannel(name: string, required = false) {\n return this.assertOption<Channel>(name, required);\n }\n\n getRole(name: string): Role | null;\n getRole(name: string, required: true): Role;\n getRole(name: string, required = false) {\n return this.assertOption<Role>(name, required);\n }\n\n getMentionable(\n name: string,\n ): NonNullable<CommandInteractionOption['member' | 'role' | 'user']> | null;\n getMentionable(\n name: string,\n required: true,\n ): NonNullable<CommandInteractionOption['member' | 'role' | 'user']>;\n getMentionable(\n name: string,\n required = false,\n ): NonNullable<CommandInteractionOption['member' | 'role' | 'user']> | null {\n const target = this.assertOption(name, required);\n\n if (\n target instanceof GuildMember ||\n target instanceof User ||\n target instanceof Role\n ) {\n return target;\n }\n\n if (required) {\n throw new Error(`Mentionable \"${name}\" is required.`);\n }\n\n return null;\n }\n\n getSubcommand(): string | null;\n getSubcommand(required: true): string;\n getSubcommand(required = false) {\n const sub = this.parser.getSubcommand();\n\n if (required && sub === undefined) {\n throw new Error('Subcommand is required.');\n }\n\n return sub ?? null;\n }\n\n getSubcommandGroup(): string | null;\n getSubcommandGroup(required: true): string;\n getSubcommandGroup(required = false) {\n const sub = this.parser.getSubcommandGroup();\n\n if (required && sub === undefined) {\n throw new Error('Subcommand group is required.');\n }\n\n return sub ?? null;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AppCommandRunner } from "../../CommandKit-
|
|
1
|
+
import { AppCommandRunner } from "../../CommandKit-DDSUNOAe.js";
|
|
2
2
|
import "../../EventInterceptor-D_oEWSnF.js";
|
|
3
3
|
import "../../ButtonKit-BSI7lCI0.js";
|
|
4
4
|
import "../../ModalKit-CKtQ8eXW.js";
|
|
@@ -29,5 +29,4 @@ import "../../CommandsRouter-C7X-eXE2.js";
|
|
|
29
29
|
import "../../EventsRouter-BacqK6z3.js";
|
|
30
30
|
import "../../index-CUPkUUOR.js";
|
|
31
31
|
import "../../constants-Ce6w4OFe.js";
|
|
32
|
-
import "../../types-BDwNROY2.js";
|
|
33
32
|
export { AppCommandRunner };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require('../../colors-Cd4Oz-r-.js');
|
|
2
2
|
require('../../ActionRow-CmTHbo2t.js');
|
|
3
3
|
require('../../error-codes-C_UO39jz.js');
|
|
4
|
-
const require_CommandKit = require('../../CommandKit-
|
|
4
|
+
const require_CommandKit = require('../../CommandKit-L7X8fflj.js');
|
|
5
5
|
require('../../common-CcfjYnPG.js');
|
|
6
6
|
require('../../common-CeO-vn8Y.js');
|
|
7
7
|
require('../../container-CpuiLsZM.js');
|
|
@@ -20,19 +20,18 @@ require('../../PluginCommon-DPqnQngK.js');
|
|
|
20
20
|
require('../../CompilerPlugin-XzuGixkC.js');
|
|
21
21
|
require('../../RuntimePlugin-CKsd83M3.js');
|
|
22
22
|
require('../../types-Bq0EWaM3.js');
|
|
23
|
-
require('../../CompilerPluginRuntime-
|
|
24
|
-
require('../../
|
|
25
|
-
require('../../
|
|
26
|
-
require('../../
|
|
27
|
-
require('../../
|
|
28
|
-
require('../../
|
|
29
|
-
require('../../
|
|
30
|
-
require('../../
|
|
31
|
-
require('../../
|
|
32
|
-
require('../../
|
|
33
|
-
require('../../
|
|
34
|
-
require('../../
|
|
35
|
-
require('../../
|
|
36
|
-
require('../../store-Ci6ib2C9.js');
|
|
23
|
+
require('../../CompilerPluginRuntime-BWLDMYQl.js');
|
|
24
|
+
require('../../runtime-D0JnztkU.js');
|
|
25
|
+
require('../../EventWorkerContext-BAKiTqJz.js');
|
|
26
|
+
require('../../resolve-file-url-ifwdwqmq.js');
|
|
27
|
+
require('../../MessageCommandParser-D02-wpZN.js');
|
|
28
|
+
require('../../signals-scJdEbly.js');
|
|
29
|
+
require('../../types-package-BrES1tNq.js');
|
|
30
|
+
require('../../CommandsRouter-B91EHi6O.js');
|
|
31
|
+
require('../../EventsRouter-C_J0M3uO.js');
|
|
32
|
+
require('../../router-DHnFRADH.js');
|
|
33
|
+
require('../../common-CtMBxAf-.js');
|
|
34
|
+
require('../../CommandKitEventsChannel-BnSPcFdq.js');
|
|
35
|
+
require('../../store-B9bo6On8.js');
|
|
37
36
|
|
|
38
37
|
exports.AppCommandRunner = require_CommandKit.AppCommandRunner;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnyCommandExecute, AutocompleteCommand, AutocompleteCommandContext, AutocompleteCommandMiddlewareContext, ChatInputCommand, ChatInputCommandContext, CommandContextOptions, CommandExecutionMode, Context, ContextParameters, InteractionCommandContext, InteractionCommandMiddlewareContext, MessageCommand, MessageCommandContext, MessageCommandMiddlewareContext, MessageContextMenuCommand, MessageContextMenuCommandContext, MessageContextMenuCommandMiddlewareContext, MiddlewareContext, MiddlewareContextArgs, SlashCommandMiddlewareContext, UserContextMenuCommand, UserContextMenuCommandContext, UserContextMenuCommandMiddlewareContext } from "../../CommandKit-
|
|
1
|
+
import { AnyCommandExecute, AutocompleteCommand, AutocompleteCommandContext, AutocompleteCommandMiddlewareContext, ChatInputCommand, ChatInputCommandContext, CommandContextOptions, CommandExecutionMode, Context, ContextParameters, InteractionCommandContext, InteractionCommandMiddlewareContext, MessageCommand, MessageCommandContext, MessageCommandMiddlewareContext, MessageContextMenuCommand, MessageContextMenuCommandContext, MessageContextMenuCommandMiddlewareContext, MiddlewareContext, MiddlewareContextArgs, SlashCommandMiddlewareContext, UserContextMenuCommand, UserContextMenuCommandContext, UserContextMenuCommandMiddlewareContext } from "../../CommandKit-DDSUNOAe.js";
|
|
2
2
|
import "../../EventInterceptor-D_oEWSnF.js";
|
|
3
3
|
import "../../ButtonKit-BSI7lCI0.js";
|
|
4
4
|
import "../../ModalKit-CKtQ8eXW.js";
|
|
@@ -29,5 +29,4 @@ import "../../CommandsRouter-C7X-eXE2.js";
|
|
|
29
29
|
import "../../EventsRouter-BacqK6z3.js";
|
|
30
30
|
import "../../index-CUPkUUOR.js";
|
|
31
31
|
import "../../constants-Ce6w4OFe.js";
|
|
32
|
-
import "../../types-BDwNROY2.js";
|
|
33
32
|
export { AnyCommandExecute, AutocompleteCommand, AutocompleteCommandContext, AutocompleteCommandMiddlewareContext, ChatInputCommand, ChatInputCommandContext, CommandContextOptions, CommandExecutionMode, Context, ContextParameters, InteractionCommandContext, InteractionCommandMiddlewareContext, MessageCommand, MessageCommandContext, MessageCommandMiddlewareContext, MessageContextMenuCommand, MessageContextMenuCommandContext, MessageContextMenuCommandMiddlewareContext, MiddlewareContext, MiddlewareContextArgs, SlashCommandMiddlewareContext, UserContextMenuCommand, UserContextMenuCommandContext, UserContextMenuCommandMiddlewareContext };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require('../../colors-Cd4Oz-r-.js');
|
|
2
2
|
require('../../ActionRow-CmTHbo2t.js');
|
|
3
3
|
require('../../error-codes-C_UO39jz.js');
|
|
4
|
-
const require_CommandKit = require('../../CommandKit-
|
|
4
|
+
const require_CommandKit = require('../../CommandKit-L7X8fflj.js');
|
|
5
5
|
require('../../common-CcfjYnPG.js');
|
|
6
6
|
require('../../common-CeO-vn8Y.js');
|
|
7
7
|
require('../../container-CpuiLsZM.js');
|
|
@@ -20,20 +20,19 @@ require('../../PluginCommon-DPqnQngK.js');
|
|
|
20
20
|
require('../../CompilerPlugin-XzuGixkC.js');
|
|
21
21
|
require('../../RuntimePlugin-CKsd83M3.js');
|
|
22
22
|
require('../../types-Bq0EWaM3.js');
|
|
23
|
-
require('../../CompilerPluginRuntime-
|
|
24
|
-
require('../../
|
|
25
|
-
require('../../
|
|
26
|
-
require('../../
|
|
27
|
-
require('../../
|
|
28
|
-
require('../../
|
|
29
|
-
require('../../
|
|
30
|
-
require('../../
|
|
31
|
-
require('../../
|
|
32
|
-
require('../../
|
|
33
|
-
require('../../
|
|
34
|
-
require('../../
|
|
35
|
-
require('../../
|
|
36
|
-
require('../../store-Ci6ib2C9.js');
|
|
23
|
+
require('../../CompilerPluginRuntime-BWLDMYQl.js');
|
|
24
|
+
require('../../runtime-D0JnztkU.js');
|
|
25
|
+
require('../../EventWorkerContext-BAKiTqJz.js');
|
|
26
|
+
require('../../resolve-file-url-ifwdwqmq.js');
|
|
27
|
+
require('../../MessageCommandParser-D02-wpZN.js');
|
|
28
|
+
require('../../signals-scJdEbly.js');
|
|
29
|
+
require('../../types-package-BrES1tNq.js');
|
|
30
|
+
require('../../CommandsRouter-B91EHi6O.js');
|
|
31
|
+
require('../../EventsRouter-C_J0M3uO.js');
|
|
32
|
+
require('../../router-DHnFRADH.js');
|
|
33
|
+
require('../../common-CtMBxAf-.js');
|
|
34
|
+
require('../../CommandKitEventsChannel-BnSPcFdq.js');
|
|
35
|
+
require('../../store-B9bo6On8.js');
|
|
37
36
|
|
|
38
37
|
exports.CommandExecutionMode = require_CommandKit.CommandExecutionMode;
|
|
39
38
|
exports.Context = require_CommandKit.Context;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require('../../error-codes-C_UO39jz.js');
|
|
2
|
-
const require_MessageCommandParser = require('../../MessageCommandParser-
|
|
2
|
+
const require_MessageCommandParser = require('../../MessageCommandParser-D02-wpZN.js');
|
|
3
3
|
|
|
4
4
|
exports.MessageCommandOptions = require_MessageCommandParser.MessageCommandOptions;
|
|
5
5
|
exports.MessageCommandParser = require_MessageCommandParser.MessageCommandParser;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../../CommandKit-
|
|
1
|
+
import "../../CommandKit-DDSUNOAe.js";
|
|
2
2
|
import "../../EventInterceptor-D_oEWSnF.js";
|
|
3
3
|
import "../../ButtonKit-BSI7lCI0.js";
|
|
4
4
|
import "../../ModalKit-CKtQ8eXW.js";
|
|
@@ -29,6 +29,5 @@ import "../../CommandsRouter-C7X-eXE2.js";
|
|
|
29
29
|
import "../../EventsRouter-BacqK6z3.js";
|
|
30
30
|
import "../../index-CUPkUUOR.js";
|
|
31
31
|
import "../../constants-Ce6w4OFe.js";
|
|
32
|
-
import "../../
|
|
33
|
-
import { EventWorkerContext, eventWorkerContext, getEventWorkerContext, isEventWorkerContext, runInEventWorkerContext } from "../../EventWorkerContext-Bt96B-EK.js";
|
|
32
|
+
import { EventWorkerContext, eventWorkerContext, getEventWorkerContext, isEventWorkerContext, runInEventWorkerContext } from "../../EventWorkerContext-CjU5wt-a.js";
|
|
34
33
|
export { EventWorkerContext, eventWorkerContext, getEventWorkerContext, isEventWorkerContext, runInEventWorkerContext };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_EventWorkerContext = require('../../EventWorkerContext-
|
|
1
|
+
const require_EventWorkerContext = require('../../EventWorkerContext-BAKiTqJz.js');
|
|
2
2
|
|
|
3
3
|
exports.eventWorkerContext = require_EventWorkerContext.eventWorkerContext;
|
|
4
4
|
exports.getEventWorkerContext = require_EventWorkerContext.getEventWorkerContext;
|