grammy 1.38.1 → 1.38.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -323,13 +323,15 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
323
323
  <td align="center" valign="top" width="11.11%"><a href="https://github.com/ikelax"><img src="https://avatars.githubusercontent.com/u/163678144?v=4?s=100" width="100px;" alt="ikelax"/><br /><sub><b>ikelax</b></sub></a><br /><a href="https://github.com/grammyjs/grammY/commits?author=ikelax" title="Documentation">📖</a></td>
324
324
  <td align="center" valign="top" width="11.11%"><a href="http://zeokku.com"><img src="https://avatars.githubusercontent.com/u/22231294?v=4?s=100" width="100px;" alt="Lutymane"/><br /><sub><b>Lutymane</b></sub></a><br /><a href="https://github.com/grammyjs/grammY/commits?author=Lutymane" title="Code">💻</a></td>
325
325
  <td align="center" valign="top" width="11.11%"><a href="https://thadaw.com"><img src="https://avatars.githubusercontent.com/u/3647850?v=4?s=100" width="100px;" alt="Thada Wangthammang"/><br /><sub><b>Thada Wangthammang</b></sub></a><br /><a href="https://github.com/grammyjs/grammY/issues?q=author%3Amildronize" title="Bug reports">🐛</a> <a href="https://github.com/grammyjs/grammY/commits?author=mildronize" title="Tests">⚠️</a> <a href="https://github.com/grammyjs/grammY/pulls?q=is%3Apr+reviewed-by%3Amildronize" title="Reviewed Pull Requests">👀</a></td>
326
- <td align="center" valign="top" width="11.11%"><a href="https://github.com/rtyt3000"><img src="https://avatars.githubusercontent.com/u/123096124?v=4?s=100" width="100px;" alt="Konstantin Ryshkov"/><br /><sub><b>Konstantin Ryshkov</b></sub></a><br /><a href="https://github.com/grammyjs/grammY/issues?q=author%3Artyt3000" title="Bug reports">🐛</a></td>
326
+ <td align="center" valign="top" width="11.11%"><a href="https://github.com/rtyt3000"><img src="https://avatars.githubusercontent.com/u/123096124?v=4?s=100" width="100px;" alt="Konstantin Ryshkov"/><br /><sub><b>Konstantin Ryshkov</b></sub></a><br /><a href="https://github.com/grammyjs/grammY/issues?q=author%3Artyt3000" title="Bug reports">🐛</a> <a href="https://github.com/grammyjs/grammY/commits?author=rtyt3000" title="Documentation">📖</a></td>
327
327
  <td align="center" valign="top" width="11.11%"><a href="https://github.com/mishkatik"><img src="https://avatars.githubusercontent.com/u/101044644?v=4?s=100" width="100px;" alt="mish"/><br /><sub><b>mish</b></sub></a><br /><a href="https://github.com/grammyjs/grammY/issues?q=author%3Amishkatik" title="Bug reports">🐛</a> <a href="https://github.com/grammyjs/grammY/commits?author=mishkatik" title="Code">💻</a></td>
328
328
  <td align="center" valign="top" width="11.11%"><a href="https://github.com/eddienubes"><img src="https://avatars.githubusercontent.com/u/53977359?v=4?s=100" width="100px;" alt="Dmytro Tiapukhin"/><br /><sub><b>Dmytro Tiapukhin</b></sub></a><br /><a href="https://github.com/grammyjs/grammY/commits?author=eddienubes" title="Documentation">📖</a></td>
329
329
  </tr>
330
330
  <tr>
331
331
  <td align="center" valign="top" width="11.11%"><a href="https://github.com/Arctomachine"><img src="https://avatars.githubusercontent.com/u/29041820?v=4?s=100" width="100px;" alt="Alexander"/><br /><sub><b>Alexander</b></sub></a><br /><a href="https://github.com/grammyjs/grammY/commits?author=Arctomachine" title="Documentation">📖</a></td>
