gramio 0.6.0 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -678,16 +678,11 @@ class Bot {
678
678
  if (!params?.suppress) throw err;
679
679
  return err;
680
680
  }
681
- this.runImmutableHooks(
682
- "onResponse",
683
- // TODO: fix type error
684
- // @ts-expect-error
685
- {
686
- method,
687
- params,
688
- response: data.result
689
- }
690
- );
681
+ this.runImmutableHooks("onResponse", {
682
+ method,
683
+ params,
684
+ response: data.result
685
+ });
691
686
  return data.result;
692
687
  };
693
688
  if (!this.hooks.onApiCall.length) return executeCall();
@@ -843,10 +838,11 @@ class Bot {
843
838
  if (typeof methodsOrHandler === "string" || Array.isArray(methodsOrHandler)) {
844
839
  if (!handler) throw new Error("TODO:");
845
840
  const methods = typeof methodsOrHandler === "string" ? [methodsOrHandler] : methodsOrHandler;
846
- this.hooks.preRequest.push(async (context) => {
847
- if (methods.includes(context.method)) return handler(context);
841
+ this.hooks.preRequest.push((async (context) => {
842
+ if (methods.includes(context.method))
843
+ return handler(context);
848
844
  return context;
849
- });
845
+ }));
850
846
  } else this.hooks.preRequest.push(methodsOrHandler);
851
847
  return this;
852
848
  }
@@ -854,10 +850,10 @@ class Bot {
854
850
  if (typeof methodsOrHandler === "string" || Array.isArray(methodsOrHandler)) {
855
851
  if (!handler) throw new Error("TODO:");
856
852
  const methods = typeof methodsOrHandler === "string" ? [methodsOrHandler] : methodsOrHandler;
857
- this.hooks.onResponse.push(async (context) => {
858
- if (methods.includes(context.method)) return handler(context);
859
- return context;
860
- });
853
+ this.hooks.onResponse.push((async (context) => {
854
+ if (methods.includes(context.method))
855
+ return handler(context);
856
+ }));
861
857
  } else this.hooks.onResponse.push(methodsOrHandler);
862
858
  return this;
863
859
  }
@@ -865,21 +861,25 @@ class Bot {
865
861
  if (typeof methodsOrHandler === "string" || Array.isArray(methodsOrHandler)) {
866
862
  if (!handler) throw new Error("TODO:");
867
863
  const methods = typeof methodsOrHandler === "string" ? [methodsOrHandler] : methodsOrHandler;
868
- this.hooks.onResponseError.push(async (context) => {
869
- if (methods.includes(context.method)) return handler(context);
870
- return context;
871
- });
872
- } else this.hooks.onResponseError.push(methodsOrHandler);
864
+ this.hooks.onResponseError.push((async (context, api) => {
865
+ if (methods.includes(context.method))
866
+ return handler(context, api);
867
+ }));
868
+ } else
869
+ this.hooks.onResponseError.push(
870
+ methodsOrHandler
871
+ );
873
872
  return this;
874
873
  }
875
874
  onApiCall(methodsOrHandler, handler) {
876
875
  if (typeof methodsOrHandler === "string" || Array.isArray(methodsOrHandler)) {
877
876
  if (!handler) throw new Error("TODO:");
878
877
  const methods = typeof methodsOrHandler === "string" ? [methodsOrHandler] : methodsOrHandler;
879
- this.hooks.onApiCall.push(async (context, next) => {
880
- if (methods.includes(context.method)) return handler(context, next);
878
+ this.hooks.onApiCall.push((async (context, next) => {
879
+ if (methods.includes(context.method))
880
+ return handler(context, next);
881
881
  return next();
882
- });
882
+ }));
883
883
  } else {
884
884
  this.hooks.onApiCall.push(methodsOrHandler);
885
885
  }
package/dist/index.d.cts CHANGED
@@ -11,7 +11,7 @@ import * as _gramio_types from '@gramio/types';
11
11
  import { APIMethods, TelegramResponseParameters, TelegramAPIResponseError, TelegramReactionTypeEmojiEmoji, TelegramUser, APIMethodParams, APIMethodReturn, SetWebhookParams, TelegramUpdate, TelegramMessageEntity } from '@gramio/types';
12
12
  export * from '@gramio/types';
13
13
  import * as _gramio_composer from '@gramio/composer';
14
- import { ComposerLike, MacroDefinitions, ContextOf, EventComposer, MacroDef, Next, EventQueue, HandlerOptions, DeriveFromOptions } from '@gramio/composer';
14
+ import { ComposerLike, MacroDefinitions, EventContextOf, EventComposer, MacroDef, Next, EventQueue, HandlerOptions, DeriveFromOptions } from '@gramio/composer';
15
15
  export { ContextCallback, DeriveFromOptions, EventComposer, EventQueue, HandlerOptions, MacroDef, MacroDefinitions, MacroDeriveType, MacroHooks, MacroOptionType, Middleware, Next, WithCtx, buildFromOptions, compose, noopNext, skip, stop } from '@gramio/composer';
16
16
 
17
17
  /** Symbol to determine which error kind is it */
@@ -44,6 +44,7 @@ type Ctx<K extends keyof ContextsMapping<AnyBot>> = InstanceType<ContextsMapping
44
44
  type GramIOLike<T> = ComposerLike<T> & {
45
45
  "~": {
46
46
  macros: MacroDefinitions;
47
+ Derives?: Record<string, object>;
47
48
  };
48
49
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): T;
49
50
  };
