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.
Files changed (95) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/dist/cjs/_shared/{controller.decorator-BywwkU9O.cjs → controller.decorator-CRn9kWob.cjs} +295 -87
  3. package/dist/cjs/_shared/{providers-BMMLp2SN.cjs → providers-ChvMqnLd.cjs} +74 -40
  4. package/dist/cjs/_shared/{sharded-cooldown-store-B65iaiAy.cjs → sharded-cooldown-store-BdAUTdYs.cjs} +1 -1
  5. package/dist/cjs/_shared/{startup-roots-lFc69AxC.cjs → startup-roots-CQo8mSP8.cjs} +158 -72
  6. package/dist/cjs/_shared/{translate-error-BnM8FbSH.cjs → translate-error-DhDVbT5M.cjs} +12 -3
  7. package/dist/cjs/common/index.cjs +4 -4
  8. package/dist/cjs/core/index.cjs +195 -157
  9. package/dist/cjs/decorator/index.cjs +66 -57
  10. package/dist/cjs/testing/index.cjs +733 -301
  11. package/dist/cli.json +1 -1
  12. package/dist/esm/bin/app-template/README.md.template +3 -1
  13. package/dist/esm/bin/app-template/src/controllers/button/sample.button.controller.spec.ts.template +8 -4
  14. package/dist/esm/bin/app-template/src/controllers/button/sample.button.controller.ts.template +2 -2
  15. package/dist/esm/bin/app-template/src/guards/owner.guard.spec.ts.template +8 -4
  16. package/dist/esm/bin/app-template/src/guards/owner.guard.ts.template +1 -1
  17. package/dist/esm/bin/app-template/vitest.config.ts.template +1 -1
  18. package/dist/esm/bin/app-template/vitest.setup.ts.template +7 -3
  19. package/dist/esm/build/load-config.pre-entry.js +4 -1
  20. package/dist/esm/common/decorator.js +6 -6
  21. package/dist/esm/common/deprecation.js +2 -2
  22. package/dist/esm/common/errors.js +2 -2
  23. package/dist/esm/common/execution-context.js +1 -1
  24. package/dist/esm/common/metadata.js +1 -1
  25. package/dist/esm/common/route.js +10 -1
  26. package/dist/esm/common/translate-error.js +1 -1
  27. package/dist/esm/core/command-conflicts.js +34 -34
  28. package/dist/esm/core/component-routes.js +74 -31
  29. package/dist/esm/core/dispatcher.js +51 -7
  30. package/dist/esm/core/filter-runner.js +2 -2
  31. package/dist/esm/core/handler-pipeline.js +27 -14
  32. package/dist/esm/core/handler-registry.js +1 -1
  33. package/dist/esm/core/interceptor-runner.js +2 -2
  34. package/dist/esm/core/meocord-factory.js +196 -157
  35. package/dist/esm/core/message-routes.js +4 -3
  36. package/dist/esm/core/observer-runner.js +4 -3
  37. package/dist/esm/core/providers.js +38 -21
  38. package/dist/esm/core/route-specificity.js +4 -4
  39. package/dist/esm/core/scalar-types.js +15 -3
  40. package/dist/esm/core/shard-context.js +1 -1
  41. package/dist/esm/core/startup-roots.js +2 -3
  42. package/dist/esm/core/theme-runtime.js +2 -2
  43. package/dist/esm/decorator/app.decorator.js +12 -7
  44. package/dist/esm/decorator/command-builder.decorator.js +4 -4
  45. package/dist/esm/decorator/controller-class.decorator.js +9 -4
  46. package/dist/esm/decorator/controller.decorator.js +110 -67
  47. package/dist/esm/decorator/cooldown.decorator.js +3 -3
  48. package/dist/esm/decorator/defer.decorator.js +4 -4
  49. package/dist/esm/decorator/event.decorator.js +5 -5
  50. package/dist/esm/decorator/filter.decorator.js +7 -7
  51. package/dist/esm/decorator/guard.decorator.js +8 -8
  52. package/dist/esm/decorator/inject.decorator.js +4 -4
  53. package/dist/esm/decorator/interceptor.decorator.js +7 -7
  54. package/dist/esm/decorator/observer.decorator.js +4 -4
  55. package/dist/esm/decorator/service.decorator.js +4 -4
  56. package/dist/esm/decorator/theme.decorator.js +3 -3
  57. package/dist/esm/decorator/validation.decorator.js +10 -10
  58. package/dist/esm/package.json.js +1 -1
  59. package/dist/esm/testing/catalog.js +1 -1
  60. package/dist/esm/testing/cooldown-store-suite.js +18 -10
  61. package/dist/esm/testing/discord-defaults.js +60 -7
  62. package/dist/esm/testing/index.js +4 -2
  63. package/dist/esm/testing/inspect-handler.js +20 -3
  64. package/dist/esm/testing/meocord-testing-module.js +229 -188
  65. package/dist/esm/testing/mock-fn.js +80 -10
  66. package/dist/esm/testing/mock-interaction.js +223 -72
  67. package/dist/esm/testing/response.js +1 -1
  68. package/dist/esm/testing/routing.js +39 -14
  69. package/dist/esm/testing/startup-errors.js +26 -0
  70. package/dist/esm/testing/strict-mocks.js +45 -0
  71. package/dist/esm/testing/theme.js +1 -1
  72. package/dist/esm/util/bundle-entry.util.js +2 -1
  73. package/dist/esm/util/interaction.util.js +1 -1
  74. package/dist/esm/util/meocord-config-validation.util.js +1 -0
  75. package/dist/esm/util/metadata-keys.js +1 -0
  76. package/dist/esm/util/refusal.util.js +148 -8
  77. package/dist/types/common/index.d.cts +8 -8
  78. package/dist/types/common/index.d.ts +8 -8
  79. package/dist/types/core/index.d.cts +8 -6
  80. package/dist/types/core/index.d.ts +8 -6
  81. package/dist/types/decorator/index.d.cts +30 -29
  82. package/dist/types/decorator/index.d.ts +30 -29
  83. package/dist/types/{index-D7n0FBMm.d.ts → index-CdXsFgjE.d.ts} +62 -15
  84. package/dist/types/{index-DEP0NYrU.d.cts → index-nn5p7OoX.d.cts} +62 -15
  85. package/dist/types/interface/index.d.cts +1 -1
  86. package/dist/types/interface/index.d.ts +1 -1
  87. package/dist/types/{route-C-aMI7Sl.d.cts → route-BZgFoNeB.d.cts} +5 -2
  88. package/dist/types/{route-C-aMI7Sl.d.ts → route-BZgFoNeB.d.ts} +5 -2
  89. package/dist/types/testing/index.d.cts +245 -31
  90. package/dist/types/testing/index.d.ts +245 -31
  91. package/dist/types/{theme-resolvers-DedxyscT.d.ts → theme-resolvers-BcOJVzR9.d.ts} +1 -1
  92. package/dist/types/{theme-resolvers-COHdX5g6.d.cts → theme-resolvers-UKr3-6Ys.d.cts} +1 -1
  93. package/dist/types/{translator-J6tIUfdp.d.ts → translator-BViWKtLJ.d.ts} +1 -1
  94. package/dist/types/{translator-B4mc1lzJ.d.cts → translator-DHMkkCpg.d.cts} +1 -1
  95. package/package.json +3 -2