332
332
  <td align="center" valign="top" width="11.11%"><a href="https://github.com/OfficialCodinary"><img src="https://avatars.githubusercontent.com/u/133005277?v=4?s=100" width="100px;" alt="Codinary"/><br /><sub><b>Codinary</b></sub></a><br /><a href="https://github.com/grammyjs/grammY/pulls?q=is%3Apr+reviewed-by%3AOfficialCodinary" title="Reviewed Pull Requests">👀</a></td>
333
+ <td align="center" valign="top" width="11.11%"><a href="https://github.com/dotvhs"><img src="https://avatars.githubusercontent.com/u/681416?v=4?s=100" width="100px;" alt=".vhs"/><br /><sub><b>.vhs</b></sub></a><br /><a href="https://github.com/grammyjs/grammY/issues?q=author%3Adotvhs" title="Bug reports">🐛</a> <a href="https://github.com/grammyjs/grammY/pulls?q=is%3Apr+reviewed-by%3Adotvhs" title="Reviewed Pull Requests">👀</a></td>
334
+ <td align="center" valign="top" width="11.11%"><a href="https://agou.im/"><img src="https://avatars.githubusercontent.com/u/55237525?v=4?s=100" width="100px;" alt="agoudbg"/><br /><sub><b>agoudbg</b></sub></a><br /><a href="https://github.com/grammyjs/grammY/issues?q=author%3Aagoudbg" title="Bug reports">🐛</a> <a href="https://github.com/grammyjs/grammY/commits?author=agoudbg" title="Code">💻</a></td>
333
335
  </tr>
334
336
  </tbody>
335
337
  </table>