@@ -54,29 +55,29 @@ declare module "@gramio/composer" {
54
55
  }
55
56
  }
56
57
  declare const Composer: _gramio_composer.EventComposerConstructor<Context<AnyBot>, TelegramEventMap, {
57
- reaction<TThis extends GramIOLike<TThis>>(this: TThis, trigger: MaybeArray<TelegramReactionTypeEmojiEmoji>, handler: (context: Ctx<"message_reaction"> & ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
58
+ reaction<TThis extends GramIOLike<TThis>>(this: TThis, trigger: MaybeArray<TelegramReactionTypeEmojiEmoji>, handler: (context: Ctx<"message_reaction"> & EventContextOf<TThis, "message_reaction">) => unknown, macroOptions?: Record<string, unknown>): TThis;
58
59
  callbackQuery<TThis extends GramIOLike<TThis>, Trigger extends CallbackData | string | RegExp>(this: TThis, trigger: Trigger, handler: (context: Ctx<"callback_query"> & {
59
60
  queryData: Trigger extends CallbackData ? ReturnType<Trigger["unpack"]> : Trigger extends RegExp ? RegExpMatchArray : never;
60
- } & ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
61
+ } & EventContextOf<TThis, "callback_query">) => unknown, macroOptions?: Record<string, unknown>): TThis;
61
62
  chosenInlineResult<TThis extends GramIOLike<TThis>>(this: TThis, trigger: RegExp | string | ((context: Ctx<"chosen_inline_result">) => boolean), handler: (context: Ctx<"chosen_inline_result"> & {
62
63
  args: RegExpMatchArray | null;
63
- } & ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
64
+ } & EventContextOf<TThis, "chosen_inline_result">) => unknown, macroOptions?: Record<string, unknown>): TThis;
64
65
  inlineQuery<TThis extends GramIOLike<TThis>>(this: TThis, trigger: RegExp | string | ((context: Ctx<"inline_query">) => boolean), handler: (context: Ctx<"inline_query"> & {
65
66
  args: RegExpMatchArray | null;
66
- } & ContextOf<TThis>) => unknown, options?: {
67
+ } & EventContextOf<TThis, "inline_query">) => unknown, options?: {
67
68
  onResult?: (context: Ctx<"chosen_inline_result"> & {
68
69
  args: RegExpMatchArray | null;
69
- } & ContextOf<TThis>) => unknown;
70
+ } & EventContextOf<TThis, "chosen_inline_result">) => unknown;
70
71
  } & Record<string, unknown>): TThis;
71
72
  hears<TThis extends GramIOLike<TThis>>(this: TThis, trigger: RegExp | MaybeArray<string> | ((context: Ctx<"message">) => boolean), handler: (context: Ctx<"message"> & {
72
73
  args: RegExpMatchArray | null;
73
- } & ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
74
+ } & EventContextOf<TThis, "message">) => unknown, macroOptions?: Record<string, unknown>): TThis;
74
75
  command<TThis extends GramIOLike<TThis>>(this: TThis, command: MaybeArray<string>, handler: (context: Ctx<"message"> & {
75
76
  args: string | null;
76
- } & ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
77
+ } & EventContextOf<TThis, "message">) => unknown, macroOptions?: Record<string, unknown>): TThis;
77
78
  startParameter<TThis extends GramIOLike<TThis>>(this: TThis, parameter: RegExp | MaybeArray<string>, handler: Handler<Ctx<"message"> & {
78
79
  rawStartPayload: string;
79
- } & ContextOf<TThis>>, macroOptions?: Record<string, unknown>): TThis;
80
+ } & EventContextOf<TThis, "message">>, macroOptions?: Record<string, unknown>): TThis;
80
81
  }>;
81
82
 
