commandkit 1.2.0-rc.3 → 1.2.0-rc.5
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/README.md +4 -12
- package/dist/ActionRow-CmTHbo2t.js.map +1 -1
- package/dist/CommandKitEventsChannel-Bgw0XCOl.js.map +1 -1
- package/dist/CommandsRouter-tMAivEfv.js.map +1 -1
- package/dist/CompilerPlugin-CjoZAAR8.js.map +1 -1
- package/dist/{DefaultLogger-Cy55-uPl.d.ts → DefaultLogger-XCOl5nLd.d.ts} +19 -12
- package/dist/EventInterceptor-CQ4PBpBJ.js.map +1 -1
- package/dist/{EventWorkerContext-C7CG7hIP.d.ts → EventWorkerContext-D9frVhVe.d.ts} +2 -2
- package/dist/{EventWorkerContext-CSlD9rbx.js → EventWorkerContext-TZIKxVCu.js} +1 -1
- package/dist/{EventWorkerContext-CSlD9rbx.js.map → EventWorkerContext-TZIKxVCu.js.map} +1 -1
- package/dist/EventsRouter-C_J0M3uO.js.map +1 -1
- package/dist/ILogger-BW8GM-YZ.d.ts +64 -0
- package/dist/{Logger-iSjA-DWN.d.ts → Logger-DyfkPk7u.d.ts} +2 -2
- package/dist/{MessageCommandParser-B_BEQ3p8.js → MessageCommandParser-TPEPhjvx.js} +2 -2
- package/dist/{MessageCommandParser-B_BEQ3p8.js.map → MessageCommandParser-TPEPhjvx.js.map} +1 -1
- package/dist/PluginCommon-Di1xIa8d.js.map +1 -1
- package/dist/{RuntimePlugin-CBgBLXTG.js → RuntimePlugin-eTdFJwGd.js} +2 -1
- package/dist/RuntimePlugin-eTdFJwGd.js.map +1 -0
- package/dist/analytics/analytics-engine.d.ts +2 -2
- package/dist/analytics/analytics-engine.js +10 -10
- package/dist/analytics/analytics-provider.d.ts +2 -2
- package/dist/analytics/constants.js +1 -1
- package/dist/analytics/utils.js +10 -10
- package/dist/{analytics-engine-nkyqvYAE.d.ts → analytics-engine-CtMbeudW.d.ts} +89 -26
- package/dist/app/commands/AppCommandRunner.d.ts +2 -2
- package/dist/app/commands/AppCommandRunner.js +10 -10
- package/dist/app/commands/Context.d.ts +2 -2
- package/dist/app/commands/Context.js +10 -10
- package/dist/app/commands/MessageCommandParser.js +2 -2
- package/dist/app/events/EventWorkerContext.d.ts +3 -3
- package/dist/app/events/EventWorkerContext.js +1 -1
- package/dist/app/handlers/AppCommandHandler.d.ts +2 -2
- package/dist/app/handlers/AppCommandHandler.js +10 -10
- package/dist/app/handlers/AppEventsHandler.d.ts +2 -2
- package/dist/app/handlers/AppEventsHandler.js +10 -10
- package/dist/app/index.d.ts +3 -3
- package/dist/app/index.js +12 -12
- package/dist/app/interrupt/signals.d.ts +2 -2
- package/dist/app/interrupt/signals.js +5 -5
- package/dist/app/middlewares/permissions.d.ts +42 -0
- package/dist/app/middlewares/permissions.js +38 -0
- package/dist/app/register/CommandRegistrar.d.ts +2 -2
- package/dist/app/register/CommandRegistrar.js +10 -10
- package/dist/app-process-CjMovpoZ.js.map +1 -1
- package/dist/{build-BoGqWPIS.js → build-D52II1qS.js} +4 -3
- package/dist/build-D52II1qS.js.map +1 -0
- package/dist/cli/build.d.ts +2 -2
- package/dist/cli/build.js +11 -11
- package/dist/cli/common.d.ts +2 -2
- package/dist/cli/development.js +12 -12
- package/dist/cli/development.js.map +1 -1
- package/dist/cli/generators.js +33 -5
- package/dist/cli/generators.js.map +1 -1
- package/dist/cli/information.js +1 -1
- package/dist/cli/information.js.map +1 -1
- package/dist/cli/init.js +11 -11
- package/dist/cli/production.js +11 -11
- package/dist/cli/production.js.map +1 -1
- package/dist/{commandkit-5VMG2thU.js → commandkit-BPtNCbV8.js} +363 -202
- package/dist/commandkit-BPtNCbV8.js.map +1 -0
- package/dist/commandkit.d.ts +2 -2
- package/dist/commandkit.js +10 -10
- package/dist/common-DNADUU3_.js.map +1 -1
- package/dist/common-vnMIelAE.js.map +1 -1
- package/dist/components/index.js +10 -10
- package/dist/components/v1/button/Button.js +10 -10
- package/dist/components/v1/button/ButtonKit.js +10 -10
- package/dist/components/v1/modal/Modal.js +10 -10
- package/dist/components/v1/modal/ModalKit.js +10 -10
- package/dist/components/v1/select-menu/ChannelSelectMenuKit.js +10 -10
- package/dist/components/v1/select-menu/MentionableSelectMenuKit.js +10 -10
- package/dist/components/v1/select-menu/RoleSelectMenuKit.js +10 -10
- package/dist/components/v1/select-menu/SelectMenu.js +10 -10
- package/dist/components/v1/select-menu/StringSelectMenuKit.js +10 -10
- package/dist/components/v1/select-menu/UserSelectMenuKit.js +10 -10
- package/dist/config/config.d.ts +3 -3
- package/dist/config/config.js +10 -10
- package/dist/config/default.d.ts +2 -2
- package/dist/config/default.js +10 -10
- package/dist/config/loader.d.ts +2 -2
- package/dist/config/loader.js +10 -10
- package/dist/config/types.d.ts +2 -2
- package/dist/config/utils.d.ts +2 -2
- package/dist/config/utils.js +1 -1
- package/dist/{config-C1msSu1G.d.ts → config-E42bG1RK.d.ts} +2 -2
- package/dist/constants-4oxxvaJA.js.map +1 -1
- package/dist/constants-B5_Ta7PR.js.map +1 -1
- package/dist/{constants-CUND8XkG.js → constants-DxfYtA6t.js} +1 -1
- package/dist/{constants-CUND8XkG.js.map → constants-DxfYtA6t.js.map} +1 -1
- package/dist/container-z621KfH5.js.map +1 -1
- package/dist/context/async-context.d.ts +2 -2
- package/dist/context/async-context.js +10 -10
- package/dist/context/environment.d.ts +2 -2
- package/dist/context/environment.js +10 -10
- package/dist/dotprops-C_4L7RPD.js.map +1 -1
- package/dist/element-Bak9llw_.js.map +1 -1
- package/dist/env-_68PRRoA.js.map +1 -1
- package/dist/{error-codes-BzoEctmD.d.ts → error-codes-B4TyW4Ct.d.ts} +2 -2
- package/dist/{error-codes-C-ViHyu-.js → error-codes-Ds0bnPvT.js} +2 -2
- package/dist/error-codes-Ds0bnPvT.js.map +1 -0
- package/dist/events/CommandKitEventsChannel.d.ts +2 -2
- package/dist/{feature-flags-C44dggkN.js → feature-flags-BZ3mW1xe.js} +5 -5
- package/dist/{feature-flags-C44dggkN.js.map → feature-flags-BZ3mW1xe.js.map} +1 -1
- package/dist/file-DVZC0QXI.js.map +1 -1
- package/dist/flags/FlagProvider.d.ts +2 -2
- package/dist/flags/FlagProvider.js.map +1 -1
- package/dist/flags/feature-flags.d.ts +2 -2
- package/dist/flags/feature-flags.js +11 -11
- package/dist/flags/store.d.ts +2 -2
- package/dist/helpers-BUlN3lIz.js.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.js +23 -18
- package/dist/index.js.map +1 -0
- package/dist/{init-ZjceQTSt.js → init-BjFLN5XX.js} +2 -2
- package/dist/{init-ZjceQTSt.js.map → init-BjFLN5XX.js.map} +1 -1
- package/dist/kv/kv.js.map +1 -1
- package/dist/logger/DefaultLogger.d.ts +2 -2
- package/dist/logger/DefaultLogger.js +10 -10
- package/dist/logger/ILogger.d.ts +1 -1
- package/dist/logger/Logger.d.ts +2 -2
- package/dist/logger/Logger.js +10 -10
- package/dist/logger/NoopLogger.d.ts +41 -11
- package/dist/logger/NoopLogger.js +5 -25
- package/dist/logger/NoopLogger.js.map +1 -1
- package/dist/media-gallery-CIKypjbJ.js.map +1 -1
- package/dist/plugins/CompilerPlugin.d.ts +2 -2
- package/dist/plugins/PluginCommon.d.ts +2 -2
- package/dist/plugins/RuntimePlugin.d.ts +2 -2
- package/dist/plugins/RuntimePlugin.js +1 -1
- package/dist/plugins/index.d.ts +2 -2
- package/dist/plugins/index.js +10 -10
- package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.d.ts +2 -2
- package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js +10 -10
- package/dist/plugins/plugin-runtime/CompilerPluginRuntime.d.ts +2 -2
- package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js +10 -10
- package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.d.ts +2 -2
- package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js +10 -10
- package/dist/plugins/plugin-runtime/builtin/MacroPlugin.d.ts +2 -2
- package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js +10 -10
- package/dist/plugins/plugin-runtime/runtime.d.ts +2 -2
- package/dist/plugins/plugin-runtime/runtime.js +1 -1
- package/dist/plugins/types.d.ts +2 -2
- package/dist/{resolve-file-url-DHTQj2mU.js → resolve-file-url-DYjaxg_S.js} +1 -1
- package/dist/{resolve-file-url-DHTQj2mU.js.map → resolve-file-url-DYjaxg_S.js.map} +1 -1
- package/dist/section-CuYr0Inu.js.map +1 -1
- package/dist/separator-DLdWBjSN.js.map +1 -1
- package/dist/serde-CHySNpFr.js.map +1 -1
- package/dist/{signals-BQbEfy3X.d.ts → signals-SHg7J1U_.d.ts} +4 -7
- package/dist/{signals-DHdYrd-n.js → signals-r7qPAvOR.js} +12 -15
- package/dist/signals-r7qPAvOR.js.map +1 -0
- package/dist/store-CiqLHedg.js.map +1 -1
- package/dist/text-display--p2-BoUa.js.map +1 -1
- package/dist/type-checker-1Iu1jJcy.js.map +1 -1
- package/dist/types-package-DrnIdWLg.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/utils/dev-hooks.d.ts +2 -2
- package/dist/utils/dev-hooks.js +10 -10
- package/dist/utils/error-codes.d.ts +1 -1
- package/dist/utils/error-codes.js +1 -1
- package/dist/utils/resolve-file-url.js +1 -1
- package/dist/utils/useful-stuff/async-queue.js.map +1 -1
- package/dist/utils/useful-stuff/mutex.js.map +1 -1
- package/dist/utils/useful-stuff/ratelimiter.js.map +1 -1
- package/dist/utils/useful-stuff/semaphore.js.map +1 -1
- package/dist/utils/utilities.js +10 -10
- package/dist/utils/warn-unstable.js.map +1 -1
- package/dist/utils-DCSnVAZ6.js.map +1 -1
- package/dist/{utils-BnXM4eKk.js → utils-KsNof0Xz.js} +1 -1
- package/dist/{utils-BnXM4eKk.js.map → utils-KsNof0Xz.js.map} +1 -1
- package/dist/{version-D8HlFOxx.js → version-DBXZ4wRb.js} +2 -2
- package/dist/{version-D8HlFOxx.js.map → version-DBXZ4wRb.js.map} +1 -1
- package/dist/version.js +1 -1
- package/package.json +60 -59
- package/dist/ILogger-DBGON5wx.d.ts +0 -34
- package/dist/RuntimePlugin-CBgBLXTG.js.map +0 -1
- package/dist/build-BoGqWPIS.js.map +0 -1
- package/dist/commandkit-5VMG2thU.js.map +0 -1
- package/dist/error-codes-C-ViHyu-.js.map +0 -1
- package/dist/signals-DHdYrd-n.js.map +0 -1
- /package/dist/{runtime-5fxB4uhe.js → runtime-DB9CiPfe.js} +0 -0
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
const require_chunk = require('./chunk-nOFOJqeH.js');
|
|
2
2
|
const require_colors = require('./colors-Cd4Oz-r-.js');
|
|
3
|
-
const require_error_codes = require('./error-codes-
|
|
3
|
+
const require_error_codes = require('./error-codes-Ds0bnPvT.js');
|
|
4
4
|
const require_element = require('./element-Bak9llw_.js');
|
|
5
5
|
const require_EventInterceptor = require('./EventInterceptor-CQ4PBpBJ.js');
|
|
6
6
|
const require_constants = require('./constants-B5_Ta7PR.js');
|
|
7
7
|
const require_CompilerPlugin = require('./CompilerPlugin-CjoZAAR8.js');
|
|
8
|
-
const require_RuntimePlugin = require('./RuntimePlugin-
|
|
9
|
-
const
|
|
10
|
-
const
|
|
8
|
+
const require_RuntimePlugin = require('./RuntimePlugin-eTdFJwGd.js');
|
|
9
|
+
const require_resolve_file_url = require('./resolve-file-url-DYjaxg_S.js');
|
|
10
|
+
const require_utils = require('./utils-KsNof0Xz.js');
|
|
11
11
|
const require_types_package = require('./types-package-DrnIdWLg.js');
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const require_MessageCommandParser = require('./MessageCommandParser-
|
|
12
|
+
const require_constants$1 = require('./constants-DxfYtA6t.js');
|
|
13
|
+
const require_EventWorkerContext = require('./EventWorkerContext-TZIKxVCu.js');
|
|
14
|
+
const require_signals = require('./signals-r7qPAvOR.js');
|
|
15
|
+
const require_MessageCommandParser = require('./MessageCommandParser-TPEPhjvx.js');
|
|
16
16
|
const require_CommandsRouter = require('./CommandsRouter-tMAivEfv.js');
|
|
17
17
|
const require_EventsRouter = require('./EventsRouter-C_J0M3uO.js');
|
|
18
18
|
const require_common = require('./common-DNADUU3_.js');
|
|
@@ -24,6 +24,7 @@ const node_async_hooks = require_chunk.__toESM(require("node:async_hooks"));
|
|
|
24
24
|
const node_fs = require_chunk.__toESM(require("node:fs"));
|
|
25
25
|
const node_path = require_chunk.__toESM(require("node:path"));
|
|
26
26
|
const node_crypto = require_chunk.__toESM(require("node:crypto"));
|
|
27
|
+
const util = require_chunk.__toESM(require("util"));
|
|
27
28
|
const __rollup_plugin_json = require_chunk.__toESM(require("@rollup/plugin-json"));
|
|
28
29
|
|
|
29
30
|
//#region src/context/async-context.ts
|
|
@@ -65,6 +66,7 @@ function makeContextAwareFunction(env, fn, finalizer) {
|
|
|
65
66
|
return result;
|
|
66
67
|
} catch (e) {
|
|
67
68
|
if (!require_error_codes.isCommandKitError(e)) env.setExecutionError(e);
|
|
69
|
+
else throw e;
|
|
68
70
|
} finally {
|
|
69
71
|
if (typeof finalizer === "function") setImmediate(async () => {
|
|
70
72
|
try {
|
|
@@ -1285,47 +1287,57 @@ var DefaultLogger = class {
|
|
|
1285
1287
|
const label = this._getLevelLabel(level);
|
|
1286
1288
|
return `${label}${require_colors.colors_default.dim(BoxChars.vertical)} ${require_colors.colors_default.dim(timestamp)}`;
|
|
1287
1289
|
}
|
|
1288
|
-
_log(level,
|
|
1290
|
+
_log(level, message) {
|
|
1289
1291
|
const prefix = this._getPrefix(level);
|
|
1290
1292
|
const context$1 = this._getContext();
|
|
1291
1293
|
const colorFn = TextColorMap[level];
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
+
let processedMessage = message;
|
|
1295
|
+
if (message instanceof Error) processedMessage = `${message.message}\n${message.stack}`;
|
|
1296
|
+
if (context$1) this.logger.log(`${prefix}\n${context$1} ${require_colors.colors_default.dim(BoxChars.corner)}`, colorFn(processedMessage));
|
|
1297
|
+
else this.logger.log(`${prefix} ${require_colors.colors_default.dim(BoxChars.corner)}`, colorFn(processedMessage));
|
|
1294
1298
|
}
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1299
|
+
_logTemplate(level, strings, ...values) {
|
|
1300
|
+
const prefix = this._getPrefix(level);
|
|
1301
|
+
const context$1 = this._getContext();
|
|
1302
|
+
const colorFn = TextColorMap[level];
|
|
1303
|
+
let result = "";
|
|
1304
|
+
for (let i = 0; i < strings.length; i++) {
|
|
1305
|
+
result += strings[i];
|
|
1306
|
+
if (i < values.length) {
|
|
1307
|
+
const value = values[i];
|
|
1308
|
+
if (value instanceof Error) result += `${value.message}\n${value.stack}`;
|
|
1309
|
+
else if (value !== null && typeof value === "object") result += (0, util.inspect)(value, {
|
|
1310
|
+
colors: true,
|
|
1311
|
+
depth: 2
|
|
1312
|
+
});
|
|
1313
|
+
else result += value;
|
|
1314
|
+
}
|
|
1315
|
+
}
|
|
1316
|
+
if (context$1) this.logger.log(`${prefix}\n${context$1} ${require_colors.colors_default.dim(BoxChars.corner)}`, colorFn(result));
|
|
1317
|
+
else this.logger.log(`${prefix} ${require_colors.colors_default.dim(BoxChars.corner)}`, colorFn(result));
|
|
1301
1318
|
}
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
*/
|
|
1306
|
-
error(...args) {
|
|
1307
|
-
this._log(LogLevel.ERROR, ...args);
|
|
1319
|
+
debug(messageOrStrings, ...values) {
|
|
1320
|
+
if (this._isTemplateStringsArray(messageOrStrings)) this._logTemplate(LogLevel.DEBUG, messageOrStrings, ...values);
|
|
1321
|
+
else this._log(LogLevel.DEBUG, messageOrStrings);
|
|
1308
1322
|
}
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
*/
|
|
1313
|
-
log(...args) {
|
|
1314
|
-
this._log(LogLevel.DEFAULT, ...args);
|
|
1323
|
+
error(messageOrStrings, ...values) {
|
|
1324
|
+
if (this._isTemplateStringsArray(messageOrStrings)) this._logTemplate(LogLevel.ERROR, messageOrStrings, ...values);
|
|
1325
|
+
else this._log(LogLevel.ERROR, messageOrStrings);
|
|
1315
1326
|
}
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
*/
|
|
1320
|
-
info(...args) {
|
|
1321
|
-
this._log(LogLevel.INFO, ...args);
|
|
1327
|
+
log(messageOrStrings, ...values) {
|
|
1328
|
+
if (this._isTemplateStringsArray(messageOrStrings)) this._logTemplate(LogLevel.DEFAULT, messageOrStrings, ...values);
|
|
1329
|
+
else this._log(LogLevel.DEFAULT, messageOrStrings);
|
|
1322
1330
|
}
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
warn(...
|
|
1328
|
-
this.
|
|
1331
|
+
info(messageOrStrings, ...values) {
|
|
1332
|
+
if (this._isTemplateStringsArray(messageOrStrings)) this._logTemplate(LogLevel.INFO, messageOrStrings, ...values);
|
|
1333
|
+
else this._log(LogLevel.INFO, messageOrStrings);
|
|
1334
|
+
}
|
|
1335
|
+
warn(messageOrStrings, ...values) {
|
|
1336
|
+
if (this._isTemplateStringsArray(messageOrStrings)) this._logTemplate(LogLevel.WARN, messageOrStrings, ...values);
|
|
1337
|
+
else this._log(LogLevel.WARN, messageOrStrings);
|
|
1338
|
+
}
|
|
1339
|
+
_isTemplateStringsArray(value) {
|
|
1340
|
+
return Array.isArray(value) && "raw" in value && Array.isArray(value.raw);
|
|
1329
1341
|
}
|
|
1330
1342
|
};
|
|
1331
1343
|
|
|
@@ -1349,8 +1361,8 @@ function createLogger(options) {
|
|
|
1349
1361
|
const impl = { configure(options$1) {
|
|
1350
1362
|
opt = options$1;
|
|
1351
1363
|
} };
|
|
1352
|
-
for (const method of methods) impl[method] = (...
|
|
1353
|
-
opt.provider[method](...
|
|
1364
|
+
for (const method of methods) impl[method] = (...message) => {
|
|
1365
|
+
opt.provider[method](...message);
|
|
1354
1366
|
};
|
|
1355
1367
|
return impl;
|
|
1356
1368
|
}
|
|
@@ -1398,6 +1410,13 @@ var CommandKitPluginRuntime = class {
|
|
|
1398
1410
|
return p;
|
|
1399
1411
|
}
|
|
1400
1412
|
/**
|
|
1413
|
+
* Pre-loads the specified entrypoints for the given plugin.
|
|
1414
|
+
* @param plugin The plugin to pre-load.
|
|
1415
|
+
*/
|
|
1416
|
+
async preload(plugin) {
|
|
1417
|
+
for (const entrypoint of plugin.preload) await import(require_resolve_file_url.toFileURL(`${getCurrentDirectory()}/${entrypoint}`));
|
|
1418
|
+
}
|
|
1419
|
+
/**
|
|
1401
1420
|
* Soft registers a plugin in the runtime.
|
|
1402
1421
|
* @param plugin The plugin to be registered.
|
|
1403
1422
|
*/
|
|
@@ -1405,9 +1424,11 @@ var CommandKitPluginRuntime = class {
|
|
|
1405
1424
|
const pluginName = plugin.name;
|
|
1406
1425
|
if (this.plugins.has(pluginName)) return;
|
|
1407
1426
|
try {
|
|
1427
|
+
await this.preload(plugin);
|
|
1408
1428
|
await plugin.activate(this);
|
|
1409
1429
|
this.plugins.set(pluginName, plugin);
|
|
1410
1430
|
} catch (e) {
|
|
1431
|
+
this.plugins.delete(pluginName);
|
|
1411
1432
|
throw new Error(`Failed to activate plugin "${pluginName}": ${(e === null || e === void 0 ? void 0 : e.stack) || e}`);
|
|
1412
1433
|
}
|
|
1413
1434
|
}
|
|
@@ -1420,9 +1441,11 @@ var CommandKitPluginRuntime = class {
|
|
|
1420
1441
|
const pluginName = plugin.name;
|
|
1421
1442
|
if (this.plugins.has(pluginName)) throw new Error(`Plugin with name "${pluginName}" already exists.`);
|
|
1422
1443
|
try {
|
|
1444
|
+
await this.preload(plugin);
|
|
1423
1445
|
await plugin.activate(this);
|
|
1424
1446
|
this.plugins.set(pluginName, plugin);
|
|
1425
1447
|
} catch (e) {
|
|
1448
|
+
this.plugins.delete(pluginName);
|
|
1426
1449
|
throw new Error(`Failed to activate plugin "${pluginName}": ${(e === null || e === void 0 ? void 0 : e.stack) || e}`);
|
|
1427
1450
|
}
|
|
1428
1451
|
}
|
|
@@ -1464,7 +1487,7 @@ var CommandKitPluginRuntime = class {
|
|
|
1464
1487
|
result = await f(this, plugin);
|
|
1465
1488
|
} catch (e) {
|
|
1466
1489
|
if (require_error_codes.isErrorType(e, require_error_codes.CommandKitErrorCodes.PluginCaptureHandle)) return true;
|
|
1467
|
-
Logger.error
|
|
1490
|
+
Logger.error`Plugin "${plugin.name}" failed: ${(e === null || e === void 0 ? void 0 : e.stack) || e}`;
|
|
1468
1491
|
}
|
|
1469
1492
|
return result;
|
|
1470
1493
|
}
|
|
@@ -1602,7 +1625,7 @@ var CompilerPluginRuntime = class {
|
|
|
1602
1625
|
await ((_plugin$activate = plugin.activate) === null || _plugin$activate === void 0 ? void 0 : _plugin$activate.call(plugin, this));
|
|
1603
1626
|
});
|
|
1604
1627
|
} catch (e) {
|
|
1605
|
-
|
|
1628
|
+
Logger.error`Plugin ${plugin.name} failed to activate with ${e}`;
|
|
1606
1629
|
}
|
|
1607
1630
|
this.initialized = true;
|
|
1608
1631
|
}
|
|
@@ -1621,7 +1644,7 @@ var CompilerPluginRuntime = class {
|
|
|
1621
1644
|
await ((_plugin$deactivate = plugin.deactivate) === null || _plugin$deactivate === void 0 ? void 0 : _plugin$deactivate.call(plugin, this));
|
|
1622
1645
|
});
|
|
1623
1646
|
} catch (e) {
|
|
1624
|
-
|
|
1647
|
+
Logger.error`Plugin ${plugin.name} failed to deactivate with ${e}`;
|
|
1625
1648
|
}
|
|
1626
1649
|
this.initialized = false;
|
|
1627
1650
|
}
|
|
@@ -1723,6 +1746,7 @@ const defaultConfig = {
|
|
|
1723
1746
|
},
|
|
1724
1747
|
typedCommands: true,
|
|
1725
1748
|
disablePrefixCommands: false,
|
|
1749
|
+
disablePermissionsMiddleware: false,
|
|
1726
1750
|
showUnknownPrefixCommandsWarning: true,
|
|
1727
1751
|
antiCrashScript: {
|
|
1728
1752
|
development: true,
|
|
@@ -1781,7 +1805,8 @@ function defineConfig(config = {}) {
|
|
|
1781
1805
|
antiCrashScript: {
|
|
1782
1806
|
...defaultConfig.antiCrashScript,
|
|
1783
1807
|
...config.antiCrashScript
|
|
1784
|
-
}
|
|
1808
|
+
},
|
|
1809
|
+
disablePermissionsMiddleware: config.disablePermissionsMiddleware ?? defaultConfig.disablePermissionsMiddleware
|
|
1785
1810
|
};
|
|
1786
1811
|
return defined;
|
|
1787
1812
|
}
|
|
@@ -2415,37 +2440,11 @@ var Context = class Context {
|
|
|
2415
2440
|
if (this.isMessage()) return this.config.messageCommandParser.getArgs();
|
|
2416
2441
|
return [];
|
|
2417
2442
|
}
|
|
2418
|
-
/**
|
|
2419
|
-
* Stops upcoming middleware or current command execution.
|
|
2420
|
-
* If this is called inside pre-stage middleware, the next run will be the actual command, skipping all other pre-stage middlewares.
|
|
2421
|
-
* If this is called inside a command itself, it will skip all post-stage middlewares.
|
|
2422
|
-
* If this is called inside post-stage middleware, it will skip all other post-stage middlewares.
|
|
2423
|
-
*/
|
|
2424
|
-
exit() {
|
|
2425
|
-
require_signals.exitMiddleware();
|
|
2426
|
-
}
|
|
2427
2443
|
};
|
|
2428
2444
|
/**
|
|
2429
2445
|
* Extended context class for middleware execution with additional control methods.
|
|
2430
2446
|
*/
|
|
2431
2447
|
var MiddlewareContext = class extends Context {
|
|
2432
|
-
/**
|
|
2433
|
-
* @private
|
|
2434
|
-
* @internal
|
|
2435
|
-
*/
|
|
2436
|
-
#cancel = false;
|
|
2437
|
-
/**
|
|
2438
|
-
* Whether the command execution was cancelled.
|
|
2439
|
-
*/
|
|
2440
|
-
get cancelled() {
|
|
2441
|
-
return this.#cancel;
|
|
2442
|
-
}
|
|
2443
|
-
/**
|
|
2444
|
-
* Cancels the command execution.
|
|
2445
|
-
*/
|
|
2446
|
-
cancel() {
|
|
2447
|
-
this.#cancel = true;
|
|
2448
|
-
}
|
|
2449
2448
|
/**
|
|
2450
2449
|
* Sets command runner function to wrap the command execution.
|
|
2451
2450
|
* @param fn The function to set.
|
|
@@ -2480,6 +2479,7 @@ var AppCommandRunner = class {
|
|
|
2480
2479
|
* Handles the complete command lifecycle including before/after middleware execution.
|
|
2481
2480
|
* @param prepared - The prepared command execution data
|
|
2482
2481
|
* @param source - The source interaction or message that triggered the command
|
|
2482
|
+
* @param options - The options for running the command
|
|
2483
2483
|
*/
|
|
2484
2484
|
async runCommand(prepared, source, options) {
|
|
2485
2485
|
const { commandkit: commandkit$1 } = this.handler;
|
|
@@ -2492,119 +2492,126 @@ var AppCommandRunner = class {
|
|
|
2492
2492
|
env.variables.set("currentCommandName", prepared.command.command.name);
|
|
2493
2493
|
env.variables.set("execHandlerKind", executionMode);
|
|
2494
2494
|
env.variables.set("customHandler", (options === null || options === void 0 ? void 0 : options.handler) ?? null);
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
try {
|
|
2512
|
-
await middleware.data.beforeExecute(
|
|
2495
|
+
try {
|
|
2496
|
+
const middlewareCtx = new MiddlewareContext(commandkit$1, {
|
|
2497
|
+
command: prepared.command,
|
|
2498
|
+
environment: env,
|
|
2499
|
+
executionMode,
|
|
2500
|
+
interaction: !(source instanceof discord_js.Message) ? source : null,
|
|
2501
|
+
message: source instanceof discord_js.Message ? source : null,
|
|
2502
|
+
forwarded: false,
|
|
2503
|
+
customArgs: { setCommandRunner: (fn) => {
|
|
2504
|
+
runCommand = fn;
|
|
2505
|
+
} },
|
|
2506
|
+
messageCommandParser: prepared.messageCommandParser
|
|
2507
|
+
});
|
|
2508
|
+
const beforeMiddlewares = prepared.middlewares.filter((m) => m.data.beforeExecute);
|
|
2509
|
+
let beforeMiddlewaresStopped = false;
|
|
2510
|
+
if (beforeMiddlewares.length) await provideContext(env, async () => {
|
|
2511
|
+
for (const middleware of beforeMiddlewares) try {
|
|
2512
|
+
await middleware.data.beforeExecute(middlewareCtx);
|
|
2513
2513
|
} catch (e) {
|
|
2514
|
-
if (require_error_codes.isErrorType(e, require_error_codes.CommandKitErrorCodes.
|
|
2515
|
-
|
|
2516
|
-
|
|
2514
|
+
if (require_error_codes.isErrorType(e, require_error_codes.CommandKitErrorCodes.StopMiddlewares)) {
|
|
2515
|
+
beforeMiddlewaresStopped = true;
|
|
2516
|
+
Logger.debug(`Middleware propagation stopped for command "${middlewareCtx.commandName}". stopMiddlewares() was called inside a beforeExecute function at "${middleware.middleware.relativePath}"`);
|
|
2517
|
+
break;
|
|
2517
2518
|
}
|
|
2518
2519
|
if (require_error_codes.isErrorType(e, [require_error_codes.CommandKitErrorCodes.ForwardedCommand, require_error_codes.CommandKitErrorCodes.InvalidCommandPrefix])) continue;
|
|
2519
2520
|
throw e;
|
|
2520
2521
|
}
|
|
2521
|
-
}
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
|
|
2538
|
-
|
|
2539
|
-
|
|
2540
|
-
|
|
2522
|
+
});
|
|
2523
|
+
let result;
|
|
2524
|
+
let stopMiddlewaresCalledInCmd = false;
|
|
2525
|
+
if (!beforeMiddlewaresStopped) {
|
|
2526
|
+
const targetData = prepared.command.data;
|
|
2527
|
+
const fn = targetData[(options === null || options === void 0 ? void 0 : options.handler) || executionMode];
|
|
2528
|
+
if (!fn) Logger.warn(`Command ${prepared.command.command.name} has no handler for ${executionMode}`);
|
|
2529
|
+
const analytics = commandkit$1.analytics;
|
|
2530
|
+
if (fn) try {
|
|
2531
|
+
const _executeCommand = makeContextAwareFunction(env, async () => {
|
|
2532
|
+
env.registerDeferredFunction(async (env$1) => {
|
|
2533
|
+
var _prepared$command2;
|
|
2534
|
+
env$1.markEnd();
|
|
2535
|
+
const error = env$1.getExecutionError();
|
|
2536
|
+
const marker = env$1.getMarker();
|
|
2537
|
+
const time = `${env$1.getExecutionTime().toFixed(2)}ms`;
|
|
2538
|
+
if (error) {
|
|
2539
|
+
var _prepared$command;
|
|
2540
|
+
Logger.error`[${marker} - ${time}] Error executing command: ${error}`;
|
|
2541
|
+
const commandName$1 = ((_prepared$command = prepared.command) === null || _prepared$command === void 0 || (_prepared$command = _prepared$command.data) === null || _prepared$command === void 0 || (_prepared$command = _prepared$command.command) === null || _prepared$command === void 0 ? void 0 : _prepared$command.name) ?? prepared.command.command.name;
|
|
2542
|
+
await analytics.track({
|
|
2543
|
+
name: require_constants$1.AnalyticsEvents.COMMAND_EXECUTION,
|
|
2544
|
+
id: commandName$1,
|
|
2545
|
+
data: {
|
|
2546
|
+
error: true,
|
|
2547
|
+
executionTime: env$1.getExecutionTime().toFixed(2),
|
|
2548
|
+
type: executionMode,
|
|
2549
|
+
command: commandName$1
|
|
2550
|
+
}
|
|
2551
|
+
});
|
|
2552
|
+
return;
|
|
2553
|
+
}
|
|
2554
|
+
Logger.info(`[${marker} - ${time}] Command executed successfully`);
|
|
2555
|
+
const commandName = ((_prepared$command2 = prepared.command) === null || _prepared$command2 === void 0 || (_prepared$command2 = _prepared$command2.data) === null || _prepared$command2 === void 0 || (_prepared$command2 = _prepared$command2.command) === null || _prepared$command2 === void 0 ? void 0 : _prepared$command2.name) ?? prepared.command.command.name;
|
|
2541
2556
|
await analytics.track({
|
|
2542
2557
|
name: require_constants$1.AnalyticsEvents.COMMAND_EXECUTION,
|
|
2543
|
-
id: commandName
|
|
2558
|
+
id: commandName,
|
|
2544
2559
|
data: {
|
|
2545
|
-
error:
|
|
2560
|
+
error: false,
|
|
2546
2561
|
executionTime: env$1.getExecutionTime().toFixed(2),
|
|
2547
2562
|
type: executionMode,
|
|
2548
|
-
command: commandName
|
|
2563
|
+
command: commandName
|
|
2549
2564
|
}
|
|
2550
2565
|
});
|
|
2551
|
-
return;
|
|
2552
|
-
}
|
|
2553
|
-
Logger.info(`[${marker} - ${time}] Command executed successfully`);
|
|
2554
|
-
const commandName = ((_prepared$command2 = prepared.command) === null || _prepared$command2 === void 0 || (_prepared$command2 = _prepared$command2.data) === null || _prepared$command2 === void 0 || (_prepared$command2 = _prepared$command2.command) === null || _prepared$command2 === void 0 ? void 0 : _prepared$command2.name) ?? prepared.command.command.name;
|
|
2555
|
-
await analytics.track({
|
|
2556
|
-
name: require_constants$1.AnalyticsEvents.COMMAND_EXECUTION,
|
|
2557
|
-
id: commandName,
|
|
2558
|
-
data: {
|
|
2559
|
-
error: false,
|
|
2560
|
-
executionTime: env$1.getExecutionTime().toFixed(2),
|
|
2561
|
-
type: executionMode,
|
|
2562
|
-
command: commandName
|
|
2563
|
-
}
|
|
2564
2566
|
});
|
|
2567
|
+
return fn(middlewareCtx.clone());
|
|
2568
|
+
}, this.#finalizer.bind(this));
|
|
2569
|
+
const executeCommand = runCommand != null ? runCommand(_executeCommand) : _executeCommand;
|
|
2570
|
+
env.markStart(prepared.command.data.command.name);
|
|
2571
|
+
const res = await commandkit$1.plugins.execute(async (ctx, plugin) => {
|
|
2572
|
+
return plugin.executeCommand(ctx, env, source, prepared, executeCommand);
|
|
2565
2573
|
});
|
|
2566
|
-
|
|
2567
|
-
}
|
|
2568
|
-
|
|
2569
|
-
|
|
2570
|
-
|
|
2571
|
-
|
|
2572
|
-
|
|
2573
|
-
|
|
2574
|
-
|
|
2575
|
-
if (require_error_codes.isErrorType(e, require_error_codes.CommandKitErrorCodes.ExitMiddleware)) middlewaresCanceled = true;
|
|
2576
|
-
if (!require_error_codes.isErrorType(e, [require_error_codes.CommandKitErrorCodes.ForwardedCommand, require_error_codes.CommandKitErrorCodes.ExitMiddleware])) {
|
|
2577
|
-
if (shouldThrowOnError) throw e;
|
|
2578
|
-
Logger.error(e);
|
|
2574
|
+
if (!res) result = await executeCommand();
|
|
2575
|
+
} catch (e) {
|
|
2576
|
+
if (require_error_codes.isErrorType(e, require_error_codes.CommandKitErrorCodes.StopMiddlewares)) {
|
|
2577
|
+
stopMiddlewaresCalledInCmd = true;
|
|
2578
|
+
Logger.debug(`Middleware propagation stopped for command "${middlewareCtx.commandName}". stopMiddlewares() was called by the command itself`);
|
|
2579
|
+
} else if (!require_error_codes.isErrorType(e, require_error_codes.CommandKitErrorCodes.ForwardedCommand)) {
|
|
2580
|
+
if (shouldThrowOnError) throw e;
|
|
2581
|
+
Logger.error`${e}`;
|
|
2582
|
+
}
|
|
2579
2583
|
}
|
|
2580
|
-
}
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
try {
|
|
2589
|
-
await middleware.data.afterExecute(ctx);
|
|
2584
|
+
} else result = {
|
|
2585
|
+
error: true,
|
|
2586
|
+
message: "Command execution was cancelled by a beforeExecute middleware."
|
|
2587
|
+
};
|
|
2588
|
+
const afterMiddlewares = prepared.middlewares.filter((m) => m.data.afterExecute);
|
|
2589
|
+
if (!beforeMiddlewaresStopped && !stopMiddlewaresCalledInCmd && afterMiddlewares.length) await provideContext(env, async () => {
|
|
2590
|
+
for (const middleware of afterMiddlewares) try {
|
|
2591
|
+
await middleware.data.afterExecute(middlewareCtx);
|
|
2590
2592
|
} catch (e) {
|
|
2591
|
-
if (require_error_codes.isErrorType(e, require_error_codes.CommandKitErrorCodes.
|
|
2593
|
+
if (require_error_codes.isErrorType(e, require_error_codes.CommandKitErrorCodes.StopMiddlewares)) {
|
|
2594
|
+
Logger.debug(`Middleware propagation stopped for command "${middlewareCtx.commandName}". stopMiddlewares() was called inside an afterExecute function at "${middleware.middleware.relativePath}"`);
|
|
2595
|
+
break;
|
|
2596
|
+
}
|
|
2592
2597
|
throw e;
|
|
2593
2598
|
}
|
|
2594
|
-
}
|
|
2595
|
-
|
|
2596
|
-
|
|
2599
|
+
});
|
|
2600
|
+
return result;
|
|
2601
|
+
} finally {
|
|
2602
|
+
await this.#finalizer(env, false);
|
|
2603
|
+
}
|
|
2597
2604
|
}
|
|
2598
2605
|
/**
|
|
2599
2606
|
* @private
|
|
2600
2607
|
* @internal
|
|
2601
2608
|
* Finalizes command execution by running deferred functions and plugin cleanup.
|
|
2602
2609
|
*/
|
|
2603
|
-
async #finalizer() {
|
|
2604
|
-
|
|
2610
|
+
async #finalizer(env, runPlugins = true) {
|
|
2611
|
+
env ??= useEnvironment();
|
|
2605
2612
|
await env.runDeferredFunctions();
|
|
2606
2613
|
env.clearAllDeferredFunctions();
|
|
2607
|
-
await this.handler.commandkit.plugins.execute(async (ctx, plugin) => {
|
|
2614
|
+
if (runPlugins) await this.handler.commandkit.plugins.execute(async (ctx, plugin) => {
|
|
2608
2615
|
await plugin.onAfterCommand(ctx, env);
|
|
2609
2616
|
});
|
|
2610
2617
|
}
|
|
@@ -2650,20 +2657,26 @@ var CommandRegistrar = class {
|
|
|
2650
2657
|
const commands = handler.getCommandsArray();
|
|
2651
2658
|
return commands.flatMap((cmd) => {
|
|
2652
2659
|
const json$1 = "toJSON" in cmd.data.command ? cmd.data.command.toJSON() : cmd.data.command;
|
|
2653
|
-
const
|
|
2660
|
+
const __metadata = cmd.metadata ?? cmd.data.metadata;
|
|
2661
|
+
const collections = [{
|
|
2662
|
+
...json$1,
|
|
2663
|
+
__metadata
|
|
2664
|
+
}];
|
|
2654
2665
|
if (cmd.data.userContextMenu && json$1.type !== discord_js.ApplicationCommandType.User) collections.push({
|
|
2655
2666
|
...json$1,
|
|
2656
2667
|
type: discord_js.ApplicationCommandType.User,
|
|
2657
2668
|
options: void 0,
|
|
2658
2669
|
description_localizations: void 0,
|
|
2659
|
-
description: void 0
|
|
2670
|
+
description: void 0,
|
|
2671
|
+
__metadata
|
|
2660
2672
|
});
|
|
2661
2673
|
if (cmd.data.messageContextMenu && json$1.type !== discord_js.ApplicationCommandType.Message) collections.push({
|
|
2662
2674
|
...json$1,
|
|
2663
2675
|
type: discord_js.ApplicationCommandType.Message,
|
|
2664
2676
|
description_localizations: void 0,
|
|
2665
2677
|
description: void 0,
|
|
2666
|
-
options: void 0
|
|
2678
|
+
options: void 0,
|
|
2679
|
+
__metadata
|
|
2667
2680
|
});
|
|
2668
2681
|
return collections;
|
|
2669
2682
|
});
|
|
@@ -2687,18 +2700,18 @@ var CommandRegistrar = class {
|
|
|
2687
2700
|
if (preRegistrationPrevented) return;
|
|
2688
2701
|
if (!this.commandkit.client.isReady()) throw new Error("Cannot register commands before the client is ready");
|
|
2689
2702
|
const guildCommands = commands.filter((command) => {
|
|
2690
|
-
var _command$
|
|
2691
|
-
return (_command$
|
|
2703
|
+
var _command$__metadata;
|
|
2704
|
+
return (_command$__metadata = command.__metadata) === null || _command$__metadata === void 0 || (_command$__metadata = _command$__metadata.guilds) === null || _command$__metadata === void 0 ? void 0 : _command$__metadata.filter(Boolean).length;
|
|
2692
2705
|
}).map((c) => {
|
|
2693
|
-
var _c$
|
|
2706
|
+
var _c$__metadata;
|
|
2694
2707
|
return {
|
|
2695
2708
|
...c,
|
|
2696
|
-
guilds: Array.from(new Set((_c$
|
|
2709
|
+
guilds: Array.from(new Set((_c$__metadata = c.__metadata) === null || _c$__metadata === void 0 || (_c$__metadata = _c$__metadata.guilds) === null || _c$__metadata === void 0 ? void 0 : _c$__metadata.filter(Boolean)))
|
|
2697
2710
|
};
|
|
2698
2711
|
});
|
|
2699
2712
|
const globalCommands = commands.filter((command) => {
|
|
2700
|
-
var _command$
|
|
2701
|
-
return !((_command$
|
|
2713
|
+
var _command$__metadata2;
|
|
2714
|
+
return !((_command$__metadata2 = command.__metadata) === null || _command$__metadata2 === void 0 || (_command$__metadata2 = _command$__metadata2.guilds) === null || _command$__metadata2 === void 0 ? void 0 : _command$__metadata2.filter(Boolean).length);
|
|
2702
2715
|
});
|
|
2703
2716
|
await this.updateGlobalCommands(globalCommands);
|
|
2704
2717
|
await this.updateGuildCommands(guildCommands);
|
|
@@ -2722,11 +2735,11 @@ var CommandRegistrar = class {
|
|
|
2722
2735
|
try {
|
|
2723
2736
|
const data = await this.api.put(discord_js.Routes.applicationCommands(this.commandkit.client.user.id), { body: commands.map((c) => ({
|
|
2724
2737
|
...c,
|
|
2725
|
-
|
|
2738
|
+
__metadata: void 0
|
|
2726
2739
|
})) });
|
|
2727
2740
|
Logger.info(`✨ Refreshed ${data.length} global application (/) commands`);
|
|
2728
2741
|
} catch (e) {
|
|
2729
|
-
Logger.error
|
|
2742
|
+
Logger.error`Failed to update global application (/) commands: ${e}`;
|
|
2730
2743
|
}
|
|
2731
2744
|
}
|
|
2732
2745
|
/**
|
|
@@ -2749,9 +2762,9 @@ var CommandRegistrar = class {
|
|
|
2749
2762
|
try {
|
|
2750
2763
|
const guildCommandsMap = /* @__PURE__ */ new Map();
|
|
2751
2764
|
commands.forEach((command) => {
|
|
2752
|
-
var _command$
|
|
2753
|
-
if (!((_command$
|
|
2754
|
-
command.guilds.forEach((guild) => {
|
|
2765
|
+
var _command$__metadata3, _command$__metadata4;
|
|
2766
|
+
if (!((_command$__metadata3 = command.__metadata) === null || _command$__metadata3 === void 0 || (_command$__metadata3 = _command$__metadata3.guilds) === null || _command$__metadata3 === void 0 ? void 0 : _command$__metadata3.length)) return;
|
|
2767
|
+
(_command$__metadata4 = command.__metadata) === null || _command$__metadata4 === void 0 || (_command$__metadata4 = _command$__metadata4.guilds) === null || _command$__metadata4 === void 0 || _command$__metadata4.forEach((guild) => {
|
|
2755
2768
|
if (!guildCommandsMap.has(guild)) guildCommandsMap.set(guild, []);
|
|
2756
2769
|
guildCommandsMap.get(guild).push(command);
|
|
2757
2770
|
});
|
|
@@ -2773,19 +2786,102 @@ var CommandRegistrar = class {
|
|
|
2773
2786
|
if (prevented$1) continue;
|
|
2774
2787
|
const data = await this.api.put(discord_js.Routes.applicationGuildCommands(this.commandkit.client.user.id, guild), { body: guildCommands.map((b) => ({
|
|
2775
2788
|
...b,
|
|
2776
|
-
|
|
2789
|
+
__metadata: void 0
|
|
2777
2790
|
})) });
|
|
2778
2791
|
count += data.length;
|
|
2779
2792
|
}
|
|
2780
2793
|
Logger.info(`✨ Refreshed ${count} guild application (/) commands`);
|
|
2781
2794
|
} catch (e) {
|
|
2782
|
-
Logger.error
|
|
2795
|
+
Logger.error`Failed to update guild application (/) commands: ${e}`;
|
|
2783
2796
|
}
|
|
2784
2797
|
}
|
|
2785
2798
|
};
|
|
2786
2799
|
|
|
2800
|
+
//#endregion
|
|
2801
|
+
//#region src/app/middlewares/permissions.ts
|
|
2802
|
+
const middlewareId = crypto.randomUUID();
|
|
2803
|
+
/**
|
|
2804
|
+
* @private
|
|
2805
|
+
* @ignore
|
|
2806
|
+
*/
|
|
2807
|
+
async function beforeExecute(ctx) {
|
|
2808
|
+
var _interaction$channel, _message$channel, _message$member, _command$metadata, _interaction$guild, _message$guild, _command$metadata2;
|
|
2809
|
+
if (getConfig().disablePermissionsMiddleware) return;
|
|
2810
|
+
const { interaction, message, command } = ctx;
|
|
2811
|
+
if (interaction && !interaction.isCommand()) return;
|
|
2812
|
+
if (interaction && ((_interaction$channel = interaction.channel) === null || _interaction$channel === void 0 ? void 0 : _interaction$channel.isDMBased()) || message && ((_message$channel = message.channel) === null || _message$channel === void 0 ? void 0 : _message$channel.isDMBased())) {
|
|
2813
|
+
const channel = (interaction === null || interaction === void 0 ? void 0 : interaction.channel) ?? (message === null || message === void 0 ? void 0 : message.channel);
|
|
2814
|
+
const embed$1 = new discord_js.EmbedBuilder().setTitle(":x: Server-only command!").setDescription("This command can only be used in a server.").setColor("Red");
|
|
2815
|
+
try {
|
|
2816
|
+
if (channel === null || channel === void 0 ? void 0 : channel.isSendable()) if (interaction && interaction.isRepliable()) await interaction.reply({
|
|
2817
|
+
embeds: [embed$1],
|
|
2818
|
+
flags: discord_js.MessageFlags.Ephemeral
|
|
2819
|
+
});
|
|
2820
|
+
else await message.reply({ embeds: [embed$1] });
|
|
2821
|
+
} catch (error) {
|
|
2822
|
+
Logger.error`Could not send 'Server-only command' DM to user ${(interaction === null || interaction === void 0 ? void 0 : interaction.user.id) ?? (message === null || message === void 0 ? void 0 : message.author.id)} for command ${command.command.name}: ${error}`;
|
|
2823
|
+
}
|
|
2824
|
+
require_signals.stopMiddlewares();
|
|
2825
|
+
}
|
|
2826
|
+
const userPermissions = (interaction === null || interaction === void 0 ? void 0 : interaction.memberPermissions) ?? (message === null || message === void 0 || (_message$member = message.member) === null || _message$member === void 0 ? void 0 : _message$member.permissions);
|
|
2827
|
+
let userPermissionsRequired = ((_command$metadata = command.metadata) === null || _command$metadata === void 0 ? void 0 : _command$metadata.userPermissions) ?? [];
|
|
2828
|
+
let missingUserPermissions = [];
|
|
2829
|
+
if (typeof userPermissionsRequired === "string") userPermissionsRequired = [userPermissionsRequired];
|
|
2830
|
+
const botPermissions = (interaction === null || interaction === void 0 || (_interaction$guild = interaction.guild) === null || _interaction$guild === void 0 || (_interaction$guild = _interaction$guild.members.me) === null || _interaction$guild === void 0 ? void 0 : _interaction$guild.permissions) ?? (message === null || message === void 0 || (_message$guild = message.guild) === null || _message$guild === void 0 || (_message$guild = _message$guild.members.me) === null || _message$guild === void 0 ? void 0 : _message$guild.permissions);
|
|
2831
|
+
let botPermissionsRequired = ((_command$metadata2 = command.metadata) === null || _command$metadata2 === void 0 ? void 0 : _command$metadata2.botPermissions) ?? [];
|
|
2832
|
+
let missingBotPermissions = [];
|
|
2833
|
+
if (typeof botPermissionsRequired === "string") botPermissionsRequired = [botPermissionsRequired];
|
|
2834
|
+
if (!userPermissionsRequired.length && !botPermissionsRequired.length) return;
|
|
2835
|
+
if (userPermissionsRequired.length) for (const permission of userPermissionsRequired) {
|
|
2836
|
+
const hasPermission = userPermissions === null || userPermissions === void 0 ? void 0 : userPermissions.has(permission);
|
|
2837
|
+
if (!hasPermission) missingUserPermissions.push(permission);
|
|
2838
|
+
}
|
|
2839
|
+
if (botPermissionsRequired.length) for (const permission of botPermissionsRequired) {
|
|
2840
|
+
const hasPermission = botPermissions === null || botPermissions === void 0 ? void 0 : botPermissions.has(permission);
|
|
2841
|
+
if (!hasPermission) missingBotPermissions.push(permission);
|
|
2842
|
+
}
|
|
2843
|
+
if (!missingUserPermissions.length && !missingBotPermissions.length) return;
|
|
2844
|
+
const pattern = /([a-z])([A-Z])|([A-Z]+)([A-Z][a-z])/g;
|
|
2845
|
+
missingUserPermissions = missingUserPermissions.map((str) => str.replace(pattern, "$1$3 $2$4"));
|
|
2846
|
+
missingBotPermissions = missingBotPermissions.map((str) => str.replace(pattern, "$1$3 $2$4"));
|
|
2847
|
+
let embedDescription = "";
|
|
2848
|
+
const formatter = new Intl.ListFormat("en", {
|
|
2849
|
+
style: "long",
|
|
2850
|
+
type: "conjunction"
|
|
2851
|
+
});
|
|
2852
|
+
const getPermissionWord = (permissions) => permissions.length === 1 ? "permission" : "permissions";
|
|
2853
|
+
if (missingUserPermissions.length) {
|
|
2854
|
+
const formattedPermissions = missingUserPermissions.map((p) => `\`${p}\``);
|
|
2855
|
+
const permissionsString = formatter.format(formattedPermissions);
|
|
2856
|
+
embedDescription += `- You must have the ${permissionsString} ${getPermissionWord(missingUserPermissions)} to be able to run this command.\n`;
|
|
2857
|
+
}
|
|
2858
|
+
if (missingBotPermissions.length) {
|
|
2859
|
+
const formattedPermissions = missingBotPermissions.map((p) => `\`${p}\``);
|
|
2860
|
+
const permissionsString = formatter.format(formattedPermissions);
|
|
2861
|
+
embedDescription += `- I must have the ${permissionsString} ${getPermissionWord(missingBotPermissions)} to be able to execute this command.\n`;
|
|
2862
|
+
}
|
|
2863
|
+
const embed = new discord_js.EmbedBuilder().setTitle(`:x: Missing permissions!`).setDescription(embedDescription).setColor("Red");
|
|
2864
|
+
try {
|
|
2865
|
+
var _message$channel2;
|
|
2866
|
+
if (interaction && interaction.isRepliable()) await interaction.reply({
|
|
2867
|
+
embeds: [embed],
|
|
2868
|
+
flags: discord_js.MessageFlags.Ephemeral
|
|
2869
|
+
});
|
|
2870
|
+
else if (message && ((_message$channel2 = message.channel) === null || _message$channel2 === void 0 ? void 0 : _message$channel2.isSendable())) await message.reply({ embeds: [embed] });
|
|
2871
|
+
} catch (error) {
|
|
2872
|
+
Logger.error`Could not send 'Not enough permissions' reply to user ${(interaction === null || interaction === void 0 ? void 0 : interaction.user.id) ?? (message === null || message === void 0 ? void 0 : message.author.id)} for command ${command.command.name}: ${error}`;
|
|
2873
|
+
}
|
|
2874
|
+
require_signals.stopMiddlewares();
|
|
2875
|
+
}
|
|
2876
|
+
|
|
2787
2877
|
//#endregion
|
|
2788
2878
|
//#region src/app/handlers/AppCommandHandler.ts
|
|
2879
|
+
const KNOWN_NON_HANDLER_KEYS = [
|
|
2880
|
+
"command",
|
|
2881
|
+
"generateMetadata",
|
|
2882
|
+
"metadata",
|
|
2883
|
+
"aiConfig"
|
|
2884
|
+
];
|
|
2789
2885
|
/**
|
|
2790
2886
|
* @private
|
|
2791
2887
|
* @internal
|
|
@@ -2975,7 +3071,7 @@ var AppCommandHandler = class {
|
|
|
2975
3071
|
* @returns Prepared command execution data or null if command not found
|
|
2976
3072
|
*/
|
|
2977
3073
|
async prepareCommandRun(source, cmdName) {
|
|
2978
|
-
var _loadedCommand$
|
|
3074
|
+
var _loadedCommand$metada3, _loadedCommand$metada4;
|
|
2979
3075
|
const config = getConfig();
|
|
2980
3076
|
if (config.disablePrefixCommands && source instanceof discord_js.Message) return null;
|
|
2981
3077
|
let parser;
|
|
@@ -2984,13 +3080,13 @@ var AppCommandHandler = class {
|
|
|
2984
3080
|
const prefix = await this.commandkit.appConfig.getMessageCommandPrefix(source);
|
|
2985
3081
|
if (!prefix || !prefix.length) return null;
|
|
2986
3082
|
parser = new require_MessageCommandParser.MessageCommandParser(source, Array.isArray(prefix) ? prefix : [prefix], (command) => {
|
|
2987
|
-
var _loadedCommand$
|
|
3083
|
+
var _loadedCommand$metada, _loadedCommand$metada2, _json$options;
|
|
2988
3084
|
const loadedCommand$1 = this.findCommandByName(command);
|
|
2989
3085
|
if (!loadedCommand$1) {
|
|
2990
|
-
if (require_constants.COMMANDKIT_IS_DEV && this.commandkit.config.showUnknownPrefixCommandsWarning) Logger.error
|
|
3086
|
+
if (require_constants.COMMANDKIT_IS_DEV && this.commandkit.config.showUnknownPrefixCommandsWarning) Logger.error`Prefix command "${command}" was not found.\nNote: This warning is only shown in development mode as an alert to help you find the command. If you wish to remove this warning, set \`showUnknownPrefixCommandsWarning\` to \`false\` in your commandkit config.`;
|
|
2991
3087
|
return null;
|
|
2992
3088
|
}
|
|
2993
|
-
if (source.guildId && ((_loadedCommand$
|
|
3089
|
+
if (source.guildId && ((_loadedCommand$metada = loadedCommand$1.metadata) === null || _loadedCommand$metada === void 0 || (_loadedCommand$metada = _loadedCommand$metada.guilds) === null || _loadedCommand$metada === void 0 ? void 0 : _loadedCommand$metada.length) && !((_loadedCommand$metada2 = loadedCommand$1.metadata) === null || _loadedCommand$metada2 === void 0 ? void 0 : _loadedCommand$metada2.guilds.includes(source.guildId))) return null;
|
|
2994
3090
|
const json$1 = "toJSON" in loadedCommand$1.data.command ? loadedCommand$1.data.command.toJSON() : loadedCommand$1.data.command;
|
|
2995
3091
|
return ((_json$options = json$1.options) === null || _json$options === void 0 ? void 0 : _json$options.reduce((acc, opt) => {
|
|
2996
3092
|
acc[opt.name] = opt.type;
|
|
@@ -3003,7 +3099,7 @@ var AppCommandHandler = class {
|
|
|
3003
3099
|
cmdName = parts[0];
|
|
3004
3100
|
} catch (e) {
|
|
3005
3101
|
if (require_error_codes.isErrorType(e, require_error_codes.CommandKitErrorCodes.InvalidCommandPrefix)) return null;
|
|
3006
|
-
Logger.error
|
|
3102
|
+
Logger.error`${e}`;
|
|
3007
3103
|
return null;
|
|
3008
3104
|
}
|
|
3009
3105
|
} else {
|
|
@@ -3013,12 +3109,24 @@ var AppCommandHandler = class {
|
|
|
3013
3109
|
}
|
|
3014
3110
|
const loadedCommand = this.findCommandByName(cmdName);
|
|
3015
3111
|
if (!loadedCommand) return null;
|
|
3016
|
-
if ((source instanceof discord_js.CommandInteraction || source instanceof discord_js.AutocompleteInteraction) && source.guildId && ((_loadedCommand$
|
|
3112
|
+
if ((source instanceof discord_js.CommandInteraction || source instanceof discord_js.AutocompleteInteraction) && source.guildId && ((_loadedCommand$metada3 = loadedCommand.metadata) === null || _loadedCommand$metada3 === void 0 || (_loadedCommand$metada3 = _loadedCommand$metada3.guilds) === null || _loadedCommand$metada3 === void 0 ? void 0 : _loadedCommand$metada3.length) && !((_loadedCommand$metada4 = loadedCommand.metadata) === null || _loadedCommand$metada4 === void 0 ? void 0 : _loadedCommand$metada4.guilds.includes(source.guildId))) return null;
|
|
3017
3113
|
const middlewares = [];
|
|
3018
|
-
for (const middlewareId of loadedCommand.command.middlewares) {
|
|
3019
|
-
const middleware = this.loadedMiddlewares.get(middlewareId);
|
|
3114
|
+
for (const middlewareId$1 of loadedCommand.command.middlewares) {
|
|
3115
|
+
const middleware = this.loadedMiddlewares.get(middlewareId$1);
|
|
3020
3116
|
if (middleware) middlewares.push(middleware);
|
|
3021
3117
|
}
|
|
3118
|
+
if (!getConfig().disablePermissionsMiddleware) middlewares.push({
|
|
3119
|
+
data: { beforeExecute },
|
|
3120
|
+
middleware: {
|
|
3121
|
+
command: null,
|
|
3122
|
+
global: true,
|
|
3123
|
+
id: middlewareId,
|
|
3124
|
+
name: "permissions",
|
|
3125
|
+
parentPath: "",
|
|
3126
|
+
path: "",
|
|
3127
|
+
relativePath: ""
|
|
3128
|
+
}
|
|
3129
|
+
});
|
|
3022
3130
|
return {
|
|
3023
3131
|
command: loadedCommand,
|
|
3024
3132
|
middlewares,
|
|
@@ -3032,8 +3140,9 @@ var AppCommandHandler = class {
|
|
|
3032
3140
|
*/
|
|
3033
3141
|
findCommandByName(name) {
|
|
3034
3142
|
for (const [, loadedCommand] of this.loadedCommands) {
|
|
3143
|
+
var _loadedCommand$data$m;
|
|
3035
3144
|
if (loadedCommand.data.command.name === name) return loadedCommand;
|
|
3036
|
-
const aliases = loadedCommand.data.
|
|
3145
|
+
const aliases = (_loadedCommand$data$m = loadedCommand.data.metadata) === null || _loadedCommand$data$m === void 0 ? void 0 : _loadedCommand$data$m.aliases;
|
|
3037
3146
|
if (aliases && Array.isArray(aliases) && aliases.includes(name)) return loadedCommand;
|
|
3038
3147
|
}
|
|
3039
3148
|
return null;
|
|
@@ -3098,7 +3207,7 @@ var AppCommandHandler = class {
|
|
|
3098
3207
|
for (const [id, command] of combinedCommands) await this.loadCommand(id, command);
|
|
3099
3208
|
if (require_constants.COMMANDKIT_IS_DEV) {
|
|
3100
3209
|
const commandNames = Array.from(this.loadedCommands.values()).map((v) => v.data.command.name);
|
|
3101
|
-
const aliases = Array.from(this.loadedCommands.values()).flatMap((v) => v.
|
|
3210
|
+
const aliases = Array.from(this.loadedCommands.values()).flatMap((v) => v.metadata.aliases || []);
|
|
3102
3211
|
const allNames = [...commandNames, ...aliases];
|
|
3103
3212
|
await require_types_package.rewriteCommandDeclaration(`type CommandTypeData = ${allNames.map((name) => JSON.stringify(name)).join(" | ")}`);
|
|
3104
3213
|
}
|
|
@@ -3124,7 +3233,7 @@ var AppCommandHandler = class {
|
|
|
3124
3233
|
data
|
|
3125
3234
|
});
|
|
3126
3235
|
} catch (error) {
|
|
3127
|
-
Logger.error
|
|
3236
|
+
Logger.error`Failed to load middleware ${id}: ${error}`;
|
|
3128
3237
|
}
|
|
3129
3238
|
}
|
|
3130
3239
|
/**
|
|
@@ -3136,6 +3245,12 @@ var AppCommandHandler = class {
|
|
|
3136
3245
|
if (command.path === null) {
|
|
3137
3246
|
this.loadedCommands.set(id, {
|
|
3138
3247
|
command,
|
|
3248
|
+
metadata: {
|
|
3249
|
+
guilds: [],
|
|
3250
|
+
aliases: [],
|
|
3251
|
+
userPermissions: [],
|
|
3252
|
+
botPermissions: []
|
|
3253
|
+
},
|
|
3139
3254
|
data: { command: {
|
|
3140
3255
|
name: command.name,
|
|
3141
3256
|
description: `${command.name} command`,
|
|
@@ -3146,20 +3261,28 @@ var AppCommandHandler = class {
|
|
|
3146
3261
|
}
|
|
3147
3262
|
const commandFileData = await import(`${require_resolve_file_url.toFileURL(command.path)}?t=${Date.now()}`);
|
|
3148
3263
|
if (!commandFileData.command) throw new Error(`Invalid export for command ${command.name}: no command definition found`);
|
|
3264
|
+
const metadataFunc = commandFileData.generateMetadata;
|
|
3265
|
+
const metadataObj = commandFileData.metadata;
|
|
3266
|
+
if (metadataFunc && metadataObj) throw new Error("A command may only export either `generateMetadata` or `metadata`, not both");
|
|
3267
|
+
const metadata = (metadataFunc ? await metadataFunc() : metadataObj) ?? {
|
|
3268
|
+
aliases: [],
|
|
3269
|
+
guilds: [],
|
|
3270
|
+
userPermissions: [],
|
|
3271
|
+
botPermissions: []
|
|
3272
|
+
};
|
|
3149
3273
|
const commandName = commandFileData.command.name || command.name;
|
|
3150
3274
|
const commandDescription = commandFileData.command.description || `${commandName} command`;
|
|
3151
3275
|
const updatedCommandData = {
|
|
3152
3276
|
...commandFileData.command,
|
|
3153
3277
|
name: commandName,
|
|
3154
|
-
description: commandDescription
|
|
3155
|
-
aliases: commandFileData.command.aliases
|
|
3278
|
+
description: commandDescription
|
|
3156
3279
|
};
|
|
3157
3280
|
let handlerCount = 0;
|
|
3158
3281
|
for (const [key, propValidator] of Object.entries(commandDataSchema)) {
|
|
3159
3282
|
const exportedProp = commandFileData[key];
|
|
3160
3283
|
if (exportedProp) {
|
|
3161
3284
|
if (!await propValidator(exportedProp)) throw new Error(`Invalid export for command ${command.name}: ${key} does not match expected value`);
|
|
3162
|
-
if (key
|
|
3285
|
+
if (!KNOWN_NON_HANDLER_KEYS.includes(key)) handlerCount++;
|
|
3163
3286
|
}
|
|
3164
3287
|
}
|
|
3165
3288
|
if (handlerCount === 0) throw new Error(`Invalid export for command ${command.name}: at least one handler function must be provided`);
|
|
@@ -3168,18 +3291,44 @@ var AppCommandHandler = class {
|
|
|
3168
3291
|
const res = await plugin.prepareCommand(ctx, lastUpdated);
|
|
3169
3292
|
if (res) lastUpdated = res;
|
|
3170
3293
|
});
|
|
3294
|
+
const commandJson = "toJSON" in lastUpdated && typeof lastUpdated.toJSON === "function" ? lastUpdated.toJSON() : lastUpdated;
|
|
3295
|
+
if ("guilds" in commandJson || "aliases" in commandJson) Logger.warn(`Command \`${command.name}\` uses deprecated metadata properties. Please update to use the new \`metadata\` object or \`generateMetadata\` function.`);
|
|
3171
3296
|
this.loadedCommands.set(id, {
|
|
3172
3297
|
command,
|
|
3173
|
-
|
|
3298
|
+
metadata: {
|
|
3299
|
+
guilds: commandJson.guilds,
|
|
3300
|
+
aliases: commandJson.aliases,
|
|
3301
|
+
...metadata
|
|
3302
|
+
},
|
|
3174
3303
|
data: {
|
|
3175
3304
|
...commandFileData,
|
|
3176
|
-
|
|
3305
|
+
metadata: {
|
|
3306
|
+
guilds: commandJson.guilds,
|
|
3307
|
+
aliases: commandJson.aliases,
|
|
3308
|
+
...metadata
|
|
3309
|
+
},
|
|
3310
|
+
command: commandJson
|
|
3177
3311
|
}
|
|
3178
3312
|
});
|
|
3179
3313
|
} catch (error) {
|
|
3180
|
-
Logger.error
|
|
3314
|
+
Logger.error`Failed to load command ${command.name} (${id}): ${error}`;
|
|
3181
3315
|
}
|
|
3182
3316
|
}
|
|
3317
|
+
/**
|
|
3318
|
+
* Gets the metadata for a command.
|
|
3319
|
+
* @param command - The command name to get metadata for
|
|
3320
|
+
* @returns The command metadata or null if not found
|
|
3321
|
+
*/
|
|
3322
|
+
getMetadataFor(command) {
|
|
3323
|
+
const loadedCommand = this.findCommandByName(command);
|
|
3324
|
+
if (!loadedCommand) return null;
|
|
3325
|
+
return loadedCommand.metadata ??= {
|
|
3326
|
+
aliases: [],
|
|
3327
|
+
guilds: [],
|
|
3328
|
+
userPermissions: [],
|
|
3329
|
+
botPermissions: []
|
|
3330
|
+
};
|
|
3331
|
+
}
|
|
3183
3332
|
};
|
|
3184
3333
|
|
|
3185
3334
|
//#endregion
|
|
@@ -3235,7 +3384,7 @@ var AppEventsHandler = class {
|
|
|
3235
3384
|
const listeners = [];
|
|
3236
3385
|
for (const listener of event.listeners) {
|
|
3237
3386
|
const handler = await import(require_resolve_file_url.toFileURL(listener, true));
|
|
3238
|
-
if (!handler.default || typeof handler.default !== "function") Logger.error
|
|
3387
|
+
if (!handler.default || typeof handler.default !== "function") Logger.error`Event handler for ${event.event}${event.namespace ? ` of namespace ${event.namespace}` : ""} does not have a default export or is not a function`;
|
|
3239
3388
|
listeners.push({
|
|
3240
3389
|
handler: handler.default,
|
|
3241
3390
|
once: !!handler.once
|
|
@@ -3307,7 +3456,7 @@ var AppEventsHandler = class {
|
|
|
3307
3456
|
Logger.debug(`Event propagation stopped for ${name}${namespace ? ` of namespace ${namespace}` : ""}`);
|
|
3308
3457
|
break;
|
|
3309
3458
|
}
|
|
3310
|
-
Logger.error
|
|
3459
|
+
Logger.error`Error handling event ${name}${namespace ? ` of namespace ${namespace}` : ""}: ${e}`;
|
|
3311
3460
|
}
|
|
3312
3461
|
});
|
|
3313
3462
|
};
|
|
@@ -3349,7 +3498,7 @@ var AppEventsHandler = class {
|
|
|
3349
3498
|
Logger.debug(`Event propagation stopped for ${name}${namespace ? ` of namespace ${namespace}` : ""}`);
|
|
3350
3499
|
broken = true;
|
|
3351
3500
|
}
|
|
3352
|
-
Logger.error
|
|
3501
|
+
Logger.error`Error handling event ${name}${namespace ? ` of namespace ${namespace}` : ""}: ${e}`;
|
|
3353
3502
|
}
|
|
3354
3503
|
});
|
|
3355
3504
|
}
|
|
@@ -3585,7 +3734,7 @@ var AnalyticsEngine = class {
|
|
|
3585
3734
|
var _identify, _ref;
|
|
3586
3735
|
await ((_identify = (_ref = this.#provider).identify) === null || _identify === void 0 ? void 0 : _identify.call(_ref, this, event));
|
|
3587
3736
|
} catch (error) {
|
|
3588
|
-
Logger.error
|
|
3737
|
+
Logger.error`Error identifying with provider ${this.#provider.name}: ${error}`;
|
|
3589
3738
|
}
|
|
3590
3739
|
}
|
|
3591
3740
|
/**
|
|
@@ -3600,7 +3749,7 @@ var AnalyticsEngine = class {
|
|
|
3600
3749
|
if (await this.#doNotTrack(event)) return;
|
|
3601
3750
|
await this.#provider.track(this, event);
|
|
3602
3751
|
} catch (error) {
|
|
3603
|
-
Logger.error
|
|
3752
|
+
Logger.error`Error tracking ${event.name} event with provider ${this.#provider.name}: ${error}`;
|
|
3604
3753
|
}
|
|
3605
3754
|
}
|
|
3606
3755
|
async #doNotTrack(event) {
|
|
@@ -3739,7 +3888,7 @@ var CommandKit = class CommandKit extends node_events.default {
|
|
|
3739
3888
|
for (const hook of bootstrapHooks) try {
|
|
3740
3889
|
await hook(this);
|
|
3741
3890
|
} catch (e) {
|
|
3742
|
-
Logger.error
|
|
3891
|
+
Logger.error`Error while executing bootstrap hook: ${e}`;
|
|
3743
3892
|
} finally {
|
|
3744
3893
|
bootstrapHooks.delete(hook);
|
|
3745
3894
|
}
|
|
@@ -3749,7 +3898,7 @@ var CommandKit = class CommandKit extends node_events.default {
|
|
|
3749
3898
|
for (const hook of onApplicationBootstrapHooks) try {
|
|
3750
3899
|
await hook(this);
|
|
3751
3900
|
} catch (e) {
|
|
3752
|
-
Logger.error
|
|
3901
|
+
Logger.error`Error while executing application bootstrap hook: ${e}`;
|
|
3753
3902
|
} finally {
|
|
3754
3903
|
onApplicationBootstrapHooks.delete(hook);
|
|
3755
3904
|
}
|
|
@@ -3767,7 +3916,7 @@ var CommandKit = class CommandKit extends node_events.default {
|
|
|
3767
3916
|
registerDevHooks(this);
|
|
3768
3917
|
await require_types_package.generateTypesPackage();
|
|
3769
3918
|
} catch (e) {
|
|
3770
|
-
if (process.env.COMMANDKIT_DEBUG_TYPEGEN) Logger.error
|
|
3919
|
+
if (process.env.COMMANDKIT_DEBUG_TYPEGEN) Logger.error`${e}`;
|
|
3771
3920
|
}
|
|
3772
3921
|
await this.loadPlugins();
|
|
3773
3922
|
await this.#init();
|
|
@@ -4150,6 +4299,12 @@ Object.defineProperty(exports, 'after', {
|
|
|
4150
4299
|
return after;
|
|
4151
4300
|
}
|
|
4152
4301
|
});
|
|
4302
|
+
Object.defineProperty(exports, 'beforeExecute', {
|
|
4303
|
+
enumerable: true,
|
|
4304
|
+
get: function () {
|
|
4305
|
+
return beforeExecute;
|
|
4306
|
+
}
|
|
4307
|
+
});
|
|
4153
4308
|
Object.defineProperty(exports, 'cancelAfter', {
|
|
4154
4309
|
enumerable: true,
|
|
4155
4310
|
get: function () {
|
|
@@ -4276,6 +4431,12 @@ Object.defineProperty(exports, 'makeContextAwareFunction', {
|
|
|
4276
4431
|
return makeContextAwareFunction;
|
|
4277
4432
|
}
|
|
4278
4433
|
});
|
|
4434
|
+
Object.defineProperty(exports, 'middlewareId', {
|
|
4435
|
+
enumerable: true,
|
|
4436
|
+
get: function () {
|
|
4437
|
+
return middlewareId;
|
|
4438
|
+
}
|
|
4439
|
+
});
|
|
4279
4440
|
Object.defineProperty(exports, 'noAnalytics', {
|
|
4280
4441
|
enumerable: true,
|
|
4281
4442
|
get: function () {
|
|
@@ -4312,4 +4473,4 @@ Object.defineProperty(exports, 'useEnvironment', {
|
|
|
4312
4473
|
return useEnvironment;
|
|
4313
4474
|
}
|
|
4314
4475
|
});
|
|
4315
|
-
//# sourceMappingURL=commandkit-
|
|
4476
|
+
//# sourceMappingURL=commandkit-BPtNCbV8.js.map
|