package/out/context.d.ts CHANGED
@@ -1279,7 +1279,9 @@ export declare class Context implements RenamedUpdate {
1279
1279
  */
1280
1280
  editMessageText(text: string, other?: Other<"editMessageText", "chat_id" | "message_id" | "inline_message_id" | "text">, signal?: AbortSignal): Promise<true | (Update.Edited & Message.CommonMessage & {
1281
1281
  text: string;
1282
- })>;
1282
+ } & Partial<{
1283
+ entities: MessageEntity[];
1284
+ }>)>;
1283
1285
  /**
1284
1286
  * Context-aware alias for `api.editMessageCaption`. Use this method to edit captions of messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within 48 hours from the time they were sent.
1285
1287
  *
package/out/context.js CHANGED
@@ -690,9 +690,6 @@ class Context {
690
690
  var _a;
691
691
  const msg = this.msg;
692
692
  return this.api.forwardMessage(chat_id, orThrow(this.chatId, "forwardMessage"), orThrow(this.msgId, "forwardMessage"), {
693
- ...((msg === null || msg === void 0 ? void 0 : msg.is_topic_message)
694
- ? { message_thread_id: msg === null || msg === void 0 ? void 0 : msg.message_thread_id }
695
- : {}),
696
693
  direct_messages_topic_id: (_a = msg === null || msg === void 0 ? void 0 : msg.direct_messages_topic) === null || _a === void 0 ? void 0 : _a.topic_id,
697
694
  ...other,
698
695
  }, signal);
@@ -711,9 +708,6 @@ class Context {
711
708
  var _a;
712
709
  const msg = this.msg;
713
710
  return this.api.forwardMessages(chat_id, orThrow(this.chatId, "forwardMessages"), message_ids, {
714
- ...((msg === null || msg === void 0 ? void 0 : msg.is_topic_message)
715
- ? { message_thread_id: msg === null || msg === void 0 ? void 0 : msg.message_thread_id }
716
- : {}),
717
711
  direct_messages_topic_id: (_a = msg === null || msg === void 0 ? void 0 : msg.direct_messages_topic) === null || _a === void 0 ? void 0 : _a.topic_id,
718
712
  ...other,
719
713
  }, signal);
@@ -731,9 +725,6 @@ class Context {
731
725
  var _a;
732
726
  const msg = this.msg;
733
727
  return this.api.copyMessage(chat_id, orThrow(this.chatId, "copyMessage"), orThrow(this.msgId, "copyMessage"), {
734
- ...((msg === null || msg === void 0 ? void 0 : msg.is_topic_message)
735
- ? { message_thread_id: msg === null || msg === void 0 ? void 0 : msg.message_thread_id }
736
- : {}),
737
728
  direct_messages_topic_id: (_a = msg === null || msg === void 0 ? void 0 : msg.direct_messages_topic) === null || _a === void 0 ? void 0 : _a.topic_id,
738
729
  ...other,
739
730
  }, signal);
@@ -752,9 +743,6 @@ class Context {
752
743
  var _a;
753
744
  const msg = this.msg;
754
745
  return this.api.copyMessages(chat_id, orThrow(this.chatId, "copyMessages"), message_ids, {
755
- ...((msg === null || msg === void 0 ? void 0 : msg.is_topic_message)
756
- ? { message_thread_id: msg === null || msg === void 0 ? void 0 : msg.message_thread_id }
757
- : {}),
758
746
  direct_messages_topic_id: (_a = msg === null || msg === void 0 ? void 0 : msg.direct_messages_topic) === null || _a === void 0 ? void 0 : _a.topic_id,
759
747
  ...other,
760
748
  }, signal);
@@ -77,11 +77,11 @@ export type CloudflareAdapter = (event: {
77
77
  }) => ReqResHandler;
78
78
  export type CloudflareModuleAdapter = (request: Request) => ReqResHandler<Response>;
79
79
  export type ElysiaAdapter = (ctx: {
80
- body: Update;
80
+ body: unknown;
81
81
  headers: Record<string, string | undefined>;
82
82
  set: {
83
- headers: Record<string, string>;
84
- status: number;
83
+ headers: Record<string, string | number>;
84
+ status?: string | number;
85
85
  };
86
86
  }) => ReqResHandler<string>;
87
87
  export type ExpressAdapter = (req: {
@@ -167,7 +167,7 @@ const fastify = (request, reply) => ({
167
167
  return request.body;
168
168
  },
169
169
  header: request.headers[SECRET_HEADER_LOWERCASE],
170
- end: () => reply.status(200).send(),
170
+ end: () => reply.send(""),
171
171
  respond: (json) => reply.headers({ "Content-Type": "application/json" }).send(json),
172
172
  unauthorized: () => reply.code(401).send(WRONG_TOKEN_ERROR),
173
173
  });
package/out/core/api.d.ts CHANGED
@@ -1134,7 +1134,9 @@ export declare class Api<R extends RawApi = RawApi> {
1134
1134
  */
1135
1135
  editMessageText(chat_id: number | string, message_id: number, text: string, other?: Other<R, "editMessageText", "chat_id" | "message_id" | "inline_message_id" | "text">, signal?: AbortSignal): Promise<true | (import("@grammyjs/types/update.js").Update.Edited & import("@grammyjs/types/message.js").Message.CommonMessage & {
1136
1136
  text: string;
1137
- })>;
1137
+ } & Partial<{
1138
+ entities: import("@grammyjs/types/message.js").MessageEntity[];
1139
+ }>)>;
1138
1140
  /**
1139
1141
  * Use this method to edit text and game inline messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within 48 hours from the time they were sent.
1140
1142
  *
@@ -1146,7 +1148,9 @@ export declare class Api<R extends RawApi = RawApi> {
1146
1148
  */