82
83
  /**
@@ -213,120 +214,134 @@ declare class Plugin<Errors extends ErrorDefinitions = {}, Derives extends Deriv
213
214
  reaction<TThis extends _gramio_composer.ComposerLike<TThis> & {
214
215
  "~": {
215
216
  macros: MacroDefinitions;
217
+ Derives?: Record<string, object>;
216
218
  };
217
219
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
218
- }>(this: TThis, trigger: MaybeArray<_gramio_types.TelegramReactionTypeEmojiEmoji>, handler: (context: _gramio_contexts.MessageReactionContext<AnyBot> & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
220
+ }>(this: TThis, trigger: MaybeArray<_gramio_types.TelegramReactionTypeEmojiEmoji>, handler: (context: _gramio_contexts.MessageReactionContext<AnyBot> & _gramio_composer.EventContextOf<TThis, "message_reaction">) => unknown, macroOptions?: Record<string, unknown>): TThis;
219
221
  callbackQuery<TThis extends _gramio_composer.ComposerLike<TThis> & {
220
222
  "~": {
221
223
  macros: MacroDefinitions;
224
+ Derives?: Record<string, object>;
222
225
  };
223
226
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
224
227
  }, Trigger extends _gramio_callback_data.CallbackData | string | RegExp>(this: TThis, trigger: Trigger, handler: (context: _gramio_contexts.CallbackQueryContext<AnyBot> & {
225
228
  queryData: Trigger extends _gramio_callback_data.CallbackData ? ReturnType<Trigger["unpack"]> : Trigger extends RegExp ? RegExpMatchArray : never;
226
- } & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
229
+ } & _gramio_composer.EventContextOf<TThis, "callback_query">) => unknown, macroOptions?: Record<string, unknown>): TThis;
227
230
  chosenInlineResult<TThis extends _gramio_composer.ComposerLike<TThis> & {
228
231
  "~": {
229
232
  macros: MacroDefinitions;
233
+ Derives?: Record<string, object>;
230
234
  };
231
235
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
232
236
  }>(this: TThis, trigger: RegExp | string | ((context: _gramio_contexts.ChosenInlineResultContext<AnyBot>) => boolean), handler: (context: _gramio_contexts.ChosenInlineResultContext<AnyBot> & {
233
237
  args: RegExpMatchArray | null;
234
- } & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
238
+ } & _gramio_composer.EventContextOf<TThis, "chosen_inline_result">) => unknown, macroOptions?: Record<string, unknown>): TThis;
235
239
  inlineQuery<TThis extends _gramio_composer.ComposerLike<TThis> & {
236
240
  "~": {
237
241
  macros: MacroDefinitions;
242
+ Derives?: Record<string, object>;
238
243
  };
239
244
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
240
245
  }>(this: TThis, trigger: RegExp | string | ((context: _gramio_contexts.InlineQueryContext<AnyBot>) => boolean), handler: (context: _gramio_contexts.InlineQueryContext<AnyBot> & {
241
246
  args: RegExpMatchArray | null;
242
- } & _gramio_composer.ContextOf<TThis>) => unknown, options?: {
247
+ } & _gramio_composer.EventContextOf<TThis, "inline_query">) => unknown, options?: {
243
248
  onResult?: (context: _gramio_contexts.ChosenInlineResultContext<AnyBot> & {
244
249
  args: RegExpMatchArray | null;
245
- } & _gramio_composer.ContextOf<TThis>) => unknown;
250
+ } & _gramio_composer.EventContextOf<TThis, "chosen_inline_result">) => unknown;
246
251
  } & Record<string, unknown>): TThis;
247
252
  hears<TThis extends _gramio_composer.ComposerLike<TThis> & {
248
253
  "~": {
249
254
  macros: MacroDefinitions;
255
+ Derives?: Record<string, object>;
250
256
  };
251
257
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
252
258
  }>(this: TThis, trigger: RegExp | MaybeArray<string> | ((context: _gramio_contexts.MessageContext<AnyBot> & _gramio_contexts.Require<_gramio_contexts.MessageContext<AnyBot>, "from">) => boolean), handler: (context: (_gramio_contexts.MessageContext<AnyBot> & _gramio_contexts.Require<_gramio_contexts.MessageContext<AnyBot>, "from">) & {
253
259
  args: RegExpMatchArray | null;
254
- } & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
260
+ } & _gramio_composer.EventContextOf<TThis, "message">) => unknown, macroOptions?: Record<string, unknown>): TThis;
255
261
  command<TThis extends _gramio_composer.ComposerLike<TThis> & {
256
262
  "~": {
257
263
  macros: MacroDefinitions;
264
+ Derives?: Record<string, object>;
258
265
  };
259
266
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
260
267
  }>(this: TThis, command: MaybeArray<string>, handler: (context: (_gramio_contexts.MessageContext<AnyBot> & _gramio_contexts.Require<_gramio_contexts.MessageContext<AnyBot>, "from">) & {
261
268
  args: string | null;
262
- } & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
269
+ } & _gramio_composer.EventContextOf<TThis, "message">) => unknown, macroOptions?: Record<string, unknown>): TThis;
263
270
  startParameter<TThis extends _gramio_composer.ComposerLike<TThis> & {
264
271
  "~": {
265
272
  macros: MacroDefinitions;
273
+ Derives?: Record<string, object>;
266
274
  };
267
275
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
268
276
  }>(this: TThis, parameter: RegExp | MaybeArray<string>, handler: Handler<(_gramio_contexts.MessageContext<AnyBot> & _gramio_contexts.Require<_gramio_contexts.MessageContext<AnyBot>, "from">) & {
269
277
  rawStartPayload: string;
270
- } & _gramio_composer.ContextOf<TThis>>, macroOptions?: Record<string, unknown>): TThis;
278
+ } & _gramio_composer.EventContextOf<TThis, "message">>, macroOptions?: Record<string, unknown>): TThis;
271
279
  }, {}> & {
272
280
  reaction<TThis extends _gramio_composer.ComposerLike<TThis> & {
273
281
  "~": {
274
282
  macros: MacroDefinitions;
283
+ Derives?: Record<string, object>;
275
284
  };
276
285
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
277
- }>(this: TThis, trigger: MaybeArray<_gramio_types.TelegramReactionTypeEmojiEmoji>, handler: (context: _gramio_contexts.MessageReactionContext<AnyBot> & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
286
+ }>(this: TThis, trigger: MaybeArray<_gramio_types.TelegramReactionTypeEmojiEmoji>, handler: (context: _gramio_contexts.MessageReactionContext<AnyBot> & _gramio_composer.EventContextOf<TThis, "message_reaction">) => unknown, macroOptions?: Record<string, unknown>): TThis;
278
287
  callbackQuery<TThis extends _gramio_composer.ComposerLike<TThis> & {
279
288
  "~": {
280
289
  macros: MacroDefinitions;
290
+ Derives?: Record<string, object>;
281
291
  };
282
292
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
283
293
  }, Trigger extends _gramio_callback_data.CallbackData | string | RegExp>(this: TThis, trigger: Trigger, handler: (context: _gramio_contexts.CallbackQueryContext<AnyBot> & {
284
294
  queryData: Trigger extends _gramio_callback_data.CallbackData ? ReturnType<Trigger["unpack"]> : Trigger extends RegExp ? RegExpMatchArray : never;
285
- } & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
295
+ } & _gramio_composer.EventContextOf<TThis, "callback_query">) => unknown, macroOptions?: Record<string, unknown>): TThis;
286
296
  chosenInlineResult<TThis extends _gramio_composer.ComposerLike<TThis> & {
287
297
  "~": {
288
298
  macros: MacroDefinitions;
299
+ Derives?: Record<string, object>;
289
300
  };
290
301
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
291
302
  }>(this: TThis, trigger: RegExp | string | ((context: _gramio_contexts.ChosenInlineResultContext<AnyBot>) => boolean), handler: (context: _gramio_contexts.ChosenInlineResultContext<AnyBot> & {
292
303
  args: RegExpMatchArray | null;
293
- } & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
304
+ } & _gramio_composer.EventContextOf<TThis, "chosen_inline_result">) => unknown, macroOptions?: Record<string, unknown>): TThis;
294
305
  inlineQuery<TThis extends _gramio_composer.ComposerLike<TThis> & {
295
306
  "~": {
296
307
  macros: MacroDefinitions;
308
+ Derives?: Record<string, object>;
297
309
  };
298
310
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
299
311
  }>(this: TThis, trigger: RegExp | string | ((context: _gramio_contexts.InlineQueryContext<AnyBot>) => boolean), handler: (context: _gramio_contexts.InlineQueryContext<AnyBot> & {
300
312
  args: RegExpMatchArray | null;
301
- } & _gramio_composer.ContextOf<TThis>) => unknown, options?: {
313
+ } & _gramio_composer.EventContextOf<TThis, "inline_query">) => unknown, options?: {
302
314
  onResult?: (context: _gramio_contexts.ChosenInlineResultContext<AnyBot> & {
303
315
  args: RegExpMatchArray | null;
304
- } & _gramio_composer.ContextOf<TThis>) => unknown;
316
+ } & _gramio_composer.EventContextOf<TThis, "chosen_inline_result">) => unknown;
305
317
  } & Record<string, unknown>): TThis;
306
318
  hears<TThis extends _gramio_composer.ComposerLike<TThis> & {
307
319
  "~": {
308
320
  macros: MacroDefinitions;
321
+ Derives?: Record<string, object>;
309
322
  };
310
323
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
311
324
  }>(this: TThis, trigger: RegExp | MaybeArray<string> | ((context: _gramio_contexts.MessageContext<AnyBot> & _gramio_contexts.Require<_gramio_contexts.MessageContext<AnyBot>, "from">) => boolean), handler: (context: (_gramio_contexts.MessageContext<AnyBot> & _gramio_contexts.Require<_gramio_contexts.MessageContext<AnyBot>, "from">) & {
312
325
  args: RegExpMatchArray | null;
313
- } & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
326
+ } & _gramio_composer.EventContextOf<TThis, "message">) => unknown, macroOptions?: Record<string, unknown>): TThis;
314
327
  command<TThis extends _gramio_composer.ComposerLike<TThis> & {
315
328
  "~": {
316
329
  macros: MacroDefinitions;
330
+ Derives?: Record<string, object>;
317
331
  };
318
332
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
319
333
  }>(this: TThis, command: MaybeArray<string>, handler: (context: (_gramio_contexts.MessageContext<AnyBot> & _gramio_contexts.Require<_gramio_contexts.MessageContext<AnyBot>, "from">) & {
320
334
  args: string | null;
321
- } & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
335
+ } & _gramio_composer.EventContextOf<TThis, "message">) => unknown, macroOptions?: Record<string, unknown>): TThis;
322
336
  startParameter<TThis extends _gramio_composer.ComposerLike<TThis> & {
323
337
  "~": {
324
338
  macros: MacroDefinitions;
339
+ Derives?: Record<string, object>;
325
340
  };
326
341
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
327
342
  }>(this: TThis, parameter: RegExp | MaybeArray<string>, handler: Handler<(_gramio_contexts.MessageContext<AnyBot> & _gramio_contexts.Require<_gramio_contexts.MessageContext<AnyBot>, "from">) & {
328
343
  rawStartPayload: string;
329
- } & _gramio_composer.ContextOf<TThis>>, macroOptions?: Record<string, unknown>): TThis;
344
+ } & _gramio_composer.EventContextOf<TThis, "message">>, macroOptions?: Record<string, unknown>): TThis;
330
345
  };
331
346
  /** Store plugin preRequests hooks */