@@ -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.1/services | Services}
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.1/slash-commands | Slash commands}
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.1/message-commands | Message commands}
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.1/message-commands | Message commands}
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.1/reactions | Reactions}
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; patterns that only overlap are warned about, naming the one that
311
- * runs: the more specific, or between equally specific ones, the one listed first. In the next major version (5.0),
312
- * the one that spells out the first segment where two equally specific patterns differ runs instead, and the warning
313
- * names the pairs that changes. A context menu handler receives the kind its builder's `setType()` names, and one
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.1/slash-commands | Slash commands}
347
- * @see {@link https://meocord.dev/docs/4.1/components | Buttons, selects and modals}
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.1/autocomplete | Autocomplete}
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.1/how-a-call-runs | How a call runs}
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.1/gateway-events | Gateway events}
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.1/gateway-events | Gateway events}
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.1/guards | Guards}
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.1/guards | Guards}
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.1/interceptors | Interceptors}
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.1/interceptors | Interceptors}
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.1/exception-filters | Exception filters}
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.1/exception-filters | Exception filters}
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.1/configuration | Configuration}
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.1/validation | Validation and pipes}
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.1/validation | Validation and pipes}
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.1/validation | Validation and pipes}
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.1/cooldowns | Cooldowns}
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.1/defer | Deferring}
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.1/services | Services}
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.1/observers | Observers}
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
 