1147
1149
  editMessageTextInline(inline_message_id: string, text: string, other?: Other<R, "editMessageText", "chat_id" | "message_id" | "inline_message_id" | "text">, signal?: AbortSignal): Promise<true | (import("@grammyjs/types/update.js").Update.Edited & import("@grammyjs/types/message.js").Message.CommonMessage & {
1148
1150
  text: string;
1149
- })>;
1151
+ } & Partial<{
1152
+ entities: import("@grammyjs/types/message.js").MessageEntity[];
1153
+ }>)>;
1150
1154
  /**
1151
1155
  * Use this method to edit captions of messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within 48 hours from the time they were sent.
1152
1156
  *
package/out/web.mjs CHANGED
@@ -765,9 +765,6 @@ class Context {
765
765
  forwardMessage(chat_id, other, signal) {
766
766
  const msg = this.msg;
767
767
  return this.api.forwardMessage(chat_id, orThrow(this.chatId, "forwardMessage"), orThrow(this.msgId, "forwardMessage"), {
768
- ...msg?.is_topic_message ? {
769
- message_thread_id: msg?.message_thread_id
770
- } : {},
771
768
  direct_messages_topic_id: msg?.direct_messages_topic?.topic_id,
772
769
  ...other
773
770
  }, signal);
@@ -775,9 +772,6 @@ class Context {
775
772
  forwardMessages(chat_id, message_ids, other, signal) {
776
773
  const msg = this.msg;
777
774
  return this.api.forwardMessages(chat_id, orThrow(this.chatId, "forwardMessages"), message_ids, {
778
- ...msg?.is_topic_message ? {
779
- message_thread_id: msg?.message_thread_id
780
- } : {},
781
775
  direct_messages_topic_id: msg?.direct_messages_topic?.topic_id,
782
776
  ...other
783
777
  }, signal);
@@ -785,9 +779,6 @@ class Context {
785
779
  copyMessage(chat_id, other, signal) {
786
780
  const msg = this.msg;
787
781
  return this.api.copyMessage(chat_id, orThrow(this.chatId, "copyMessage"), orThrow(this.msgId, "copyMessage"), {
788
- ...msg?.is_topic_message ? {
789
- message_thread_id: msg?.message_thread_id
790
- } : {},
791
782
  direct_messages_topic_id: msg?.direct_messages_topic?.topic_id,
792
783
  ...other
793
784
  }, signal);
@@ -795,9 +786,6 @@ class Context {
795
786
  copyMessages(chat_id, message_ids, other, signal) {
796
787
  const msg = this.msg;
797
788
  return this.api.copyMessages(chat_id, orThrow(this.chatId, "copyMessages"), message_ids, {
798
- ...msg?.is_topic_message ? {
799
- message_thread_id: msg?.message_thread_id
800
- } : {},
801
789
  direct_messages_topic_id: msg?.direct_messages_topic?.topic_id,
802
790
  ...other
803
791
  }, signal);
@@ -1984,50 +1972,64 @@ function setup(env) {
1984
1972
  createDebug.namespaces = namespaces;
1985
1973
  createDebug.names = [];
1986
1974
  createDebug.skips = [];
1987
- let i;
1988
- const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/);
1989
- const len = split.length;
1990
- for(i = 0; i < len; i++){
1991
- if (!split[i]) {
1992
- continue;
1975
+ const split = (typeof namespaces === "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean);
1976
+ for (const ns of split){
1977
+ if (ns[0] === "-") {
1978
+ createDebug.skips.push(ns.slice(1));
1979
+ } else {
1980
+ createDebug.names.push(ns);
1993
1981
  }
1994
- namespaces = split[i].replace(/\*/g, ".*?");
1995
- if (namespaces[0] === "-") {
1996
- createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$"));
1982
+ }
1983
+ }
1984
+ function matchesTemplate(search, template) {
1985
+ let searchIndex = 0;
1986
+ let templateIndex = 0;
1987
+ let starIndex = -1;
1988
+ let matchIndex = 0;
1989
+ while(searchIndex < search.length){
1990
+ if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) {
1991
+ if (template[templateIndex] === "*") {
1992
+ starIndex = templateIndex;
1993
+ matchIndex = searchIndex;
1994
+ templateIndex++;
1995
+ } else {
1996
+ searchIndex++;
1997
+ templateIndex++;
1998
+ }
1999
+ } else if (starIndex !== -1) {
2000
+ templateIndex = starIndex + 1;
2001
+ matchIndex++;
2002
+ searchIndex = matchIndex;
1997
2003
  } else {
1998
- createDebug.names.push(new RegExp("^" + namespaces + "$"));
2004
+ return false;
1999
2005
  }
2000
2006
  }