332
347
  preRequests: [Hooks.PreRequest<any>, MaybeArray<keyof APIMethods> | undefined][];
package/dist/index.d.ts CHANGED
@@ -11,7 +11,7 @@ import * as _gramio_types from '@gramio/types';
11
11
  import { APIMethods, TelegramResponseParameters, TelegramAPIResponseError, TelegramReactionTypeEmojiEmoji, TelegramUser, APIMethodParams, APIMethodReturn, SetWebhookParams, TelegramUpdate, TelegramMessageEntity } from '@gramio/types';
12
12
  export * from '@gramio/types';
13
13
  import * as _gramio_composer from '@gramio/composer';
14
- import { ComposerLike, MacroDefinitions, ContextOf, EventComposer, MacroDef, Next, EventQueue, HandlerOptions, DeriveFromOptions } from '@gramio/composer';
14
+ import { ComposerLike, MacroDefinitions, EventContextOf, EventComposer, MacroDef, Next, EventQueue, HandlerOptions, DeriveFromOptions } from '@gramio/composer';
15
15
  export { ContextCallback, DeriveFromOptions, EventComposer, EventQueue, HandlerOptions, MacroDef, MacroDefinitions, MacroDeriveType, MacroHooks, MacroOptionType, Middleware, Next, WithCtx, buildFromOptions, compose, noopNext, skip, stop } from '@gramio/composer';
