meocord 4.1.2 → 4.2.0
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/CHANGELOG.md +98 -0
- package/dist/cjs/_shared/{controller.decorator-BywwkU9O.cjs → controller.decorator-CRn9kWob.cjs} +295 -87
- package/dist/cjs/_shared/{providers-BMMLp2SN.cjs → providers-ChvMqnLd.cjs} +74 -40
- package/dist/cjs/_shared/{sharded-cooldown-store-B65iaiAy.cjs → sharded-cooldown-store-BdAUTdYs.cjs} +1 -1
- package/dist/cjs/_shared/{startup-roots-lFc69AxC.cjs → startup-roots-CQo8mSP8.cjs} +158 -72
- package/dist/cjs/_shared/{translate-error-BnM8FbSH.cjs → translate-error-DhDVbT5M.cjs} +12 -3
- package/dist/cjs/common/index.cjs +4 -4
- package/dist/cjs/core/index.cjs +195 -157
- package/dist/cjs/decorator/index.cjs +66 -57
- package/dist/cjs/testing/index.cjs +733 -301
- package/dist/cli.json +1 -1
- package/dist/esm/bin/app-template/README.md.template +3 -1
- package/dist/esm/bin/app-template/src/controllers/button/sample.button.controller.spec.ts.template +8 -4
- package/dist/esm/bin/app-template/src/controllers/button/sample.button.controller.ts.template +2 -2
- package/dist/esm/bin/app-template/src/guards/owner.guard.spec.ts.template +8 -4
- package/dist/esm/bin/app-template/src/guards/owner.guard.ts.template +1 -1
- package/dist/esm/bin/app-template/vitest.config.ts.template +1 -1
- package/dist/esm/bin/app-template/vitest.setup.ts.template +7 -3
- package/dist/esm/build/load-config.pre-entry.js +4 -1
- package/dist/esm/common/decorator.js +6 -6
- package/dist/esm/common/deprecation.js +2 -2
- package/dist/esm/common/errors.js +2 -2
- package/dist/esm/common/execution-context.js +1 -1
- package/dist/esm/common/metadata.js +1 -1
- package/dist/esm/common/route.js +10 -1
- package/dist/esm/common/translate-error.js +1 -1
- package/dist/esm/core/command-conflicts.js +34 -34
- package/dist/esm/core/component-routes.js +74 -31
- package/dist/esm/core/dispatcher.js +51 -7
- package/dist/esm/core/filter-runner.js +2 -2
- package/dist/esm/core/handler-pipeline.js +27 -14
- package/dist/esm/core/handler-registry.js +1 -1
- package/dist/esm/core/interceptor-runner.js +2 -2
- package/dist/esm/core/meocord-factory.js +196 -157
- package/dist/esm/core/message-routes.js +4 -3
- package/dist/esm/core/observer-runner.js +4 -3
- package/dist/esm/core/providers.js +38 -21
- package/dist/esm/core/route-specificity.js +4 -4
- package/dist/esm/core/scalar-types.js +15 -3
- package/dist/esm/core/shard-context.js +1 -1
- package/dist/esm/core/startup-roots.js +2 -3
- package/dist/esm/core/theme-runtime.js +2 -2
- package/dist/esm/decorator/app.decorator.js +12 -7
- package/dist/esm/decorator/command-builder.decorator.js +4 -4
- package/dist/esm/decorator/controller-class.decorator.js +9 -4
- package/dist/esm/decorator/controller.decorator.js +110 -67
- package/dist/esm/decorator/cooldown.decorator.js +3 -3
- package/dist/esm/decorator/defer.decorator.js +4 -4
- package/dist/esm/decorator/event.decorator.js +5 -5
- package/dist/esm/decorator/filter.decorator.js +7 -7
- package/dist/esm/decorator/guard.decorator.js +8 -8
- package/dist/esm/decorator/inject.decorator.js +4 -4
- package/dist/esm/decorator/interceptor.decorator.js +7 -7
- package/dist/esm/decorator/observer.decorator.js +4 -4
- package/dist/esm/decorator/service.decorator.js +4 -4
- package/dist/esm/decorator/theme.decorator.js +3 -3
- package/dist/esm/decorator/validation.decorator.js +10 -10
- package/dist/esm/package.json.js +1 -1
- package/dist/esm/testing/catalog.js +1 -1
- package/dist/esm/testing/cooldown-store-suite.js +18 -10
- package/dist/esm/testing/discord-defaults.js +60 -7
- package/dist/esm/testing/index.js +4 -2
- package/dist/esm/testing/inspect-handler.js +20 -3
- package/dist/esm/testing/meocord-testing-module.js +229 -188
- package/dist/esm/testing/mock-fn.js +80 -10
- package/dist/esm/testing/mock-interaction.js +223 -72
- package/dist/esm/testing/response.js +1 -1
- package/dist/esm/testing/routing.js +39 -14
- package/dist/esm/testing/startup-errors.js +26 -0
- package/dist/esm/testing/strict-mocks.js +45 -0
- package/dist/esm/testing/theme.js +1 -1
- package/dist/esm/util/bundle-entry.util.js +2 -1
- package/dist/esm/util/interaction.util.js +1 -1
- package/dist/esm/util/meocord-config-validation.util.js +1 -0
- package/dist/esm/util/metadata-keys.js +1 -0
- package/dist/esm/util/refusal.util.js +148 -8
- package/dist/types/common/index.d.cts +8 -8
- package/dist/types/common/index.d.ts +8 -8
- package/dist/types/core/index.d.cts +8 -6
- package/dist/types/core/index.d.ts +8 -6
- package/dist/types/decorator/index.d.cts +30 -29
- package/dist/types/decorator/index.d.ts +30 -29
- package/dist/types/{index-D7n0FBMm.d.ts → index-CdXsFgjE.d.ts} +62 -15
- package/dist/types/{index-DEP0NYrU.d.cts → index-nn5p7OoX.d.cts} +62 -15
- package/dist/types/interface/index.d.cts +1 -1
- package/dist/types/interface/index.d.ts +1 -1
- package/dist/types/{route-C-aMI7Sl.d.cts → route-BZgFoNeB.d.cts} +5 -2
- package/dist/types/{route-C-aMI7Sl.d.ts → route-BZgFoNeB.d.ts} +5 -2
- package/dist/types/testing/index.d.cts +245 -31
- package/dist/types/testing/index.d.ts +245 -31
- package/dist/types/{theme-resolvers-DedxyscT.d.ts → theme-resolvers-BcOJVzR9.d.ts} +1 -1
- package/dist/types/{theme-resolvers-COHdX5g6.d.cts → theme-resolvers-UKr3-6Ys.d.cts} +1 -1
- package/dist/types/{translator-J6tIUfdp.d.ts → translator-BViWKtLJ.d.ts} +1 -1
- package/dist/types/{translator-B4mc1lzJ.d.cts → translator-DHMkkCpg.d.cts} +1 -1
- package/package.json +3 -2
|
@@ -35,7 +35,7 @@ function mockTheme(overrides, where) {
|
|
|
35
35
|
* @group Testing
|
|
36
36
|
* @category Mocks
|
|
37
37
|
* @see {@link withTheme}
|
|
38
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
38
|
+
* @see {@link https://meocord.dev/docs/4.2/theming | Theming}
|
|
39
39
|
*/ function createMockTheme(...[overrides]) {
|
|
40
40
|
return mockTheme(overrides, 'createMockTheme');
|
|
41
41
|
}
|
|
@@ -2,6 +2,7 @@ import { existsSync, realpathSync } from 'node:fs';
|
|
|
2
2
|
|
|
3
3
|
/** Where the built bundle's pre-entry records the bundle's own path. */ const BUNDLE_ENTRY_KEY = Symbol.for('meocord.bundleEntry');
|
|
4
4
|
/** Where the built bundle's pre-entry records the mode the bundle was built in. */ const BUILD_MODE_KEY = Symbol.for('meocord.buildMode');
|
|
5
|
+
/** Where the built bot's pre-entry records `startupErrors` from its config, before the application's modules load. */ const STARTUP_ERRORS_KEY = Symbol.for('meocord.startupErrorsMode');
|
|
5
6
|
/**
|
|
6
7
|
* The file a shard process runs: the built bundle, as its pre-entry recorded it, else the script this
|
|
7
8
|
* process was started with; undefined when there is none, as for code run with `node -e` outside a built bundle.
|
|
@@ -19,4 +20,4 @@ import { existsSync, realpathSync } from 'node:fs';
|
|
|
19
20
|
return typeof recorded === 'string' ? recorded : undefined;
|
|
20
21
|
}
|
|
21
22
|
|
|
22
|
-
export { BUILD_MODE_KEY, BUNDLE_ENTRY_KEY, buildMode, bundleEntry, isBuiltApplication };
|
|
23
|
+
export { BUILD_MODE_KEY, BUNDLE_ENTRY_KEY, STARTUP_ERRORS_KEY, buildMode, bundleEntry, isBuiltApplication };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ApplicationCommandOptionType, ModalSubmitInteraction, ChannelSelectMenuInteraction, MentionableSelectMenuInteraction, RoleSelectMenuInteraction, UserSelectMenuInteraction, StringSelectMenuInteraction, ButtonInteraction, PrimaryEntryPointCommandInteraction, ContextMenuCommandInteraction, ChatInputCommandInteraction
|
|
1
|
+
import { ApplicationCommandOptionType, MessageComponentInteraction, ModalSubmitInteraction, ChannelSelectMenuInteraction, MentionableSelectMenuInteraction, RoleSelectMenuInteraction, UserSelectMenuInteraction, StringSelectMenuInteraction, ButtonInteraction, PrimaryEntryPointCommandInteraction, ContextMenuCommandInteraction, ChatInputCommandInteraction } from 'discord.js';
|
|
2
2
|
import { CommandType } from '../enum/controller.enum.js';
|
|
3
3
|
import { quoteForLog } from './user-text.util.js';
|
|
4
4
|
import { withArticle } from './value.util.js';
|
|
@@ -46,6 +46,7 @@ const oneOf = (...allowed)=>(value, key)=>allowed.includes(value) ? undefined :
|
|
|
46
46
|
optionalExternals: optional(stringList('package names')),
|
|
47
47
|
rsbuild: optional(func),
|
|
48
48
|
sourceMappedStacks: optional(boolean),
|
|
49
|
+
startupErrors: optional(oneOf('first', 'all')),
|
|
49
50
|
shutdownTimeout: optional((value, key)=>{
|
|
50
51
|
const problem = shutdownTimeoutProblem(value);
|
|
51
52
|
return problem && `${key} ${problem}`;
|
|
@@ -24,6 +24,7 @@ import { MetadataKey } from '../enum/metadata-key.enum.js';
|
|
|
24
24
|
/** How many guard wrappers `@UseGuard` and `@Controller` put around one method. */ guardWrappers: 'meocord:guard-wrappers',
|
|
25
25
|
/** The prototype whose method a class-level `@UseGuard` re-declared on a subclass. */ inheritedFrom: 'meocord:inherited-from',
|
|
26
26
|
/** `false` when `@Controller({ inheritStages: false })` stops class stages at this class. */ inheritStages: 'meocord:inherit-stages',
|
|
27
|
+
/** `true` when `@Controller({ inheritedRoutes: 'replace' })` drops the routes this class's re-decorated methods inherit. */ replacesInheritedRoutes: 'meocord:replaces-inherited-routes',
|
|
27
28
|
/** A controller's class-level `@Cooldown`s. */ classCooldowns: 'meocord:class-cooldowns',
|
|
28
29
|
/** A method's `@Cooldown`s, in declaration order. */ methodCooldowns: 'meocord:method-cooldowns',
|
|
29
30
|
/** The error types a filter's `@Catch` names; empty to catch everything. */ catchTypes: 'meocord:catch-types',
|
|
@@ -2,7 +2,7 @@ import path from 'path';
|
|
|
2
2
|
import { warnDeprecatedBehaviour } from '../common/deprecation.js';
|
|
3
3
|
import { isExplainedError } from '../common/explained-error.js';
|
|
4
4
|
import { Logger } from '../common/logger.js';
|
|
5
|
-
import { isBuiltApplication } from './bundle-entry.util.js';
|
|
5
|
+
import { isBuiltApplication, STARTUP_ERRORS_KEY } from './bundle-entry.util.js';
|
|
6
6
|
import { comparablePath, framePath } from './source-path.util.js';
|
|
7
7
|
|
|
8
8
|
const REFUSAL = Symbol.for('meocord.refusal');
|
|
@@ -51,10 +51,10 @@ const REFUSAL = Symbol.for('meocord.refusal');
|
|
|
51
51
|
// A stack frame's function and file: `at fn (file:line:col)` or `at file:line:col`, the file possibly a file:// URL
|
|
52
52
|
const FRAME = /^\s*at (?:(.*?) \()?(.+?):\d+:\d+\)?$/;
|
|
53
53
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*/ function
|
|
54
|
+
* The first file of the application's own source an error's stack passes through, other than its entry, which only
|
|
55
|
+
* loads the rest, relative to `root`. The file alone: a line from a development build's source map can be off, and a
|
|
56
|
+
* compiler's decorate helper can be placed in any file, so those frames are skipped.
|
|
57
|
+
*/ function sourceFileOf(error, root, windows = process.platform === 'win32') {
|
|
58
58
|
const paths = windows ? path.win32 : path.posix;
|
|
59
59
|
const source = comparablePath(paths.join(root, 'src') + paths.sep, windows);
|
|
60
60
|
const entry = comparablePath(paths.join(root, 'src', 'main.ts'), windows);
|
|
@@ -65,9 +65,149 @@ const FRAME = /^\s*at (?:(.*?) \()?(.+?):\d+:\d+\)?$/;
|
|
|
65
65
|
const file = paths.normalize(framePath(name, windows));
|
|
66
66
|
const compared = comparablePath(file, windows);
|
|
67
67
|
if (!compared.startsWith(source) || compared === entry || compared.includes(dependencies)) continue;
|
|
68
|
-
return
|
|
68
|
+
return paths.relative(root, file).split(paths.sep).join('/');
|
|
69
|
+
}
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* A refusal as the application reports it: the message, led by the declaration it is about where the message does not
|
|
74
|
+
* name it, and the file of the application's source it comes from; see {@link sourceFileOf}.
|
|
75
|
+
*/ function describeRefusal(error, root, windows = process.platform === 'win32') {
|
|
76
|
+
const declaration = declarationOf(error);
|
|
77
|
+
const message = declaration && !error.message.startsWith(declaration) ? `${declaration}: ${error.message}` : error.message;
|
|
78
|
+
const file = sourceFileOf(error, root, windows);
|
|
79
|
+
return file ? `${message}\n in ${file}` : message;
|
|
80
|
+
}
|
|
81
|
+
// ---------------------------------------------------------------------------
|
|
82
|
+
// Startup errors: those create() and a testing module's compile() find, and those decorators find at import
|
|
83
|
+
// ---------------------------------------------------------------------------
|
|
84
|
+
const STARTUP_ERRORS = Symbol.for('meocord.startupErrors');
|
|
85
|
+
const DECLARED = Symbol.for('meocord.declaredStartupErrors');
|
|
86
|
+
const ALL_DECLARED = Symbol.for('meocord.allDeclaredStartupErrors');
|
|
87
|
+
// The startup errors kept while checks run under collectStartupErrors; undefined outside them
|
|
88
|
+
let kept;
|
|
89
|
+
/**
|
|
90
|
+
* Reports an error a startup check finds. Outside {@link collectStartupErrors} it is thrown, as a refusal; inside, it
|
|
91
|
+
* is kept, and the check goes on to find the rest.
|
|
92
|
+
*/ function startupError(error) {
|
|
93
|
+
refuse(error);
|
|
94
|
+
if (!kept) throw error;
|
|
95
|
+
// Two checks of one mistake, such as a class needing a translator, name it once
|
|
96
|
+
if (!kept.some((other)=>other.message === error.message)) kept.push(error);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Runs startup checks, and once they are done throws the first error they found, unchanged, with every one found on it
|
|
100
|
+
* for {@link startupErrorsOf}. An error that ends the checks after one was found is left out, as one the found error
|
|
101
|
+
* caused; one that ends them before any was found is thrown as it is.
|
|
102
|
+
*/ function collectStartupErrors(checks) {
|
|
103
|
+
const outer = kept;
|
|
104
|
+
const found = [];
|
|
105
|
+
kept = found;
|
|
106
|
+
let result;
|
|
107
|
+
try {
|
|
108
|
+
result = checks();
|
|
109
|
+
} catch (error) {
|
|
110
|
+
if (found.length === 0) throw error;
|
|
111
|
+
if (isRefusal(error) && !found.includes(error)) found.push(error);
|
|
112
|
+
throw firstOf(found);
|
|
113
|
+
} finally{
|
|
114
|
+
kept = outer;
|
|
115
|
+
}
|
|
116
|
+
if (found.length > 0) throw firstOf(found);
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Ends the checks under way with the errors found so far, before a step that is no check, such as binding or a warning:
|
|
121
|
+
* a run with one error stops where it stopped when the first error was thrown, and the errors of one pass of the
|
|
122
|
+
* checks are still reported together.
|
|
123
|
+
*/ function stopOnStartupErrors() {
|
|
124
|
+
if (kept && kept.length > 0) throw kept[0];
|
|
125
|
+
}
|
|
126
|
+
function firstOf(errors) {
|
|
127
|
+
const [first] = errors;
|
|
128
|
+
Object.defineProperty(first, STARTUP_ERRORS, {
|
|
129
|
+
value: errors,
|
|
130
|
+
configurable: true
|
|
131
|
+
});
|
|
132
|
+
return first;
|
|
133
|
+
}
|
|
134
|
+
/** Every startup error found together with `error`, the first of them; `error` alone when it was the only one. */ function startupErrorsOf(error) {
|
|
135
|
+
return error[STARTUP_ERRORS] ?? [
|
|
136
|
+
error
|
|
137
|
+
];
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Logs each startup error found with `error` as the application reports a refusal, and how many there were, when there
|
|
141
|
+
* was more than one; a lone error is left to whoever reports it now.
|
|
142
|
+
*/ function logStartupErrors(error, log, ending) {
|
|
143
|
+
const errors = startupErrorsOf(error);
|
|
144
|
+
if (errors.length < 2) return false;
|
|
145
|
+
for (const each of errors)log(describeRefusal(each, process.cwd()));
|
|
146
|
+
log(`MeoCord found ${errors.length} startup errors; ${ending}.`);
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
/** Sets how decorators report startup errors from here on, before the application's modules load. */ function setStartupErrorsMode(mode) {
|
|
150
|
+
globalThis[STARTUP_ERRORS_KEY] = mode;
|
|
151
|
+
}
|
|
152
|
+
/** Whether decorators keep their startup errors for create(), as `startupErrors: 'all'` has them. */ const keepsDeclaredErrors = ()=>globalThis[STARTUP_ERRORS_KEY] === 'all';
|
|
153
|
+
/** The declaration a decorator's startup error is about, `Class.method` or `Class`. */ function declarationOf(error) {
|
|
154
|
+
return error.declaration;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* A decorator that names, on each startup error it throws, the declaration it was applied to, `Class.method` or
|
|
158
|
+
* `Class`, as `declaration`, and the source file it is declared in, as `file`: the same error, thrown at the same
|
|
159
|
+
* moment, with its message unchanged. With `startupErrors: 'all'` the error is kept on the class instead, for create()
|
|
160
|
+
* to report with the rest, and the decorator applies nothing more.
|
|
161
|
+
*/ function declaring(decorate) {
|
|
162
|
+
return function(target, propertyKey, ...rest) {
|
|
163
|
+
try {
|
|
164
|
+
return decorate.call(this, target, propertyKey, ...rest);
|
|
165
|
+
} catch (error) {
|
|
166
|
+
if (!isRefusal(error)) throw error;
|
|
167
|
+
keepOrThrow(error, target, propertyKey);
|
|
168
|
+
return undefined;
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
function keepOrThrow(error, target, propertyKey) {
|
|
173
|
+
var _globalThis, _ALL_DECLARED;
|
|
174
|
+
// A decorator applied through another, such as applyDecorators, names the declaration once, where it was first thrown
|
|
175
|
+
if (declarationOf(error) === undefined) {
|
|
176
|
+
Object.defineProperty(error, 'declaration', {
|
|
177
|
+
value: decoratedName(target, propertyKey),
|
|
178
|
+
configurable: true
|
|
179
|
+
});
|
|
180
|
+
Object.defineProperty(error, 'file', {
|
|
181
|
+
get: ()=>sourceFileOf(error, process.cwd()),
|
|
182
|
+
configurable: true
|
|
183
|
+
});
|
|
69
184
|
}
|
|
70
|
-
|
|
185
|
+
if (!keepsDeclaredErrors()) throw error;
|
|
186
|
+
const owner = typeof target === 'function' ? target : target.constructor;
|
|
187
|
+
if (!Object.prototype.hasOwnProperty.call(owner, DECLARED)) Object.defineProperty(owner, DECLARED, {
|
|
188
|
+
value: []
|
|
189
|
+
});
|
|
190
|
+
const declared = owner[DECLARED];
|
|
191
|
+
if (!declared.includes(error)) declared.push(error);
|
|
192
|
+
const all = (_globalThis = globalThis)[_ALL_DECLARED = ALL_DECLARED] ?? (_globalThis[_ALL_DECLARED] = []);
|
|
193
|
+
if (!all.includes(error)) all.push(error);
|
|
194
|
+
}
|
|
195
|
+
/** The startup errors decorators kept on `classes` and the classes they extend, each once, in the order they were found. */ function declaredErrorsOf(classes) {
|
|
196
|
+
const found = new Set();
|
|
197
|
+
for (const cls of classes){
|
|
198
|
+
for(let current = cls; typeof current === 'function' && current !== Function.prototype; current = Object.getPrototypeOf(current)){
|
|
199
|
+
if (Object.prototype.hasOwnProperty.call(current, DECLARED)) for (const error of current[DECLARED])found.add(error);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
const order = allDeclaredErrors();
|
|
203
|
+
return [
|
|
204
|
+
...found
|
|
205
|
+
].sort((a, b)=>order.indexOf(a) - order.indexOf(b));
|
|
206
|
+
}
|
|
207
|
+
/** Every startup error decorators kept in this process, in the order they were found. */ function allDeclaredErrors() {
|
|
208
|
+
return [
|
|
209
|
+
...globalThis[ALL_DECLARED] ?? []
|
|
210
|
+
];
|
|
71
211
|
}
|
|
72
212
|
/**
|
|
73
213
|
* Reports a refusal nothing catches as one line, with its source file, and exits 1; other errors keep the runtime's
|
|
@@ -95,4 +235,4 @@ const FRAME = /^\s*at (?:(.*?) \()?(.+?):\d+:\d+\)?$/;
|
|
|
95
235
|
process.on('unhandledRejection', onRejection);
|
|
96
236
|
}
|
|
97
237
|
|
|
98
|
-
export { decoratedName, deprecatedOnMethod, describeRefusal, handOffRefusal, isRefusal, refuse, refuseOnClass, refuseOnMethod, reportRefusals };
|
|
238
|
+
export { allDeclaredErrors, collectStartupErrors, declarationOf, declaredErrorsOf, declaring, decoratedName, deprecatedOnMethod, describeRefusal, handOffRefusal, isRefusal, keepsDeclaredErrors, logStartupErrors, refuse, refuseOnClass, refuseOnMethod, reportRefusals, setStartupErrorsMode, sourceFileOf, startupError, startupErrorsOf, stopOnStartupErrors };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ColorResolvable, Interaction, Message, Locale } from 'discord.js';
|
|
2
|
-
import { C as CooldownStore, a as CooldownLimit, b as CooldownVerdict, c as CooldownEntry, d as CooldownBatchVerdict } from '../index-
|
|
2
|
+
import { C as CooldownStore, a as CooldownLimit, b as CooldownVerdict, c as CooldownEntry, d as CooldownBatchVerdict } from '../index-nn5p7OoX.cjs';
|
|
3
3
|
import { Token, ProviderToken, FactoryProvider, DeepReadonly, MeoCordTheme } from '../interface/index.cjs';
|
|
4
|
-
export { e as CommandNotFoundError, f as CooldownError, g as CooldownScope, h as CooldownStoreError, E as ExecutionContext, i as ExecutionContextType, G as GuardDeniedError, I as InstallContext, j as MemoryCooldownStore, k as MessageUsageError, l as MessageUsageIssue, m as MetadataDecorator, R as ResponseCall, n as ResponseEditFlags, o as ResponseEditPayload, p as ResponseErrorOptions, q as ResponseFlags, r as ResponseLockOptions, s as ResponsePayload, t as ResponsePhase, u as ResponseSendOptions, v as ResponseState, U as UserError, w as UserErrorOptions, V as ValidationError, x as ValidationIssue, y as cooldownMessage, z as cooldownStoreMessage, A as createMetadata, B as getInstallContext, H as respond } from '../index-
|
|
5
|
-
export { R as Route, a as RouteParams, b as RouteValue, c as RouteValues, r as route } from '../route-
|
|
6
|
-
import { T as Translator } from '../translator-
|
|
7
|
-
export { C as CatalogDefinition, a as CatalogShape, L as LocaleCatalog, b as LocalizationKey, M as MessageKey, c as MessageParams, P as PluralCategory, d as PluralMessage, S as StringMessageKey, e as Translate, f as TranslatorOptions, g as createTranslator, h as defineCatalog } from '../translator-
|
|
8
|
-
export { T as ThemeCache } from '../theme-resolvers-
|
|
4
|
+
export { e as CommandNotFoundError, f as CooldownError, g as CooldownScope, h as CooldownStoreError, E as ExecutionContext, i as ExecutionContextType, G as GuardDeniedError, I as InstallContext, j as MemoryCooldownStore, k as MessageUsageError, l as MessageUsageIssue, m as MetadataDecorator, R as ResponseCall, n as ResponseEditFlags, o as ResponseEditPayload, p as ResponseErrorOptions, q as ResponseFlags, r as ResponseLockOptions, s as ResponsePayload, t as ResponsePhase, u as ResponseSendOptions, v as ResponseState, U as UserError, w as UserErrorOptions, V as ValidationError, x as ValidationIssue, y as cooldownMessage, z as cooldownStoreMessage, A as createMetadata, B as getInstallContext, H as respond } from '../index-nn5p7OoX.cjs';
|
|
5
|
+
export { R as Route, a as RouteParams, b as RouteValue, c as RouteValues, r as route } from '../route-BZgFoNeB.cjs';
|
|
6
|
+
import { T as Translator } from '../translator-DHMkkCpg.cjs';
|
|
7
|
+
export { C as CatalogDefinition, a as CatalogShape, L as LocaleCatalog, b as LocalizationKey, M as MessageKey, c as MessageParams, P as PluralCategory, d as PluralMessage, S as StringMessageKey, e as Translate, f as TranslatorOptions, g as createTranslator, h as defineCatalog } from '../translator-DHMkkCpg.cjs';
|
|
8
|
+
export { T as ThemeCache } from '../theme-resolvers-UKr3-6Ys.cjs';
|
|
9
9
|
import '@rsbuild/core';
|
|
10
10
|
import '../controller.enum-DTDn69N9.cjs';
|
|
11
11
|
|
|
@@ -169,7 +169,7 @@ declare class Theme {
|
|
|
169
169
|
*
|
|
170
170
|
* @group Utilities
|
|
171
171
|
* @see {@link createMetadata}
|
|
172
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
172
|
+
* @see {@link https://meocord.dev/docs/4.2/custom-decorators | Custom decorators}
|
|
173
173
|
*/
|
|
174
174
|
declare function applyDecorators(...decorators: (ClassDecorator | MethodDecorator)[]): ClassDecorator & MethodDecorator;
|
|
175
175
|
/**
|
|
@@ -523,7 +523,7 @@ declare class ShardedCooldownStore extends CooldownStore {
|
|
|
523
523
|
* @group Utilities
|
|
524
524
|
* @category Localisation
|
|
525
525
|
* @see {@link createTranslator}
|
|
526
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
526
|
+
* @see {@link https://meocord.dev/docs/4.2/localisation | Localisation}
|
|
527
527
|
*/
|
|
528
528
|
declare function translateError(error: unknown, t: Translator<any>, target: Interaction | Message | Locale | `${Locale}`): string;
|
|
529
529
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ColorResolvable, Interaction, Message, Locale } from 'discord.js';
|
|
2
|
-
import { C as CooldownStore, a as CooldownLimit, b as CooldownVerdict, c as CooldownEntry, d as CooldownBatchVerdict } from '../index-
|
|
2
|
+
import { C as CooldownStore, a as CooldownLimit, b as CooldownVerdict, c as CooldownEntry, d as CooldownBatchVerdict } from '../index-CdXsFgjE.js';
|
|
3
3
|
import { Token, ProviderToken, FactoryProvider, DeepReadonly, MeoCordTheme } from '../interface/index.js';
|
|
4
|
-
export { e as CommandNotFoundError, f as CooldownError, g as CooldownScope, h as CooldownStoreError, E as ExecutionContext, i as ExecutionContextType, G as GuardDeniedError, I as InstallContext, j as MemoryCooldownStore, k as MessageUsageError, l as MessageUsageIssue, m as MetadataDecorator, R as ResponseCall, n as ResponseEditFlags, o as ResponseEditPayload, p as ResponseErrorOptions, q as ResponseFlags, r as ResponseLockOptions, s as ResponsePayload, t as ResponsePhase, u as ResponseSendOptions, v as ResponseState, U as UserError, w as UserErrorOptions, V as ValidationError, x as ValidationIssue, y as cooldownMessage, z as cooldownStoreMessage, A as createMetadata, B as getInstallContext, H as respond } from '../index-
|
|
5
|
-
export { R as Route, a as RouteParams, b as RouteValue, c as RouteValues, r as route } from '../route-
|
|
6
|
-
import { T as Translator } from '../translator-
|
|
7
|
-
export { C as CatalogDefinition, a as CatalogShape, L as LocaleCatalog, b as LocalizationKey, M as MessageKey, c as MessageParams, P as PluralCategory, d as PluralMessage, S as StringMessageKey, e as Translate, f as TranslatorOptions, g as createTranslator, h as defineCatalog } from '../translator-
|
|
8
|
-
export { T as ThemeCache } from '../theme-resolvers-
|
|
4
|
+
export { e as CommandNotFoundError, f as CooldownError, g as CooldownScope, h as CooldownStoreError, E as ExecutionContext, i as ExecutionContextType, G as GuardDeniedError, I as InstallContext, j as MemoryCooldownStore, k as MessageUsageError, l as MessageUsageIssue, m as MetadataDecorator, R as ResponseCall, n as ResponseEditFlags, o as ResponseEditPayload, p as ResponseErrorOptions, q as ResponseFlags, r as ResponseLockOptions, s as ResponsePayload, t as ResponsePhase, u as ResponseSendOptions, v as ResponseState, U as UserError, w as UserErrorOptions, V as ValidationError, x as ValidationIssue, y as cooldownMessage, z as cooldownStoreMessage, A as createMetadata, B as getInstallContext, H as respond } from '../index-CdXsFgjE.js';
|
|
5
|
+
export { R as Route, a as RouteParams, b as RouteValue, c as RouteValues, r as route } from '../route-BZgFoNeB.js';
|
|
6
|
+
import { T as Translator } from '../translator-BViWKtLJ.js';
|
|
7
|
+
export { C as CatalogDefinition, a as CatalogShape, L as LocaleCatalog, b as LocalizationKey, M as MessageKey, c as MessageParams, P as PluralCategory, d as PluralMessage, S as StringMessageKey, e as Translate, f as TranslatorOptions, g as createTranslator, h as defineCatalog } from '../translator-BViWKtLJ.js';
|
|
8
|
+
export { T as ThemeCache } from '../theme-resolvers-BcOJVzR9.js';
|
|
9
9
|
import '@rsbuild/core';
|
|
10
10
|
import '../controller.enum-DTDn69N9.js';
|
|
11
11
|
|
|
@@ -169,7 +169,7 @@ declare class Theme {
|
|
|
169
169
|
*
|
|
170
170
|
* @group Utilities
|
|
171
171
|
* @see {@link createMetadata}
|
|
172
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
172
|
+
* @see {@link https://meocord.dev/docs/4.2/custom-decorators | Custom decorators}
|
|
173
173
|
*/
|
|
174
174
|
declare function applyDecorators(...decorators: (ClassDecorator | MethodDecorator)[]): ClassDecorator & MethodDecorator;
|
|
175
175
|
/**
|
|
@@ -523,7 +523,7 @@ declare class ShardedCooldownStore extends CooldownStore {
|
|
|
523
523
|
* @group Utilities
|
|
524
524
|
* @category Localisation
|
|
525
525
|
* @see {@link createTranslator}
|
|
526
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
526
|
+
* @see {@link https://meocord.dev/docs/4.2/localisation | Localisation}
|
|
527
527
|
*/
|
|
528
528
|
declare function translateError(error: unknown, t: Translator<any>, target: Interaction | Message | Locale | `${Locale}`): string;
|
|
529
529
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ServiceIdentifier } from 'inversify';
|
|
2
|
-
import { J as MeoCordApplication } from '../index-
|
|
2
|
+
import { J as MeoCordApplication } from '../index-nn5p7OoX.cjs';
|
|
3
3
|
import { MetadataDecorator } from '../common/index.cjs';
|
|
4
4
|
import { MessageScope, MessageCommandOptions, MessageHelp } from '../interface/index.cjs';
|
|
5
5
|
import { RESTPostAPIApplicationCommandsJSONBody, ClientEvents, Message, Client } from 'discord.js';
|
|
@@ -46,9 +46,11 @@ declare class MeoCordFactory {
|
|
|
46
46
|
* load, naming the file and the reason, with what to do about it, when a provider cannot
|
|
47
47
|
* be bound, such as one for a token MeoCord binds itself, when two handlers take one command, or two builder
|
|
48
48
|
* classes build one, naming both, and for any other mistake it refuses as the app loads, such as two component
|
|
49
|
-
* patterns that match the same customIds.
|
|
50
|
-
*
|
|
51
|
-
*
|
|
49
|
+
* patterns that match the same customIds. Each check reports every error it finds, and the first is thrown,
|
|
50
|
+
* unchanged. When there are several, each is logged first, with where in the source it comes from; a lone one is
|
|
51
|
+
* logged in a built application. Either way `isExplainedError()` then tells a caller not to log it again; in a
|
|
52
|
+
* shard of process sharding, the manager logs it. With `startupErrors: 'all'` in `meocord.config.ts`, the errors
|
|
53
|
+
* decorators kept are among them.
|
|
52
54
|
*/
|
|
53
55
|
static create(target: ServiceIdentifier): MeoCordApplication;
|
|
54
56
|
private static createApplication;
|
|
@@ -260,7 +262,7 @@ interface HandlerFilter<K extends HandlerKind = HandlerKind> {
|
|
|
260
262
|
*
|
|
261
263
|
* @group Controllers
|
|
262
264
|
* @see {@link HandlerEntry}
|
|
263
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
265
|
+
* @see {@link https://meocord.dev/docs/4.2/handler-discovery | Handler discovery}
|
|
264
266
|
*/
|
|
265
267
|
declare class HandlerRegistry {
|
|
266
268
|
private readonly classes;
|
|
@@ -416,7 +418,7 @@ type MethodResult<T, M extends keyof T> = T[M] extends (...args: any[]) => infer
|
|
|
416
418
|
*
|
|
417
419
|
* @group Controllers
|
|
418
420
|
* @see {@link ShardCallResult}
|
|
419
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
421
|
+
* @see {@link https://meocord.dev/docs/4.2/sharding | Sharding}
|
|
420
422
|
*/
|
|
421
423
|
declare class ShardContext {
|
|
422
424
|
private readonly client;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ServiceIdentifier } from 'inversify';
|
|
2
|
-
import { J as MeoCordApplication } from '../index-
|
|
2
|
+
import { J as MeoCordApplication } from '../index-CdXsFgjE.js';
|
|
3
3
|
import { MetadataDecorator } from '../common/index.js';
|
|
4
4
|
import { MessageScope, MessageCommandOptions, MessageHelp } from '../interface/index.js';
|
|
5
5
|
import { RESTPostAPIApplicationCommandsJSONBody, ClientEvents, Message, Client } from 'discord.js';
|
|
@@ -46,9 +46,11 @@ declare class MeoCordFactory {
|
|
|
46
46
|
* load, naming the file and the reason, with what to do about it, when a provider cannot
|
|
47
47
|
* be bound, such as one for a token MeoCord binds itself, when two handlers take one command, or two builder
|
|
48
48
|
* classes build one, naming both, and for any other mistake it refuses as the app loads, such as two component
|
|
49
|
-
* patterns that match the same customIds.
|
|
50
|
-
*
|
|
51
|
-
*
|
|
49
|
+
* patterns that match the same customIds. Each check reports every error it finds, and the first is thrown,
|
|
50
|
+
* unchanged. When there are several, each is logged first, with where in the source it comes from; a lone one is
|
|
51
|
+
* logged in a built application. Either way `isExplainedError()` then tells a caller not to log it again; in a
|
|
52
|
+
* shard of process sharding, the manager logs it. With `startupErrors: 'all'` in `meocord.config.ts`, the errors
|
|
53
|
+
* decorators kept are among them.
|
|
52
54
|
*/
|
|
53
55
|
static create(target: ServiceIdentifier): MeoCordApplication;
|
|
54
56
|
private static createApplication;
|
|
@@ -260,7 +262,7 @@ interface HandlerFilter<K extends HandlerKind = HandlerKind> {
|
|
|
260
262
|
*
|
|
261
263
|
* @group Controllers
|
|
262
264
|
* @see {@link HandlerEntry}
|
|
263
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
265
|
+
* @see {@link https://meocord.dev/docs/4.2/handler-discovery | Handler discovery}
|
|
264
266
|
*/
|
|
265
267
|
declare class HandlerRegistry {
|
|
266
268
|
private readonly classes;
|
|
@@ -416,7 +418,7 @@ type MethodResult<T, M extends keyof T> = T[M] extends (...args: any[]) => infer
|
|
|
416
418
|
*
|
|
417
419
|
* @group Controllers
|
|
418
420
|
* @see {@link ShardCallResult}
|
|
419
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
421
|
+
* @see {@link https://meocord.dev/docs/4.2/sharding | Sharding}
|
|
420
422
|
*/
|
|
421
423
|
declare class ShardContext {
|
|
422
424
|
private readonly client;
|
|
@@ -32,7 +32,7 @@ import '@rsbuild/core';
|
|
|
32
32
|
* @group Decorators
|
|
33
33
|
* @category App
|
|
34
34
|
* @see {@link Inject}
|
|
35
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
35
|
+
* @see {@link https://meocord.dev/docs/4.2/services | Services}
|
|
36
36
|
*/
|
|
37
37
|
declare function Service<T>(): (target: new (...args: any[]) => T, propertyKey?: string | symbol) => void;
|
|
38
38
|
|
|
@@ -63,7 +63,7 @@ declare function Service<T>(): (target: new (...args: any[]) => T, propertyKey?:
|
|
|
63
63
|
* @group Decorators
|
|
64
64
|
* @category Handlers
|
|
65
65
|
* @see {@link Command}
|
|
66
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
66
|
+
* @see {@link https://meocord.dev/docs/4.2/slash-commands | Slash commands}
|
|
67
67
|
*/
|
|
68
68
|
declare function CommandBuilder<T extends BuildableCommandType>(commandType: T, options?: CommandBuilderOptions): (target: new () => CommandBuilderBase<T>, propertyKey?: string | symbol) => void;
|
|
69
69
|
|
|
@@ -141,7 +141,7 @@ type ParamsFit<P, Given> = [Given] extends [Unpiped<P>] ? unknown : [Misfits<P,
|
|
|
141
141
|
* @group Decorators
|
|
142
142
|
* @category Handlers
|
|
143
143
|
* @see {@link ReactionHandler}
|
|
144
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
144
|
+
* @see {@link https://meocord.dev/docs/4.2/message-commands | Message commands}
|
|
145
145
|
*/
|
|
146
146
|
declare function MessageHandler<T extends OmitPartialGroupDMChannel<Message<boolean>>, R>(): (target: object, propertyKey: string, _descriptor: TypedPropertyDescriptor<(message: T) => R> | TypedPropertyDescriptor<() => R>) => void;
|
|
147
147
|
/**
|
|
@@ -179,7 +179,7 @@ declare function MessageHandler<T extends OmitPartialGroupDMChannel<Message<bool
|
|
|
179
179
|
* @group Decorators
|
|
180
180
|
* @category Handlers
|
|
181
181
|
* @see {@link ParamsOf}
|
|
182
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
182
|
+
* @see {@link https://meocord.dev/docs/4.2/message-commands | Message commands}
|
|
183
183
|
*/
|
|
184
184
|
declare function MessageHandler<T extends OmitPartialGroupDMChannel<Message<boolean>>, R, const Pattern extends string = string>(pattern: Pattern, options?: MessageHandlerOptions): PatternedMessageHandlerDecorator<T, R, Pattern>;
|
|
185
185
|
type ReactionHandlerDecorator<T extends MessageReaction | PartialMessageReaction, R> = (target: object, propertyKey: string, descriptor: TypedPropertyDescriptor<(reaction: T, options: ReactionEvent) => R> | TypedPropertyDescriptor<(reaction: T) => R> | TypedPropertyDescriptor<() => R>) => void;
|
|
@@ -215,7 +215,7 @@ type ReactionHandlerDecorator<T extends MessageReaction | PartialMessageReaction
|
|
|
215
215
|
* @group Decorators
|
|
216
216
|
* @category Handlers
|
|
217
217
|
* @see {@link ReactionEvent}
|
|
218
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
218
|
+
* @see {@link https://meocord.dev/docs/4.2/reactions | Reactions}
|
|
219
219
|
*/
|
|
220
220
|
declare function ReactionHandler<T extends MessageReaction | PartialMessageReaction, R>(emoji?: string, settings?: ReactionHandlerSettings): ReactionHandlerDecorator<T, R>;
|
|
221
221
|
/**
|
|
@@ -307,10 +307,11 @@ type TypedParamsAccept<N, T, P> = T extends CommandType ? string extends Pattern
|
|
|
307
307
|
* the keys the handler's params require are checked against the pattern or route, a typed segment's value against
|
|
308
308
|
* its type, and a select menu's choices, such as `values: string[]`, against what discord.js gives; a key a pipe
|
|
309
309
|
* produces is declared `Piped<T>`, and left to the pipe. Two component handlers of one type whose patterns match
|
|
310
|
-
* exactly the same ids stop the bot at startup
|
|
311
|
-
*
|
|
312
|
-
*
|
|
313
|
-
*
|
|
310
|
+
* exactly the same ids stop the bot at startup. Patterns that both match an id rank segment by segment, left to
|
|
311
|
+
* right: at the first segment one spells out as literal text and the other leaves to a param, the literal one runs,
|
|
312
|
+
* so `profile/me/{section}` takes `profile/me/edit` from `profile/{userId}/edit`; between patterns that leaves tied,
|
|
313
|
+
* the narrower type at the first param where they differ. Two still tied are warned about as the bot starts, and the
|
|
314
|
+
* one listed first runs. A context menu handler receives the kind its builder's `setType()` names, and one
|
|
314
315
|
* declaring the other kind fails to compile; when the compiler cannot tell the kind, `@Command` checks the parameter
|
|
315
316
|
* type it emits as it applies. A subclass that re-declares an inherited handler on the same name or pattern takes its
|
|
316
317
|
* own builder and options; on another it still answers the inherited one too, which the bot warns about as it
|
|
@@ -343,8 +344,8 @@ type TypedParamsAccept<N, T, P> = T extends CommandType ? string extends Pattern
|
|
|
343
344
|
* @category Handlers
|
|
344
345
|
* @see {@link CommandBuilder}
|
|
345
346
|
* @see {@link route}
|
|
346
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
347
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
347
|
+
* @see {@link https://meocord.dev/docs/4.2/slash-commands | Slash commands}
|
|
348
|
+
* @see {@link https://meocord.dev/docs/4.2/components | Buttons, selects and modals}
|
|
348
349
|
*/
|
|
349
350
|
declare function Command<CBC extends BuildableCommandType, T extends CommandBuilderConstructor<CBC> | CommandType, N extends string | Route = string>(name: N, builderOrType: T): <P extends Record<string, any>, R>(target: object, propertyKey: string, _descriptor: (TypedPropertyDescriptor<Handles<CommandInteractionType<CBC, T>, [params: P], R>> | TypedPropertyDescriptor<Handles<CommandInteractionType<CBC, T>, [], R>> | TypedPropertyDescriptor<() => R>) & RouteAccepts<N, T, P> & TypedParamsAccept<N, T, P> & ChoicesAccept<N, T, P>) => void;
|
|
350
351
|
/**
|
|
@@ -383,7 +384,7 @@ declare function Command<CBC extends BuildableCommandType, T extends CommandBuil
|
|
|
383
384
|
* @group Decorators
|
|
384
385
|
* @category Handlers
|
|
385
386
|
* @see {@link Command}
|
|
386
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
387
|
+
* @see {@link https://meocord.dev/docs/4.2/autocomplete | Autocomplete}
|
|
387
388
|
*/
|
|
388
389
|
declare function Autocomplete<_R = unknown>(commandPath: string, optionName?: string): <P extends Record<string, any>, R>(target: object, propertyKey: string, _descriptor: TypedPropertyDescriptor<(interaction: AutocompleteInteraction, params: P) => R> | TypedPropertyDescriptor<(interaction: AutocompleteInteraction) => R> | TypedPropertyDescriptor<() => R>) => void;
|
|
389
390
|
|
|
@@ -419,7 +420,7 @@ declare function Autocomplete<_R = unknown>(commandPath: string, optionName?: st
|
|
|
419
420
|
* @category Controllers
|
|
420
421
|
* @see {@link Command}
|
|
421
422
|
* @see {@link ControllerOptions}
|
|
422
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
423
|
+
* @see {@link https://meocord.dev/docs/4.2/how-a-call-runs | How a call runs}
|
|
423
424
|
*/
|
|
424
425
|
declare function Controller(options?: ControllerOptions): (target: abstract new (...args: any[]) => unknown, propertyKey?: string | symbol) => void;
|
|
425
426
|
|
|
@@ -449,7 +450,7 @@ declare function Controller(options?: ControllerOptions): (target: abstract new
|
|
|
449
450
|
* @group Decorators
|
|
450
451
|
* @category Handlers
|
|
451
452
|
* @see {@link Once}
|
|
452
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
453
|
+
* @see {@link https://meocord.dev/docs/4.2/gateway-events | Gateway events}
|
|
453
454
|
*/
|
|
454
455
|
declare function On<E extends keyof ClientEvents>(event: E): <F extends (...args: ClientEvents[E]) => unknown>(target: object, propertyKey: string, _descriptor: TypedPropertyDescriptor<F>) => void;
|
|
455
456
|
/**
|
|
@@ -475,7 +476,7 @@ declare function On<E extends keyof ClientEvents>(event: E): <F extends (...args
|
|
|
475
476
|
* @group Decorators
|
|
476
477
|
* @category Handlers
|
|
477
478
|
* @see {@link On}
|
|
478
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
479
|
+
* @see {@link https://meocord.dev/docs/4.2/gateway-events | Gateway events}
|
|
479
480
|
*/
|
|
480
481
|
declare function Once<E extends keyof ClientEvents>(event: E): <F extends (...args: ClientEvents[E]) => unknown>(target: object, propertyKey: string, _descriptor: TypedPropertyDescriptor<F>) => void;
|
|
481
482
|
|
|
@@ -525,7 +526,7 @@ type CheckedEntry<E, Base extends abstract new (...args: any[]) => unknown> = E
|
|
|
525
526
|
* @see {@link UseGuard}
|
|
526
527
|
* @see {@link GuardDeniedError}
|
|
527
528
|
* @see {@link ExecutionContext}
|
|
528
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
529
|
+
* @see {@link https://meocord.dev/docs/4.2/guards | Guards}
|
|
529
530
|
*/
|
|
530
531
|
declare function Guard(options?: GuardOptions): (target: any, propertyKey?: string | symbol) => void;
|
|
531
532
|
/**
|
|
@@ -557,7 +558,7 @@ declare function Guard(options?: GuardOptions): (target: any, propertyKey?: stri
|
|
|
557
558
|
* @see {@link Guard}
|
|
558
559
|
* @see {@link GuardDeniedError}
|
|
559
560
|
* @see {@link ExecutionContext}
|
|
560
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
561
|
+
* @see {@link https://meocord.dev/docs/4.2/guards | Guards}
|
|
561
562
|
*/
|
|
562
563
|
declare function UseGuard<const T extends readonly unknown[]>(...entries: {
|
|
563
564
|
[K in keyof T]: CheckedEntry<T[K], new (...args: any[]) => GuardInterface>;
|
|
@@ -595,7 +596,7 @@ declare function UseGuard<const T extends readonly unknown[]>(...entries: {
|
|
|
595
596
|
* @group Decorators
|
|
596
597
|
* @category Pipeline stages
|
|
597
598
|
* @see {@link UseInterceptor}
|
|
598
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
599
|
+
* @see {@link https://meocord.dev/docs/4.2/interceptors | Interceptors}
|
|
599
600
|
*/
|
|
600
601
|
declare function Interceptor(options?: InterceptorOptions): (target: new (...args: any[]) => InterceptorInterface, propertyKey?: string | symbol) => void;
|
|
601
602
|
/**
|
|
@@ -627,7 +628,7 @@ declare function Interceptor(options?: InterceptorOptions): (target: new (...arg
|
|
|
627
628
|
* @group Decorators
|
|
628
629
|
* @category Pipeline stages
|
|
629
630
|
* @see {@link Interceptor}
|
|
630
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
631
|
+
* @see {@link https://meocord.dev/docs/4.2/interceptors | Interceptors}
|
|
631
632
|
*/
|
|
632
633
|
declare function UseInterceptor<const T extends readonly unknown[]>(...interceptors: {
|
|
633
634
|
[K in keyof T]: CheckedEntry<T[K], new (...args: any[]) => InterceptorInterface>;
|
|
@@ -660,7 +661,7 @@ declare function UseInterceptor<const T extends readonly unknown[]>(...intercept
|
|
|
660
661
|
* @group Decorators
|
|
661
662
|
* @category Pipeline stages
|
|
662
663
|
* @see {@link UseFilter}
|
|
663
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
664
|
+
* @see {@link https://meocord.dev/docs/4.2/exception-filters | Exception filters}
|
|
664
665
|
*/
|
|
665
666
|
declare function Catch(...errorTypes: (abstract new (...args: any[]) => unknown)[]): (target: new (...args: any[]) => ExceptionFilter<any>, propertyKey?: string | symbol) => void;
|
|
666
667
|
/**
|
|
@@ -693,7 +694,7 @@ declare function Catch(...errorTypes: (abstract new (...args: any[]) => unknown)
|
|
|
693
694
|
* @group Decorators
|
|
694
695
|
* @category Pipeline stages
|
|
695
696
|
* @see {@link Catch}
|
|
696
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
697
|
+
* @see {@link https://meocord.dev/docs/4.2/exception-filters | Exception filters}
|
|
697
698
|
*/
|
|
698
699
|
declare function UseFilter<const T extends readonly unknown[]>(...filters: {
|
|
699
700
|
[K in keyof T]: CheckedEntry<T[K], new (...args: any[]) => ExceptionFilter<any>>;
|
|
@@ -888,7 +889,7 @@ interface MeoCordOptions<G extends readonly unknown[] = readonly unknown[], I ex
|
|
|
888
889
|
* @see {@link MeoCordOptions}
|
|
889
890
|
* @see {@link MeoCordFactory}
|
|
890
891
|
* @see {@link MeoCordConfig}
|
|
891
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
892
|
+
* @see {@link https://meocord.dev/docs/4.2/configuration | Configuration}
|
|
892
893
|
*/
|
|
893
894
|
declare function MeoCord<const G extends readonly unknown[] = [], const I extends readonly unknown[] = [], const F extends readonly unknown[] = []>(options: MeoCordOptions<G, I, F>): (target: any, propertyKey?: string | symbol) => void;
|
|
894
895
|
|
|
@@ -948,7 +949,7 @@ type AcceptsInput<P, Input> = [P] extends [NoInput] ? unknown : [Input] extends
|
|
|
948
949
|
* @category Pipeline stages
|
|
949
950
|
* @see {@link UsePipe}
|
|
950
951
|
* @see {@link ValidationError}
|
|
951
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
952
|
+
* @see {@link https://meocord.dev/docs/4.2/validation | Validation and pipes}
|
|
952
953
|
*/
|
|
953
954
|
declare function Validate<S extends StandardSchemaV1, const Pipes extends ValidatePipes<S> = Record<never, never>>(schema: S, options?: ValidateOptions<Pipes>): <M extends Handler>(target: object, propertyKey: string, _descriptor: TypedPropertyDescriptor<M> & AcceptsInput<ParamsOf<M>, ValidatedInput<S, Pipes>>) => void;
|
|
954
955
|
/** Allows the descriptor when the handler's params take the pipe's output at `key`. */
|
|
@@ -983,7 +984,7 @@ type AcceptsPiped<P, K extends string, Out> = [P] extends [NoInput] ? unknown :
|
|
|
983
984
|
* @category Pipeline stages
|
|
984
985
|
* @see {@link Pipe}
|
|
985
986
|
* @see {@link Validate}
|
|
986
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
987
|
+
* @see {@link https://meocord.dev/docs/4.2/validation | Validation and pipes}
|
|
987
988
|
*/
|
|
988
989
|
declare function UsePipe<K extends string, const Pipes extends readonly [PipeEntryOf, ...PipeEntryOf[]]>(key: K, ...pipes: Pipes & {
|
|
989
990
|
[I in keyof Pipes]: CheckedEntry<Pipes[I], new (...args: any[]) => PipeInterface>;
|
|
@@ -1012,7 +1013,7 @@ declare function UsePipe<K extends string, const Pipes extends readonly [PipeEnt
|
|
|
1012
1013
|
* @group Decorators
|
|
1013
1014
|
* @category Pipeline stages
|
|
1014
1015
|
* @see {@link UsePipe}
|
|
1015
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
1016
|
+
* @see {@link https://meocord.dev/docs/4.2/validation | Validation and pipes}
|
|
1016
1017
|
*/
|
|
1017
1018
|
declare function Pipe(): (target: new (...args: any[]) => PipeInterface, propertyKey?: string | symbol) => void;
|
|
1018
1019
|
|
|
@@ -1068,7 +1069,7 @@ interface CooldownByDecorator<P> {
|
|
|
1068
1069
|
* @see {@link CooldownOptions}
|
|
1069
1070
|
* @see {@link CooldownError}
|
|
1070
1071
|
* @see {@link CooldownStore}
|
|
1071
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
1072
|
+
* @see {@link https://meocord.dev/docs/4.2/cooldowns | Cooldowns}
|
|
1072
1073
|
*/
|
|
1073
1074
|
declare function Cooldown(options: CooldownOptions & {
|
|
1074
1075
|
by?: undefined;
|
|
@@ -1162,7 +1163,7 @@ interface DeferOptions {
|
|
|
1162
1163
|
* @category Pipeline stages
|
|
1163
1164
|
* @see {@link DeferOptions}
|
|
1164
1165
|
* @see {@link respond}
|
|
1165
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
1166
|
+
* @see {@link https://meocord.dev/docs/4.2/defer | Deferring}
|
|
1166
1167
|
*/
|
|
1167
1168
|
declare function Defer(options?: DeferOptions): MethodDecorator;
|
|
1168
1169
|
|
|
@@ -1189,7 +1190,7 @@ declare function Defer(options?: DeferOptions): MethodDecorator;
|
|
|
1189
1190
|
* @category Params
|
|
1190
1191
|
* @see {@link Service}
|
|
1191
1192
|
* @see {@link createToken}
|
|
1192
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
1193
|
+
* @see {@link https://meocord.dev/docs/4.2/services | Services}
|
|
1193
1194
|
*/
|
|
1194
1195
|
declare function Inject(token: ProviderToken): (target: object, propertyKey: string | symbol | undefined, parameterIndex: number) => void;
|
|
1195
1196
|
|
|
@@ -1224,7 +1225,7 @@ declare function Inject(token: ProviderToken): (target: object, propertyKey: str
|
|
|
1224
1225
|
* @pipeline observers-settled once the call has settled and been answered, however it ended
|
|
1225
1226
|
* @group Decorators
|
|
1226
1227
|
* @category Pipeline stages
|
|
1227
|
-
* @see {@link https://meocord.dev/docs/4.
|
|
1228
|
+
* @see {@link https://meocord.dev/docs/4.2/observers | Observers}
|
|
1228
1229
|
*/
|
|
1229
1230
|
declare function Observer(options?: ObserverOptions): (target: new (...args: any[]) => DispatchObserver, propertyKey?: string | symbol) => void;
|
|
1230
1231
|
|