@@ -48,7 +48,7 @@ interface MetadataDecorator<T> {
48
48
  *
49
49
  * @group Utilities
50
50
  * @see {@link ExecutionContext}
51
- * @see {@link https://meocord.dev/docs/4.1/guards | Guards}
51
+ * @see {@link https://meocord.dev/docs/4.2/guards | Guards}
52
52
  */
53
53
  declare function createMetadata<T>(description?: string): MetadataDecorator<T>;
54
54
 
@@ -781,7 +781,7 @@ type ExecutionContextType = 'interaction' | 'autocomplete' | 'message' | 'reacti
781
781
  * @group Utilities
782
782
  * @see {@link createMetadata}
783
783
  * @see {@link StageParams}
784
- * @see {@link https://meocord.dev/docs/4.1/guards | Guards}
784
+ * @see {@link https://meocord.dev/docs/4.2/guards | Guards}
785
785
  */
786
786
  declare abstract class ExecutionContext {
787
787
  /**
@@ -1348,7 +1348,7 @@ declare class UserError extends Error {
1348
1348
  * @group Responses
1349
1349
  * @category Errors
1350
1350
  * @see {@link Catch}
1351
- * @see {@link https://meocord.dev/docs/4.1/exception-filters | Exception filters}
1351
+ * @see {@link https://meocord.dev/docs/4.2/exception-filters | Exception filters}
1352
1352
  */
1353
1353
  declare class CommandNotFoundError extends Error {
1354
1354
  /** @param message - What the error says, `No handler matched the interaction.` unless given. */
@@ -1439,7 +1439,7 @@ interface MessageUsageIssue {
1439
1439
  * @category Errors
1440
1440
  * @see {@link MessageHandler}
1441
1441
  * @see {@link translateError}
1442
- * @see {@link https://meocord.dev/docs/4.1/message-commands | Message commands}
1442
+ * @see {@link https://meocord.dev/docs/4.2/message-commands | Message commands}
1443
1443
  */
1444
1444
  declare class MessageUsageError extends Error {
1445
1445
  readonly usage: string;
@@ -1956,8 +1956,10 @@ interface CommandMeta<T extends string = string> {
1956
1956
  /** The params a component's customId pattern captures, in the order they appear. */
1957
1957
  dynamicParams?: T[];
1958
1958
  /**
1959
- * How specific this pattern is; the highest wins when several routes match one customId, so
1960
- * `gi-profile/summary/{ownerId}/{uid}` beats `gi-profile/{uuid}/{uid}` whatever the declaration order.
1959
+ * How specific this pattern is, as 4.1 ranked patterns: more literal text first.
1960
+ *
1961
+ * @deprecated Since 4.2, and removed in the next major version (5.0). Internal: nothing replaces it. Component routing
1962
+ * ranks patterns segment by segment and doesn't read it.
1961
1963
  */
1962
1964
  specificity?: number;
1963
1965
  /** The builder's own `guilds` option, when it has one. */
@@ -2164,7 +2166,7 @@ interface ReadyInfo {
2164
2166
  *
2165
2167
  * @group Types
2166
2168
  * @see {@link OnShutdown}
2167
- * @see {@link https://meocord.dev/docs/4.1/lifecycle-hooks | Lifecycle hooks}
2169
+ * @see {@link https://meocord.dev/docs/4.2/lifecycle-hooks | Lifecycle hooks}
2168
2170
  */
2169
2171
  interface OnReady {
2170
2172
  /**
@@ -2211,7 +2213,7 @@ interface OnReady {
2211
2213
  *
2212
2214
  * @group Types
2213
2215
  * @see {@link OnReady}
2214
- * @see {@link https://meocord.dev/docs/4.1/lifecycle-hooks | Lifecycle hooks}
2216
+ * @see {@link https://meocord.dev/docs/4.2/lifecycle-hooks | Lifecycle hooks}
2215
2217
  */
2216
2218
  interface OnShutdown {
2217
2219
  /** Runs before the client is destroyed. */
@@ -2546,6 +2548,15 @@ interface ControllerOptions {
2546
2548
  * @defaultValue `true`
2547
2549
  */
2548
2550
  inheritStages?: boolean;
2551
+ /**
2552
+ * What a handler this class re-decorates answers of the routes its base classes declare for it. `'keep'` answers
2553
+ * them as well as its own; `'replace'` answers only the routes this class declares for it, of every kind: commands,
2554
+ * component patterns, message patterns, reactions and autocompletes. A command no handler answers any more is not
2555
+ * registered. A method overridden without decorators keeps every route it inherits either way.
2556
+ *
2557
+ * @defaultValue `'keep'`; the next major version (5.0) replaces them by default
2558
+ */
2559
+ inheritedRoutes?: 'keep' | 'replace';
2549
2560
  }
2550
2561
  /**
2551
2562
  * One prefix or several that start a message command, such as `'!'` or `['!', '?']`; `''` stands for none.
@@ -2583,7 +2594,7 @@ type MessagePrefix = string | readonly string[];
2583
2594
  * @group Configuration
2584
2595
  * @category App options
2585
2596
  * @see {@link MessageHandler}
2586
- * @see {@link https://meocord.dev/docs/4.1/message-commands | Message commands}
2597
+ * @see {@link https://meocord.dev/docs/4.2/message-commands | Message commands}
2587
2598
  */
2588
2599
  interface MessageCommandOptions {
2589
2600
  /**
@@ -2656,6 +2667,28 @@ interface MessageCommandOptions {
2656
2667
  * @defaultValue `false`
2657
2668
  */
2658
2669
  help?: boolean | MessageHelpOptions;
2670
+ /**
2671
+ * How a message's handlers run: the patterned handler it matched, then every `@MessageHandler()` listener.
2672
+ * `'sequential'` runs each once the one before it has settled, so a slow command delays the listeners after it.
2673
+ * `'concurrent'` starts them together and settles once all have: each keeps its own guards, interceptors, filters
2674
+ * and observers, and no order holds between them, so a listener can run before the command has written what it
2675
+ * reads. The built-in help and a command's usage are answered first either way.
2676
+ * @defaultValue `'sequential'`; the next major version (5.0) may run them concurrently by default
2677
+ *
2678
+ * @example
2679
+ * ```ts
2680
+ * @MeoCord({ controllers: [Commands, Moderation], messages: { prefix: '!', handlers: 'concurrent' } })
2681
+ * class App {}
2682
+ * ```
2683
+ */
2684
+ handlers?: 'sequential' | 'concurrent';
2685
+ /**
2686
+ * Warns, once per handler, when a message's handler takes 5 seconds or more with listeners waiting after it, under
2687
+ * `handlers: 'sequential'`, naming the handler and how many it held back. A testing module warns only when this is
2688
+ * `true`, since a test's fake clock can pass 5 seconds inside a handler.
2689
+ * @defaultValue `true` in a running bot, `false` in a `MeoCordTestingModule`
2690
+ */
2691
+ slowHandlerWarning?: boolean;
2659
2692
  }
2660
2693
  /**
2661
2694
  * The words the built-in help command answers to, as `@MeoCord({ messages: { help } })` takes them.
@@ -2775,7 +2808,7 @@ interface MessageHelpParam {
2775
2808
  * ```
2776
2809
  *
2777
2810
  * @group Types
2778
- * @see {@link https://meocord.dev/docs/4.1/localisation | Localisation}
2811
+ * @see {@link https://meocord.dev/docs/4.2/localisation | Localisation}
2779
2812
  */
2780
2813
  type MeoCordMessages = (typeof MEOCORD_MESSAGES)['meocord'];
2781
2814
  /**
@@ -2806,7 +2839,7 @@ type MeoCordMessages = (typeof MEOCORD_MESSAGES)['meocord'];
2806
2839
  *
2807
2840
  * @group Configuration
2808
2841
  * @category App options
2809
- * @see {@link https://meocord.dev/docs/4.1/message-params | Message params}
2842
+ * @see {@link https://meocord.dev/docs/4.2/message-params | Message params}
2810
2843
  */
2811
2844
  interface MessageParamType<T = unknown> {
2812
2845
  /** A noun such as `hex colour`, read in "is not a valid hex colour". Defaults to the type's key. */
@@ -3019,7 +3052,7 @@ type MessageScope = 'guild' | 'dm' | 'any';
3019
3052
  * @group Configuration
3020
3053
  * @category App options
3021
3054
  * @see {@link MessageHandler}
3022
- * @see {@link https://meocord.dev/docs/4.1/message-commands | Message commands}
3055
+ * @see {@link https://meocord.dev/docs/4.2/message-commands | Message commands}
3023
3056
  */
3024
3057
  interface MessageHandlerOptions {
3025
3058
  /**
@@ -3077,7 +3110,7 @@ interface MessageHandlerOptions {
3077
3110
  * @group Configuration
3078
3111
  * @category Config file
3079
3112
  * @see {@link MeoCord}
3080
- * @see {@link https://meocord.dev/docs/4.1/configuration | Configuration}
3113
+ * @see {@link https://meocord.dev/docs/4.2/configuration | Configuration}
3081
3114
  */
3082
3115
  interface MeoCordConfig {
3083
3116
  /** Shown as a prefix on every log line. Omitted when unset. */
@@ -3138,6 +3171,20 @@ interface MeoCordConfig {
3138
3171
  * @defaultValue `true`
3139
3172
  */
3140
3173
  sourceMappedStacks?: boolean;
3174
+ /**
3175
+ * How a startup error a decorator finds, such as an invalid customId pattern, is reported.
3176
+ *
3177
+ * With `'first'`, a decorator throws its error as its class is defined, when its file is imported, so a bot with
3178
+ * three mistakes shows one per run. With `'all'`, decorators keep their errors, and `MeoCordFactory.create()` logs
3179
+ * every one, each with its handler and file, alongside the errors its own checks find, then throws the first. The
3180
+ * built bot reads it before your modules load. In a test, call `reportAllStartupErrors()` from `meocord/testing` in
3181
+ * the setup file instead.
3182
+ *
3183
+ * Whichever you choose, `create()` reports every error its own checks find, such as two handlers of one command.
3184
+ *
3185
+ * @defaultValue `'first'`; `'all'` in the next major version (5.0)
3186
+ */
3187
+ startupErrors?: 'first' | 'all';
3141
3188
  /**
3142
3189
  * How long, in milliseconds, shutdown waits for the `onShutdown` hooks before destroying the client
3143
3190
  * anyway: from 0 to 2147478647, the longest a timer keeps less the margin the shard manager waits on top. The limit covers the whole sequence, not each hook,
@@ -3196,7 +3243,7 @@ interface MeoCordConfig {
3196
3243
  * @group Configuration
3197
3244
  * @category Config file
3198
3245
  * @see {@link ShardContext}
3199
- * @see {@link https://meocord.dev/docs/4.1/sharding | Sharding}
3246
+ * @see {@link https://meocord.dev/docs/4.2/sharding | Sharding}
3200
3247
  */
3201
3248
  interface ShardingConfig {
3202
3249
  /**
@@ -3239,7 +3286,7 @@ interface ShardingConfig {
3239
3286
  *
3240
3287
  * @group Configuration
3241
3288
  * @category Config file
3242
- * @see {@link https://meocord.dev/docs/4.1/slash-commands | Slash commands}
3289
+ * @see {@link https://meocord.dev/docs/4.2/slash-commands | Slash commands}
3243
3290
  */
3244
3291
  interface CommandRegistrationConfig {
3245
3292
  /**
@@ -48,7 +48,7 @@ interface MetadataDecorator<T> {
48
48
  *
49
49
  * @group Utilities
50
50
  * @see {@link ExecutionContext}
51
- * @see {@link https://meocord.dev/docs/4.1/guards | Guards}
51
+ * @see {@link https://meocord.dev/docs/4.2/guards | Guards}
52
52
  */
53
53
  declare function createMetadata<T>(description?: string): MetadataDecorator<T>;
54
54
 
@@ -781,7 +781,7 @@ type ExecutionContextType = 'interaction' | 'autocomplete' | 'message' | 'reacti
781
781
  * @group Utilities
782
782
  * @see {@link createMetadata}
783
783
  * @see {@link StageParams}
784
- * @see {@link https://meocord.dev/docs/4.1/guards | Guards}
784
+ * @see {@link https://meocord.dev/docs/4.2/guards | Guards}
785
785
  */
786
786
  declare abstract class ExecutionContext {
787
787
  /**
@@ -1348,7 +1348,7 @@ declare class UserError extends Error {
1348
1348
  * @group Responses
1349
1349
  * @category Errors
1350
1350
  * @see {@link Catch}
1351
- * @see {@link https://meocord.dev/docs/4.1/exception-filters | Exception filters}
1351
+ * @see {@link https://meocord.dev/docs/4.2/exception-filters | Exception filters}
1352
1352
  */
1353
1353
  declare class CommandNotFoundError extends Error {
1354
1354
  /** @param message - What the error says, `No handler matched the interaction.` unless given. */
@@ -1439,7 +1439,7 @@ interface MessageUsageIssue {
1439
1439
  * @category Errors
1440
1440
  * @see {@link MessageHandler}
1441
1441
  * @see {@link translateError}
1442
- * @see {@link https://meocord.dev/docs/4.1/message-commands | Message commands}
1442
+ * @see {@link https://meocord.dev/docs/4.2/message-commands | Message commands}
1443
1443
  */
1444
1444
  declare class MessageUsageError extends Error {
1445
1445
  readonly usage: string;
@@ -1956,8 +1956,10 @@ interface CommandMeta<T extends string = string> {
1956
1956
  /** The params a component's customId pattern captures, in the order they appear. */
1957
1957
  dynamicParams?: T[];
1958
1958
  /**
1959
- * How specific this pattern is; the highest wins when several routes match one customId, so
1960
- * `gi-profile/summary/{ownerId}/{uid}` beats `gi-profile/{uuid}/{uid}` whatever the declaration order.
1959
+ * How specific this pattern is, as 4.1 ranked patterns: more literal text first.
1960
+ *
1961
+ * @deprecated Since 4.2, and removed in the next major version (5.0). Internal: nothing replaces it. Component routing
1962
+ * ranks patterns segment by segment and doesn't read it.
1961
1963
  */
1962
1964
  specificity?: number;
1963
1965
  /** The builder's own `guilds` option, when it has one. */
@@ -2164,7 +2166,7 @@ interface ReadyInfo {
2164
2166
  *
2165
2167
  * @group Types
2166
2168
  * @see {@link OnShutdown}
2167
- * @see {@link https://meocord.dev/docs/4.1/lifecycle-hooks | Lifecycle hooks}
2169
+ * @see {@link https://meocord.dev/docs/4.2/lifecycle-hooks | Lifecycle hooks}
2168
2170
  */
2169
2171
  interface OnReady {
2170
2172
  /**
@@ -2211,7 +2213,7 @@ interface OnReady {
2211
2213
  *
2212
2214
  * @group Types
2213
2215
  * @see {@link OnReady}
2214
- * @see {@link https://meocord.dev/docs/4.1/lifecycle-hooks | Lifecycle hooks}
2216
+ * @see {@link https://meocord.dev/docs/4.2/lifecycle-hooks | Lifecycle hooks}
2215
2217
  */
2216
2218
  interface OnShutdown {
2217
2219
  /** Runs before the client is destroyed. */
@@ -2546,6 +2548,15 @@ interface ControllerOptions {
2546
2548
  * @defaultValue `true`
2547
2549
  */
2548
2550
  inheritStages?: boolean;
2551
+ /**
2552
+ * What a handler this class re-decorates answers of the routes its base classes declare for it. `'keep'` answers
2553
+ * them as well as its own; `'replace'` answers only the routes this class declares for it, of every kind: commands,
2554
+ * component patterns, message patterns, reactions and autocompletes. A command no handler answers any more is not
2555
+ * registered. A method overridden without decorators keeps every route it inherits either way.
2556
+ *
2557
+ * @defaultValue `'keep'`; the next major version (5.0) replaces them by default
2558
+ */
2559
+ inheritedRoutes?: 'keep' | 'replace';
2549
2560
  }
2550
2561
  /**
2551
2562
  * One prefix or several that start a message command, such as `'!'` or `['!', '?']`; `''` stands for none.
@@ -2583,7 +2594,7 @@ type MessagePrefix = string | readonly string[];
2583
2594
  * @group Configuration
2584
2595
  * @category App options
2585
2596
  * @see {@link MessageHandler}
2586
- * @see {@link https://meocord.dev/docs/4.1/message-commands | Message commands}
2597
+ * @see {@link https://meocord.dev/docs/4.2/message-commands | Message commands}
2587
2598
  */
2588
2599
  interface MessageCommandOptions {
2589
2600
  /**
@@ -2656,6 +2667,28 @@ interface MessageCommandOptions {
2656
2667
  * @defaultValue `false`
2657
2668
  */
2658
2669
  help?: boolean | MessageHelpOptions;
2670
+ /**
2671
+ * How a message's handlers run: the patterned handler it matched, then every `@MessageHandler()` listener.
2672
+ * `'sequential'` runs each once the one before it has settled, so a slow command delays the listeners after it.
2673
+ * `'concurrent'` starts them together and settles once all have: each keeps its own guards, interceptors, filters
2674
+ * and observers, and no order holds between them, so a listener can run before the command has written what it
2675
+ * reads. The built-in help and a command's usage are answered first either way.
2676
+ * @defaultValue `'sequential'`; the next major version (5.0) may run them concurrently by default
2677
+ *
2678
+ * @example
2679
+ * ```ts
2680
+ * @MeoCord({ controllers: [Commands, Moderation], messages: { prefix: '!', handlers: 'concurrent' } })
2681
+ * class App {}
2682
+ * ```
2683
+ */
2684
+ handlers?: 'sequential' | 'concurrent';
2685
+ /**
2686
+ * Warns, once per handler, when a message's handler takes 5 seconds or more with listeners waiting after it, under
2687
+ * `handlers: 'sequential'`, naming the handler and how many it held back. A testing module warns only when this is
2688
+ * `true`, since a test's fake clock can pass 5 seconds inside a handler.
2689
+ * @defaultValue `true` in a running bot, `false` in a `MeoCordTestingModule`
2690
+ */
2691
+ slowHandlerWarning?: boolean;
2659
2692
  }
2660
2693
  /**
2661
2694
  * The words the built-in help command answers to, as `@MeoCord({ messages: { help } })` takes them.
@@ -2775,7 +2808,7 @@ interface MessageHelpParam {
2775
2808
  * ```
2776
2809
  *
2777
2810
  * @group Types
2778
- * @see {@link https://meocord.dev/docs/4.1/localisation | Localisation}
2811
+ * @see {@link https://meocord.dev/docs/4.2/localisation | Localisation}
2779
2812
  */
2780
2813
  type MeoCordMessages = (typeof MEOCORD_MESSAGES)['meocord'];
2781
2814
  /**
@@ -2806,7 +2839,7 @@ type MeoCordMessages = (typeof MEOCORD_MESSAGES)['meocord'];
2806
2839
  *
2807
2840
  * @group Configuration
2808
2841
  * @category App options
2809
- * @see {@link https://meocord.dev/docs/4.1/message-params | Message params}
2842
+ * @see {@link https://meocord.dev/docs/4.2/message-params | Message params}
2810
2843
  */
2811
2844
  interface MessageParamType<T = unknown> {
2812
2845
  /** A noun such as `hex colour`, read in "is not a valid hex colour". Defaults to the type's key. */
@@ -3019,7 +3052,7 @@ type MessageScope = 'guild' | 'dm' | 'any';
3019
3052
  * @group Configuration
3020
3053
  * @category App options
3021
3054
  * @see {@link MessageHandler}
3022
- * @see {@link https://meocord.dev/docs/4.1/message-commands | Message commands}
3055
+ * @see {@link https://meocord.dev/docs/4.2/message-commands | Message commands}
3023
3056
  */
3024
3057
  interface MessageHandlerOptions {
3025
3058
  /**
@@ -3077,7 +3110,7 @@ interface MessageHandlerOptions {
3077
3110
  * @group Configuration
3078
3111
  * @category Config file
3079
3112
  * @see {@link MeoCord}
3080
- * @see {@link https://meocord.dev/docs/4.1/configuration | Configuration}
3113
+ * @see {@link https://meocord.dev/docs/4.2/configuration | Configuration}
3081
3114
  */
3082
3115
  interface MeoCordConfig {
3083
3116
  /** Shown as a prefix on every log line. Omitted when unset. */
@@ -3138,6 +3171,20 @@ interface MeoCordConfig {
3138
3171
  * @defaultValue `true`
3139
3172
  */
3140
3173
  sourceMappedStacks?: boolean;
3174
+ /**
3175
+ * How a startup error a decorator finds, such as an invalid customId pattern, is reported.
3176
+ *
3177
+ * With `'first'`, a decorator throws its error as its class is defined, when its file is imported, so a bot with
3178
+ * three mistakes shows one per run. With `'all'`, decorators keep their errors, and `MeoCordFactory.create()` logs
3179
+ * every one, each with its handler and file, alongside the errors its own checks find, then throws the first. The
3180
+ * built bot reads it before your modules load. In a test, call `reportAllStartupErrors()` from `meocord/testing` in
3181
+ * the setup file instead.
3182
+ *
3183
+ * Whichever you choose, `create()` reports every error its own checks find, such as two handlers of one command.
3184
+ *
3185
+ * @defaultValue `'first'`; `'all'` in the next major version (5.0)
3186
+ */
3187
+ startupErrors?: 'first' | 'all';
3141
3188
  /**
3142
3189
  * How long, in milliseconds, shutdown waits for the `onShutdown` hooks before destroying the client
3143
3190
  * anyway: from 0 to 2147478647, the longest a timer keeps less the margin the shard manager waits on top. The limit covers the whole sequence, not each hook,
@@ -3196,7 +3243,7 @@ interface MeoCordConfig {
3196
3243
  * @group Configuration
3197
3244
  * @category Config file
3198
3245
  * @see {@link ShardContext}
3199
- * @see {@link https://meocord.dev/docs/4.1/sharding | Sharding}
3246
+ * @see {@link https://meocord.dev/docs/4.2/sharding | Sharding}
3200
3247
  */
3201
3248
  interface ShardingConfig {
3202
3249
  /**
@@ -3239,7 +3286,7 @@ interface ShardingConfig {
3239
3286
  *
3240
3287
  * @group Configuration
3241
3288
  * @category Config file
3242
- * @see {@link https://meocord.dev/docs/4.1/slash-commands | Slash commands}
3289
+ * @see {@link https://meocord.dev/docs/4.2/slash-commands | Slash commands}
3243
3290
  */
3244
3291
  interface CommandRegistrationConfig {
3245
3292
  /**
@@ -1,4 +1,4 @@
1
1
  import 'discord.js';
2
2
  import '@rsbuild/core';
3
3
  import '../controller.enum-DTDn69N9.cjs';
4
- export { ar as AutocompleteMetadata, O as BuildableCommandType, as as CallHandler, _ as CheckedParams, ao as ClassProvider, at as CommandBuildResult, S as CommandBuilderBase, X as CommandBuilderConstructor, Q as CommandBuilderOptions, Y as CommandInteractionType, au as CommandMetadata, av as CommandRegistrationConfig, a1 as ControllerOptions, ak as CooldownOptions, a9 as CooldownStoreFailure, aw as DeepPartial, D as DeepReadonly, ab as DispatchObserver, ax as DispatchOutcome, ay as DispatchResult, az as EntityRef, a7 as ExceptionFilter, F as FactoryProvider, a4 as GuardInterface, a3 as GuardOptions, aA as GuildThemeTarget, aj as InferSchemaOutput, a6 as InterceptorInterface, a5 as InterceptorOptions, J as MeoCordApplication, aB as MeoCordConfig, aq as MeoCordMessages, M as MeoCordTheme, L as MessageCommandOptions, Z as MessageHandlerOptions, N as MessageHelp, aC as MessageHelpEntry, aD as MessageHelpOptions, aE as MessageHelpParam, aF as MessageParamType, aG as MessageParamTypes, an as MessagePrefix, aH as MessageResponseContext, K as MessageScope, al as ObserverOptions, aI as OnReady, aJ as OnShutdown, W as PIPED_BRAND, aK as ParamRefsOf, aL as ParamsOf, af as PipeInterface, aM as Piped, aN as PresentedError, aO as PrimaryEntryPointCommandData, a8 as Provider, P as ProviderToken, a0 as ReactionEvent, aP as ReactionHandlerOptions, $ as ReactionHandlerSettings, aQ as ReadyInfo, aR as ReservedThemeRole, aS as ResponseContext, aT as ResponseFile, aa as ResponsePresenter, aU as ResponseView, ac as RootTheme, aV as RsbuildConfig, aW as ShardingConfig, a2 as StageParams, ag as StandardSchemaV1, aX as StandardSchemaV1Issue, aY as StandardSchemaV1Props, aZ as StandardSchemaV1Result, a_ as ThemeButtonStyle, a$ as ThemeButtons, b0 as ThemeColors, b1 as ThemeEmojis, am as ThemeOverride, ae as ThemeResolver, ad as ThemeResolvers, T as Token, b2 as UserThemeTarget, ai as ValidateOptions, ah as ValidatePipes, ap as ValueProvider } from '../index-DEP0NYrU.cjs';
4
+ export { ar as AutocompleteMetadata, O as BuildableCommandType, as as CallHandler, _ as CheckedParams, ao as ClassProvider, at as CommandBuildResult, S as CommandBuilderBase, X as CommandBuilderConstructor, Q as CommandBuilderOptions, Y as CommandInteractionType, au as CommandMetadata, av as CommandRegistrationConfig, a1 as ControllerOptions, ak as CooldownOptions, a9 as CooldownStoreFailure, aw as DeepPartial, D as DeepReadonly, ab as DispatchObserver, ax as DispatchOutcome, ay as DispatchResult, az as EntityRef, a7 as ExceptionFilter, F as FactoryProvider, a4 as GuardInterface, a3 as GuardOptions, aA as GuildThemeTarget, aj as InferSchemaOutput, a6 as InterceptorInterface, a5 as InterceptorOptions, J as MeoCordApplication, aB as MeoCordConfig, aq as MeoCordMessages, M as MeoCordTheme, L as MessageCommandOptions, Z as MessageHandlerOptions, N as MessageHelp, aC as MessageHelpEntry, aD as MessageHelpOptions, aE as MessageHelpParam, aF as MessageParamType, aG as MessageParamTypes, an as MessagePrefix, aH as MessageResponseContext, K as MessageScope, al as ObserverOptions, aI as OnReady, aJ as OnShutdown, W as PIPED_BRAND, aK as ParamRefsOf, aL as ParamsOf, af as PipeInterface, aM as Piped, aN as PresentedError, aO as PrimaryEntryPointCommandData, a8 as Provider, P as ProviderToken, a0 as ReactionEvent, aP as ReactionHandlerOptions, $ as ReactionHandlerSettings, aQ as ReadyInfo, aR as ReservedThemeRole, aS as ResponseContext, aT as ResponseFile, aa as ResponsePresenter, aU as ResponseView, ac as RootTheme, aV as RsbuildConfig, aW as ShardingConfig, a2 as StageParams, ag as StandardSchemaV1, aX as StandardSchemaV1Issue, aY as StandardSchemaV1Props, aZ as StandardSchemaV1Result, a_ as ThemeButtonStyle, a$ as ThemeButtons, b0 as ThemeColors, b1 as ThemeEmojis, am as ThemeOverride, ae as ThemeResolver, ad as ThemeResolvers, T as Token, b2 as UserThemeTarget, ai as ValidateOptions, ah as ValidatePipes, ap as ValueProvider } from '../index-nn5p7OoX.cjs';
@@ -1,4 +1,4 @@
1
1
  import 'discord.js';
2
2
  import '@rsbuild/core';
3
3
  import '../controller.enum-DTDn69N9.js';
4
- export { ar as AutocompleteMetadata, O as BuildableCommandType, as as CallHandler, _ as CheckedParams, ao as ClassProvider, at as CommandBuildResult, S as CommandBuilderBase, X as CommandBuilderConstructor, Q as CommandBuilderOptions, Y as CommandInteractionType, au as CommandMetadata, av as CommandRegistrationConfig, a1 as ControllerOptions, ak as CooldownOptions, a9 as CooldownStoreFailure, aw as DeepPartial, D as DeepReadonly, ab as DispatchObserver, ax as DispatchOutcome, ay as DispatchResult, az as EntityRef, a7 as ExceptionFilter, F as FactoryProvider, a4 as GuardInterface, a3 as GuardOptions, aA as GuildThemeTarget, aj as InferSchemaOutput, a6 as InterceptorInterface, a5 as InterceptorOptions, J as MeoCordApplication, aB as MeoCordConfig, aq as MeoCordMessages, M as MeoCordTheme, L as MessageCommandOptions, Z as MessageHandlerOptions, N as MessageHelp, aC as MessageHelpEntry, aD as MessageHelpOptions, aE as MessageHelpParam, aF as MessageParamType, aG as MessageParamTypes, an as MessagePrefix, aH as MessageResponseContext, K as MessageScope, al as ObserverOptions, aI as OnReady, aJ as OnShutdown, W as PIPED_BRAND, aK as ParamRefsOf, aL as ParamsOf, af as PipeInterface, aM as Piped, aN as PresentedError, aO as PrimaryEntryPointCommandData, a8 as Provider, P as ProviderToken, a0 as ReactionEvent, aP as ReactionHandlerOptions, $ as ReactionHandlerSettings, aQ as ReadyInfo, aR as ReservedThemeRole, aS as ResponseContext, aT as ResponseFile, aa as ResponsePresenter, aU as ResponseView, ac as RootTheme, aV as RsbuildConfig, aW as ShardingConfig, a2 as StageParams, ag as StandardSchemaV1, aX as StandardSchemaV1Issue, aY as StandardSchemaV1Props, aZ as StandardSchemaV1Result, a_ as ThemeButtonStyle, a$ as ThemeButtons, b0 as ThemeColors, b1 as ThemeEmojis, am as ThemeOverride, ae as ThemeResolver, ad as ThemeResolvers, T as Token, b2 as UserThemeTarget, ai as ValidateOptions, ah as ValidatePipes, ap as ValueProvider } from '../index-D7n0FBMm.js';
4
+ export { ar as AutocompleteMetadata, O as BuildableCommandType, as as CallHandler, _ as CheckedParams, ao as ClassProvider, at as CommandBuildResult, S as CommandBuilderBase, X as CommandBuilderConstructor, Q as CommandBuilderOptions, Y as CommandInteractionType, au as CommandMetadata, av as CommandRegistrationConfig, a1 as ControllerOptions, ak as CooldownOptions, a9 as CooldownStoreFailure, aw as DeepPartial, D as DeepReadonly, ab as DispatchObserver, ax as DispatchOutcome, ay as DispatchResult, az as EntityRef, a7 as ExceptionFilter, F as FactoryProvider, a4 as GuardInterface, a3 as GuardOptions, aA as GuildThemeTarget, aj as InferSchemaOutput, a6 as InterceptorInterface, a5 as InterceptorOptions, J as MeoCordApplication, aB as MeoCordConfig, aq as MeoCordMessages, M as MeoCordTheme, L as MessageCommandOptions, Z as MessageHandlerOptions, N as MessageHelp, aC as MessageHelpEntry, aD as MessageHelpOptions, aE as MessageHelpParam, aF as MessageParamType, aG as MessageParamTypes, an as MessagePrefix, aH as MessageResponseContext, K as MessageScope, al as ObserverOptions, aI as OnReady, aJ as OnShutdown, W as PIPED_BRAND, aK as ParamRefsOf, aL as ParamsOf, af as PipeInterface, aM as Piped, aN as PresentedError, aO as PrimaryEntryPointCommandData, a8 as Provider, P as ProviderToken, a0 as ReactionEvent, aP as ReactionHandlerOptions, $ as ReactionHandlerSettings, aQ as ReadyInfo, aR as ReservedThemeRole, aS as ResponseContext, aT as ResponseFile, aa as ResponsePresenter, aU as ResponseView, ac as RootTheme, aV as RsbuildConfig, aW as ShardingConfig, a2 as StageParams, ag as StandardSchemaV1, aX as StandardSchemaV1Issue, aY as StandardSchemaV1Props, aZ as StandardSchemaV1Result, a_ as ThemeButtonStyle, a$ as ThemeButtons, b0 as ThemeColors, b1 as ThemeEmojis, am as ThemeOverride, ae as ThemeResolver, ad as ThemeResolvers, T as Token, b2 as UserThemeTarget, ai as ValidateOptions, ah as ValidatePipes, ap as ValueProvider } from '../index-CdXsFgjE.js';