16
16
 
17
17
  /** Symbol to determine which error kind is it */
@@ -44,6 +44,7 @@ type Ctx<K extends keyof ContextsMapping<AnyBot>> = InstanceType<ContextsMapping
44
44
  type GramIOLike<T> = ComposerLike<T> & {
45
45
  "~": {
46
46
  macros: MacroDefinitions;
47
+ Derives?: Record<string, object>;
47
48
  };
48
49
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): T;
49
50
  };
@@ -54,29 +55,29 @@ declare module "@gramio/composer" {
54
55
  }
55
56
  }
56
57
  declare const Composer: _gramio_composer.EventComposerConstructor<Context<AnyBot>, TelegramEventMap, {
57
- reaction<TThis extends GramIOLike<TThis>>(this: TThis, trigger: MaybeArray<TelegramReactionTypeEmojiEmoji>, handler: (context: Ctx<"message_reaction"> & ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
58
+ reaction<TThis extends GramIOLike<TThis>>(this: TThis, trigger: MaybeArray<TelegramReactionTypeEmojiEmoji>, handler: (context: Ctx<"message_reaction"> & EventContextOf<TThis, "message_reaction">) => unknown, macroOptions?: Record<string, unknown>): TThis;
58
59
  callbackQuery<TThis extends GramIOLike<TThis>, Trigger extends CallbackData | string | RegExp>(this: TThis, trigger: Trigger, handler: (context: Ctx<"callback_query"> & {
59
60
  queryData: Trigger extends CallbackData ? ReturnType<Trigger["unpack"]> : Trigger extends RegExp ? RegExpMatchArray : never;
60
- } & ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
61
+ } & EventContextOf<TThis, "callback_query">) => unknown, macroOptions?: Record<string, unknown>): TThis;
61
62
  chosenInlineResult<TThis extends GramIOLike<TThis>>(this: TThis, trigger: RegExp | string | ((context: Ctx<"chosen_inline_result">) => boolean), handler: (context: Ctx<"chosen_inline_result"> & {
62
63
  args: RegExpMatchArray | null;
63
- } & ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
64
+ } & EventContextOf<TThis, "chosen_inline_result">) => unknown, macroOptions?: Record<string, unknown>): TThis;
64
65
  inlineQuery<TThis extends GramIOLike<TThis>>(this: TThis, trigger: RegExp | string | ((context: Ctx<"inline_query">) => boolean), handler: (context: Ctx<"inline_query"> & {
65
66
  args: RegExpMatchArray | null;
66
- } & ContextOf<TThis>) => unknown, options?: {
67
+ } & EventContextOf<TThis, "inline_query">) => unknown, options?: {
67
68
  onResult?: (context: Ctx<"chosen_inline_result"> & {
68
69
  args: RegExpMatchArray | null;
69
- } & ContextOf<TThis>) => unknown;
70
+ } & EventContextOf<TThis, "chosen_inline_result">) => unknown;
70
71
  } & Record<string, unknown>): TThis;
71
72
  hears<TThis extends GramIOLike<TThis>>(this: TThis, trigger: RegExp | MaybeArray<string> | ((context: Ctx<"message">) => boolean), handler: (context: Ctx<"message"> & {
72
73
  args: RegExpMatchArray | null;
73
- } & ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
74
+ } & EventContextOf<TThis, "message">) => unknown, macroOptions?: Record<string, unknown>): TThis;
74
75
  command<TThis extends GramIOLike<TThis>>(this: TThis, command: MaybeArray<string>, handler: (context: Ctx<"message"> & {
75
76
  args: string | null;
76
- } & ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
77
+ } & EventContextOf<TThis, "message">) => unknown, macroOptions?: Record<string, unknown>): TThis;
77
78
  startParameter<TThis extends GramIOLike<TThis>>(this: TThis, parameter: RegExp | MaybeArray<string>, handler: Handler<Ctx<"message"> & {
78
79
  rawStartPayload: string;
79
- } & ContextOf<TThis>>, macroOptions?: Record<string, unknown>): TThis;
80
+ } & EventContextOf<TThis, "message">>, macroOptions?: Record<string, unknown>): TThis;
80
81
  }>;
81
82
 