2007
+ while(templateIndex < template.length && template[templateIndex] === "*"){
2008
+ templateIndex++;
2009
+ }
2010
+ return templateIndex === template.length;
2001
2011
  }
2002
2012
  function disable() {
2003
2013
  const namespaces = [
2004
- ...createDebug.names.map(toNamespace),
2005
- ...createDebug.skips.map(toNamespace).map((namespace)=>"-" + namespace)
2014
+ ...createDebug.names,
2015
+ ...createDebug.skips.map((namespace)=>"-" + namespace)
2006
2016
  ].join(",");
2007
2017
  createDebug.enable("");
2008
2018
  return namespaces;
2009
2019
  }
2010
2020
  function enabled(name) {
2011
- if (name[name.length - 1] === "*") {
2012
- return true;
2013
- }
2014
- let i;
2015
- let len;
2016
- for(i = 0, len = createDebug.skips.length; i < len; i++){
2017
- if (createDebug.skips[i].test(name)) {
2021
+ for (const skip of createDebug.skips){
2022
+ if (matchesTemplate(name, skip)) {
2018
2023
  return false;
2019
2024
  }
2020
2025
  }
2021
- for(i = 0, len = createDebug.names.length; i < len; i++){
2022
- if (createDebug.names[i].test(name)) {
2026
+ for (const ns of createDebug.names){
2027
+ if (matchesTemplate(name, ns)) {
2023
2028
  return true;
2024
2029
  }
2025
2030
  }
2026
2031
  return false;
2027
2032
  }
2028
- function toNamespace(regexp) {
2029
- return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*");
2030
- }
2031
2033
  function coerce(val) {
2032
2034
  if (val instanceof Error) {
2033
2035
  return val.stack || val.message;
@@ -2141,7 +2143,8 @@ var browser$1 = createCommonjsModule(function(module, exports) {
2141
2143
  if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
2142
2144
  return false;
2143
2145
  }
2144
- return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
2146
+ let m;
2147
+ return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
2145
2148
  }
2146
2149
  function formatArgs2(args) {
2147
2150
  args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff);
@@ -2176,7 +2179,7 @@ var browser$1 = createCommonjsModule(function(module, exports) {
2176
2179
  function load2() {
2177
2180
  let r;
2178
2181
  try {
2179
- r = exports.storage.getItem("debug");
2182
+ r = exports.storage.getItem("debug") || exports.storage.getItem("DEBUG");
2180
2183
  } catch (error) {}
2181
2184
  if (!r && typeof process !== "undefined" && "env" in process) {
2182
2185
  r = process.env.DEBUG;
@@ -2267,7 +2270,12 @@ function toHttpError(method, sensitiveLogs) {
2267
2270
  throw new HttpError(msg, err);
2268
2271
  };
2269
2272
  }
2270
- const isWindows = globalThis.Deno?.build.os === "windows" || globalThis.navigator?.platform?.startsWith("Win") || globalThis.process?.platform?.startsWith("win") || false;
2273
+ function checkWindows() {
2274
+ const global = globalThis;
2275
+ const os = global.Deno?.build?.os;
2276
+ return typeof os === "string" ? os === "windows" : global.navigator?.platform?.startsWith("Win") ?? global.process?.platform?.startsWith("win") ?? false;
2277
+ }
2278
+ const isWindows = checkWindows();
2271
2279
  function assertPath(path) {
2272
2280
  if (typeof path !== "string") {
2273
2281
  throw new TypeError(`Path must be a string, received "${JSON.stringify(path)}"`);
@@ -2308,6 +2316,17 @@ function assertArgs(path, suffix) {
2308
2316
  throw new TypeError(`Suffix must be a string, received "${JSON.stringify(suffix)}"`);
2309
2317
  }
2310
2318
  }
2319
+ function assertArg(url) {
2320
+ url = url instanceof URL ? url : new URL(url);
2321
+ if (url.protocol !== "file:") {
2322
+ throw new TypeError(`URL must be a file URL: received "${url.protocol}"`);
2323
+ }
2324
+ return url;
2325
+ }
2326
+ function fromFileUrl(url) {
2327
+ url = assertArg(url);
2328
+ return decodeURIComponent(url.pathname.replace(/%(?![0-9A-Fa-f]{2})/g, "%25"));
2329
+ }
2311
2330
  function stripTrailingSeparators(segment, isSep) {
2312
2331
  if (segment.length <= 1) {
2313
2332
  return segment;
@@ -2326,6 +2345,9 @@ function isPosixPathSeparator(code) {
2326
2345
  return code === 47;
2327
2346
  }
2328
2347
  function basename(path, suffix = "") {
2348
+ if (path instanceof URL) {
2349
+ path = fromFileUrl(path);
2350
+ }
2329
2351
  assertArgs(path, suffix);
2330
2352
  const lastSegment = lastPathSegment(path, isPosixPathSeparator);
2331
2353
  const strippedSegment = stripTrailingSeparators(lastSegment, isPosixPathSeparator);
@@ -2337,7 +2359,18 @@ function isPathSeparator(code) {
2337
2359
  function isWindowsDeviceRoot(code) {
2338
2360
  return code >= 97 && code <= 122 || code >= 65 && code <= 90;
2339
2361
  }
2362
+ function fromFileUrl1(url) {
2363
+ url = assertArg(url);
2364
+ let path = decodeURIComponent(url.pathname.replace(/\//g, "\\").replace(/%(?![0-9A-Fa-f]{2})/g, "%25")).replace(/^\\*([A-Za-z]:)(\\|$)/, "$1\\");
2365
+ if (url.hostname !== "") {
2366
+ path = `\\\\${url.hostname}${path}`;
2367
+ }
2368
+ return path;
2369
+ }
2340
2370
  function basename1(path, suffix = "") {
2371
+ if (path instanceof URL) {
2372
+ path = fromFileUrl1(path);
2373
+ }
2341
2374
  assertArgs(path, suffix);
2342
2375
  let start = 0;
2343
2376
  if (path.length >= 2) {
@@ -5279,7 +5312,7 @@ const fastify = (request, reply)=>({
5279
5312
  return request.body;
5280
5313
  },
5281
5314
  header: request.headers[SECRET_HEADER_LOWERCASE],
5282
- end: ()=>reply.status(200).send(),
5315
+ end: ()=>reply.send(""),
5283
5316
  respond: (json)=>reply.headers({
5284
5317
  "Content-Type": "application/json"
5285
5318
  }).send(json),
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "grammy",
3
3
  "description": "The Telegram Bot Framework.",
4
- "version": "1.38.1",
4
+ "version": "1.38.3",
5
5
  "author": "KnorpelSenf",
6
6
  "license": "MIT",
7
7
  "engines": {
@@ -17,16 +17,16 @@
17
17
  "backport": "deno2node tsconfig.json"
18
18
  },
19
19
  "dependencies": {
20
- "@grammyjs/types": "3.22.1",
20
+ "@grammyjs/types": "3.22.2",
21
21
  "abort-controller": "^3.0.0",
22
- "debug": "^4.3.4",
22
+ "debug": "^4.4.3",
23
23
  "node-fetch": "^2.7.0"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/debug": "^4.1.12",
27
27
  "@types/node": "^12.20.55",
28
28
  "@types/node-fetch": "2.6.2",
29
- "deno2node": "^1.13.0"
29
+ "deno2node": "^1.16.0"
30
30
  },
31
31
  "files": [
32
32
  "out/"