82
83
  /**
@@ -213,120 +214,134 @@ declare class Plugin<Errors extends ErrorDefinitions = {}, Derives extends Deriv
213
214
  reaction<TThis extends _gramio_composer.ComposerLike<TThis> & {
214
215
  "~": {
215
216
  macros: MacroDefinitions;
217
+ Derives?: Record<string, object>;
216
218
  };
217
219
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
218
- }>(this: TThis, trigger: MaybeArray<_gramio_types.TelegramReactionTypeEmojiEmoji>, handler: (context: _gramio_contexts.MessageReactionContext<AnyBot> & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
220
+ }>(this: TThis, trigger: MaybeArray<_gramio_types.TelegramReactionTypeEmojiEmoji>, handler: (context: _gramio_contexts.MessageReactionContext<AnyBot> & _gramio_composer.EventContextOf<TThis, "message_reaction">) => unknown, macroOptions?: Record<string, unknown>): TThis;
219
221
  callbackQuery<TThis extends _gramio_composer.ComposerLike<TThis> & {
220
222
  "~": {
221
223
  macros: MacroDefinitions;
224
+ Derives?: Record<string, object>;
222
225
  };
223
226
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
224
227
  }, Trigger extends _gramio_callback_data.CallbackData | string | RegExp>(this: TThis, trigger: Trigger, handler: (context: _gramio_contexts.CallbackQueryContext<AnyBot> & {
225
228
  queryData: Trigger extends _gramio_callback_data.CallbackData ? ReturnType<Trigger["unpack"]> : Trigger extends RegExp ? RegExpMatchArray : never;
226
- } & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
229
+ } & _gramio_composer.EventContextOf<TThis, "callback_query">) => unknown, macroOptions?: Record<string, unknown>): TThis;
227
230
  chosenInlineResult<TThis extends _gramio_composer.ComposerLike<TThis> & {
228
231
  "~": {
229
232
  macros: MacroDefinitions;
233
+ Derives?: Record<string, object>;
230
234
  };
231
235
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
232
236
  }>(this: TThis, trigger: RegExp | string | ((context: _gramio_contexts.ChosenInlineResultContext<AnyBot>) => boolean), handler: (context: _gramio_contexts.ChosenInlineResultContext<AnyBot> & {
233
237
  args: RegExpMatchArray | null;
234
- } & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
238
+ } & _gramio_composer.EventContextOf<TThis, "chosen_inline_result">) => unknown, macroOptions?: Record<string, unknown>): TThis;
235
239
  inlineQuery<TThis extends _gramio_composer.ComposerLike<TThis> & {
236
240
  "~": {
237
241
  macros: MacroDefinitions;
242
+ Derives?: Record<string, object>;
238
243
  };
239
244
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
240
245
  }>(this: TThis, trigger: RegExp | string | ((context: _gramio_contexts.InlineQueryContext<AnyBot>) => boolean), handler: (context: _gramio_contexts.InlineQueryContext<AnyBot> & {
241
246
  args: RegExpMatchArray | null;
242
- } & _gramio_composer.ContextOf<TThis>) => unknown, options?: {
247
+ } & _gramio_composer.EventContextOf<TThis, "inline_query">) => unknown, options?: {
243
248
  onResult?: (context: _gramio_contexts.ChosenInlineResultContext<AnyBot> & {
244
249
  args: RegExpMatchArray | null;
245
- } & _gramio_composer.ContextOf<TThis>) => unknown;
250
+ } & _gramio_composer.EventContextOf<TThis, "chosen_inline_result">) => unknown;
246
251
  } & Record<string, unknown>): TThis;
247
252
  hears<TThis extends _gramio_composer.ComposerLike<TThis> & {
248
253
  "~": {
249
254
  macros: MacroDefinitions;
255
+ Derives?: Record<string, object>;
250
256
  };
251
257
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
252
258
  }>(this: TThis, trigger: RegExp | MaybeArray<string> | ((context: _gramio_contexts.MessageContext<AnyBot> & _gramio_contexts.Require<_gramio_contexts.MessageContext<AnyBot>, "from">) => boolean), handler: (context: (_gramio_contexts.MessageContext<AnyBot> & _gramio_contexts.Require<_gramio_contexts.MessageContext<AnyBot>, "from">) & {
253
259
  args: RegExpMatchArray | null;
254
- } & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
260
+ } & _gramio_composer.EventContextOf<TThis, "message">) => unknown, macroOptions?: Record<string, unknown>): TThis;
255
261
  command<TThis extends _gramio_composer.ComposerLike<TThis> & {
256
262
  "~": {
257
263
  macros: MacroDefinitions;
264
+ Derives?: Record<string, object>;
258
265
  };
259
266
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
260
267
  }>(this: TThis, command: MaybeArray<string>, handler: (context: (_gramio_contexts.MessageContext<AnyBot> & _gramio_contexts.Require<_gramio_contexts.MessageContext<AnyBot>, "from">) & {
261
268
  args: string | null;
262
- } & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
269
+ } & _gramio_composer.EventContextOf<TThis, "message">) => unknown, macroOptions?: Record<string, unknown>): TThis;
263
270
  startParameter<TThis extends _gramio_composer.ComposerLike<TThis> & {
264
271
  "~": {
265
272
  macros: MacroDefinitions;
273
+ Derives?: Record<string, object>;
266
274
  };
267
275
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
268
276
  }>(this: TThis, parameter: RegExp | MaybeArray<string>, handler: Handler<(_gramio_contexts.MessageContext<AnyBot> & _gramio_contexts.Require<_gramio_contexts.MessageContext<AnyBot>, "from">) & {
269
277
  rawStartPayload: string;
270
- } & _gramio_composer.ContextOf<TThis>>, macroOptions?: Record<string, unknown>): TThis;
278
+ } & _gramio_composer.EventContextOf<TThis, "message">>, macroOptions?: Record<string, unknown>): TThis;
271
279
  }, {}> & {
272
280
  reaction<TThis extends _gramio_composer.ComposerLike<TThis> & {
273
281
  "~": {
274
282
  macros: MacroDefinitions;
283
+ Derives?: Record<string, object>;
275
284
  };
276
285
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
277
- }>(this: TThis, trigger: MaybeArray<_gramio_types.TelegramReactionTypeEmojiEmoji>, handler: (context: _gramio_contexts.MessageReactionContext<AnyBot> & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
286
+ }>(this: TThis, trigger: MaybeArray<_gramio_types.TelegramReactionTypeEmojiEmoji>, handler: (context: _gramio_contexts.MessageReactionContext<AnyBot> & _gramio_composer.EventContextOf<TThis, "message_reaction">) => unknown, macroOptions?: Record<string, unknown>): TThis;
278
287
  callbackQuery<TThis extends _gramio_composer.ComposerLike<TThis> & {
279
288
  "~": {
280
289
  macros: MacroDefinitions;
290
+ Derives?: Record<string, object>;
281
291
  };
282
292
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
283
293
  }, Trigger extends _gramio_callback_data.CallbackData | string | RegExp>(this: TThis, trigger: Trigger, handler: (context: _gramio_contexts.CallbackQueryContext<AnyBot> & {
284
294
  queryData: Trigger extends _gramio_callback_data.CallbackData ? ReturnType<Trigger["unpack"]> : Trigger extends RegExp ? RegExpMatchArray : never;
285
- } & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
295
+ } & _gramio_composer.EventContextOf<TThis, "callback_query">) => unknown, macroOptions?: Record<string, unknown>): TThis;
286
296
  chosenInlineResult<TThis extends _gramio_composer.ComposerLike<TThis> & {
287
297
  "~": {
288
298
  macros: MacroDefinitions;
299
+ Derives?: Record<string, object>;
289
300
  };
290
301
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
291
302
  }>(this: TThis, trigger: RegExp | string | ((context: _gramio_contexts.ChosenInlineResultContext<AnyBot>) => boolean), handler: (context: _gramio_contexts.ChosenInlineResultContext<AnyBot> & {
292
303
  args: RegExpMatchArray | null;
293
- } & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
304
+ } & _gramio_composer.EventContextOf<TThis, "chosen_inline_result">) => unknown, macroOptions?: Record<string, unknown>): TThis;
294
305
  inlineQuery<TThis extends _gramio_composer.ComposerLike<TThis> & {
295
306
  "~": {
296
307
  macros: MacroDefinitions;
308
+ Derives?: Record<string, object>;
297
309
  };
298
310
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
299
311
  }>(this: TThis, trigger: RegExp | string | ((context: _gramio_contexts.InlineQueryContext<AnyBot>) => boolean), handler: (context: _gramio_contexts.InlineQueryContext<AnyBot> & {
300
312
  args: RegExpMatchArray | null;
301
- } & _gramio_composer.ContextOf<TThis>) => unknown, options?: {
313
+ } & _gramio_composer.EventContextOf<TThis, "inline_query">) => unknown, options?: {
302
314
  onResult?: (context: _gramio_contexts.ChosenInlineResultContext<AnyBot> & {
303
315
  args: RegExpMatchArray | null;
304
- } & _gramio_composer.ContextOf<TThis>) => unknown;
316
+ } & _gramio_composer.EventContextOf<TThis, "chosen_inline_result">) => unknown;
305
317
  } & Record<string, unknown>): TThis;
306
318
  hears<TThis extends _gramio_composer.ComposerLike<TThis> & {
307
319
  "~": {
308
320
  macros: MacroDefinitions;
321
+ Derives?: Record<string, object>;
309
322
  };
310
323
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
311
324
  }>(this: TThis, trigger: RegExp | MaybeArray<string> | ((context: _gramio_contexts.MessageContext<AnyBot> & _gramio_contexts.Require<_gramio_contexts.MessageContext<AnyBot>, "from">) => boolean), handler: (context: (_gramio_contexts.MessageContext<AnyBot> & _gramio_contexts.Require<_gramio_contexts.MessageContext<AnyBot>, "from">) & {
312
325
  args: RegExpMatchArray | null;
313
- } & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
326
+ } & _gramio_composer.EventContextOf<TThis, "message">) => unknown, macroOptions?: Record<string, unknown>): TThis;
314
327
  command<TThis extends _gramio_composer.ComposerLike<TThis> & {
315
328
  "~": {
316
329
  macros: MacroDefinitions;
330
+ Derives?: Record<string, object>;
317
331
  };
318
332
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
319
333
  }>(this: TThis, command: MaybeArray<string>, handler: (context: (_gramio_contexts.MessageContext<AnyBot> & _gramio_contexts.Require<_gramio_contexts.MessageContext<AnyBot>, "from">) & {
320
334
  args: string | null;
321
- } & _gramio_composer.ContextOf<TThis>) => unknown, macroOptions?: Record<string, unknown>): TThis;
335
+ } & _gramio_composer.EventContextOf<TThis, "message">) => unknown, macroOptions?: Record<string, unknown>): TThis;
322
336
  startParameter<TThis extends _gramio_composer.ComposerLike<TThis> & {
323
337
  "~": {
324
338
  macros: MacroDefinitions;
339
+ Derives?: Record<string, object>;
325
340
  };
326
341
  chosenInlineResult(trigger: any, handler: any, macroOptions?: any): TThis;
327
342
  }>(this: TThis, parameter: RegExp | MaybeArray<string>, handler: Handler<(_gramio_contexts.MessageContext<AnyBot> & _gramio_contexts.Require<_gramio_contexts.MessageContext<AnyBot>, "from">) & {
328
343
  rawStartPayload: string;
329
- } & _gramio_composer.ContextOf<TThis>>, macroOptions?: Record<string, unknown>): TThis;
344
+ } & _gramio_composer.EventContextOf<TThis, "message">>, macroOptions?: Record<string, unknown>): TThis;
330
345
  };
331
346
  /** Store plugin preRequests hooks */
332
347
  preRequests: [Hooks.PreRequest<any>, MaybeArray<keyof APIMethods> | undefined][];
package/dist/index.js CHANGED
@@ -680,16 +680,11 @@ class Bot {
680
680
  if (!params?.suppress) throw err;
681
681
  return err;
682
682
  }
683
- this.runImmutableHooks(
684
- "onResponse",
685
- // TODO: fix type error
686
- // @ts-expect-error
687
- {
688
- method,
689
- params,
690
- response: data.result
691
- }
692
- );
683
+ this.runImmutableHooks("onResponse", {
684
+ method,
685
+ params,
686
+ response: data.result
687
+ });
693
688
  return data.result;
694
689
  };
695
690
  if (!this.hooks.onApiCall.length) return executeCall();
@@ -845,10 +840,11 @@ class Bot {
845
840
  if (typeof methodsOrHandler === "string" || Array.isArray(methodsOrHandler)) {
846
841
  if (!handler) throw new Error("TODO:");
847
842
  const methods = typeof methodsOrHandler === "string" ? [methodsOrHandler] : methodsOrHandler;
848
- this.hooks.preRequest.push(async (context) => {
849
- if (methods.includes(context.method)) return handler(context);
843
+ this.hooks.preRequest.push((async (context) => {
844
+ if (methods.includes(context.method))
845
+ return handler(context);
850
846
  return context;
851
- });
847
+ }));
852
848
  } else this.hooks.preRequest.push(methodsOrHandler);
853
849
  return this;
854
850
  }
@@ -856,10 +852,10 @@ class Bot {
856
852
  if (typeof methodsOrHandler === "string" || Array.isArray(methodsOrHandler)) {
857
853
  if (!handler) throw new Error("TODO:");
858
854
  const methods = typeof methodsOrHandler === "string" ? [methodsOrHandler] : methodsOrHandler;
859
- this.hooks.onResponse.push(async (context) => {
860
- if (methods.includes(context.method)) return handler(context);
861
- return context;
862
- });
855
+ this.hooks.onResponse.push((async (context) => {
856
+ if (methods.includes(context.method))
857
+ return handler(context);
858
+ }));
863
859
  } else this.hooks.onResponse.push(methodsOrHandler);
864
860
  return this;
865
861
  }
@@ -867,21 +863,25 @@ class Bot {
867
863
  if (typeof methodsOrHandler === "string" || Array.isArray(methodsOrHandler)) {
868
864
  if (!handler) throw new Error("TODO:");
869
865
  const methods = typeof methodsOrHandler === "string" ? [methodsOrHandler] : methodsOrHandler;
870
- this.hooks.onResponseError.push(async (context) => {
871
- if (methods.includes(context.method)) return handler(context);
872
- return context;
873
- });
874
- } else this.hooks.onResponseError.push(methodsOrHandler);
866
+ this.hooks.onResponseError.push((async (context, api) => {
867
+ if (methods.includes(context.method))
868
+ return handler(context, api);
869
+ }));
870
+ } else
871
+ this.hooks.onResponseError.push(
872
+ methodsOrHandler
873
+ );
875
874
  return this;
876
875
  }
877
876
  onApiCall(methodsOrHandler, handler) {
878
877
  if (typeof methodsOrHandler === "string" || Array.isArray(methodsOrHandler)) {
879
878
  if (!handler) throw new Error("TODO:");
880
879
  const methods = typeof methodsOrHandler === "string" ? [methodsOrHandler] : methodsOrHandler;
881
- this.hooks.onApiCall.push(async (context, next) => {
882
- if (methods.includes(context.method)) return handler(context, next);
880
+ this.hooks.onApiCall.push((async (context, next) => {
881
+ if (methods.includes(context.method))
882
+ return handler(context, next);
883
883
  return next();
884
- });
884
+ }));
885
885
  } else {
886
886
  this.hooks.onApiCall.push(methodsOrHandler);
887
887
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "gramio",
3
3
  "type": "module",
4
- "version": "0.6.0",
4
+ "version": "0.6.2",
5
5
  "description": "Powerful, extensible and really type-safe Telegram Bot API framework",
6
6
  "main": "dist/index.cjs",
7
7
  "module": "dist/index.js",
@@ -56,7 +56,7 @@
56
56
  "license": "MIT",
57
57
  "devDependencies": {
58
58
  "@biomejs/biome": "2.4.4",
59
- "@gramio/test": "^0.3.0",
59
+ "@gramio/test": "^0.3.1",
60
60
  "@types/bun": "^1.3.9",
61
61
  "@types/debug": "^4.1.12",
62
62
  "expect-type": "^1.3.0",
@@ -65,9 +65,9 @@
65
65
  },
66
66
  "dependencies": {
67
67
  "@gramio/callback-data": "^0.1.0",
68
- "@gramio/composer": "^0.3.1",
68
+ "@gramio/composer": "^0.3.3",
69
69
  "@gramio/contexts": "^0.4.0",
70
- "@gramio/files": "^0.3.0",
70
+ "@gramio/files": "^0.3.1",
71
71
  "@gramio/format": "^0.4.0",
72
72
  "@gramio/keyboards": "^1.3.0",
73
73
  "@gramio/types": "^9.4.2",