@grom.js/effect-tg 0.7.0 → 0.9.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 (99) hide show
  1. package/README.md +162 -5
  2. package/dist/BotApi.d.ts +10 -12
  3. package/dist/BotApi.d.ts.map +1 -1
  4. package/dist/BotApi.js +2 -2
  5. package/dist/BotApi.js.map +1 -1
  6. package/dist/BotApiError.d.ts +46 -71
  7. package/dist/BotApiError.d.ts.map +1 -1
  8. package/dist/BotApiError.js +59 -41
  9. package/dist/BotApiError.js.map +1 -1
  10. package/dist/BotApiTransport.d.ts +10 -17
  11. package/dist/BotApiTransport.d.ts.map +1 -1
  12. package/dist/BotApiTransport.js +2 -7
  13. package/dist/BotApiTransport.js.map +1 -1
  14. package/dist/BotApiUrl.d.ts +6 -8
  15. package/dist/BotApiUrl.d.ts.map +1 -1
  16. package/dist/BotApiUrl.js.map +1 -1
  17. package/dist/Content.d.ts.map +1 -1
  18. package/dist/Dialog.d.ts +96 -41
  19. package/dist/Dialog.d.ts.map +1 -1
  20. package/dist/Dialog.js +60 -25
  21. package/dist/Dialog.js.map +1 -1
  22. package/dist/File.d.ts +1 -2
  23. package/dist/File.d.ts.map +1 -1
  24. package/dist/File.js +1 -1
  25. package/dist/File.js.map +1 -1
  26. package/dist/Markup.d.ts.map +1 -1
  27. package/dist/Runner.d.ts +1 -1
  28. package/dist/Runner.d.ts.map +1 -1
  29. package/dist/Send.d.ts +57 -130
  30. package/dist/Send.d.ts.map +1 -1
  31. package/dist/Send.js +65 -128
  32. package/dist/Send.js.map +1 -1
  33. package/dist/Text.d.ts.map +1 -1
  34. package/dist/internal/botApi.d.ts +3 -1
  35. package/dist/internal/botApi.d.ts.map +1 -1
  36. package/dist/internal/botApi.gen.d.ts +6501 -0
  37. package/dist/internal/botApi.gen.d.ts.map +1 -0
  38. package/dist/internal/botApi.gen.js +2 -0
  39. package/dist/internal/botApi.gen.js.map +1 -0
  40. package/dist/internal/botApi.js +2 -6
  41. package/dist/internal/botApi.js.map +1 -1
  42. package/dist/internal/botApiError.d.ts +5 -2
  43. package/dist/internal/botApiError.d.ts.map +1 -1
  44. package/dist/internal/botApiError.js +8 -18
  45. package/dist/internal/botApiError.js.map +1 -1
  46. package/dist/internal/botApiTransport.d.ts +5 -2
  47. package/dist/internal/botApiTransport.d.ts.map +1 -1
  48. package/dist/internal/botApiTransport.js +14 -10
  49. package/dist/internal/botApiTransport.js.map +1 -1
  50. package/dist/internal/dialog.d.ts +27 -10
  51. package/dist/internal/dialog.d.ts.map +1 -1
  52. package/dist/internal/dialog.js +88 -14
  53. package/dist/internal/dialog.js.map +1 -1
  54. package/dist/internal/file.d.ts +1 -1
  55. package/dist/internal/file.d.ts.map +1 -1
  56. package/dist/internal/file.js +1 -1
  57. package/dist/internal/file.js.map +1 -1
  58. package/dist/internal/runner.d.ts +4 -5
  59. package/dist/internal/runner.d.ts.map +1 -1
  60. package/dist/internal/runner.js +14 -19
  61. package/dist/internal/runner.js.map +1 -1
  62. package/dist/internal/send.d.ts +4 -4
  63. package/dist/internal/send.d.ts.map +1 -1
  64. package/dist/internal/send.js +62 -51
  65. package/dist/internal/send.js.map +1 -1
  66. package/package.json +12 -10
  67. package/src/BotApi.ts +38 -31
  68. package/src/BotApiError.ts +109 -63
  69. package/src/BotApiTransport.ts +18 -20
  70. package/src/BotApiUrl.ts +6 -8
  71. package/src/Content.ts +14 -14
  72. package/src/Dialog.ts +164 -42
  73. package/src/File.ts +3 -4
  74. package/src/Markup.ts +5 -5
  75. package/src/Send.ts +114 -202
  76. package/src/Text.ts +5 -5
  77. package/src/internal/botApi.gen.ts +6783 -0
  78. package/src/internal/botApi.ts +7 -11
  79. package/src/internal/botApiError.ts +15 -20
  80. package/src/internal/botApiTransport.ts +25 -17
  81. package/src/internal/dialog.ts +109 -26
  82. package/src/internal/file.ts +1 -1
  83. package/src/internal/runner.ts +34 -38
  84. package/src/internal/send.ts +161 -132
  85. package/dist/internal/botApiMethods.gen.d.ts +0 -2026
  86. package/dist/internal/botApiMethods.gen.d.ts.map +0 -1
  87. package/dist/internal/botApiMethods.gen.js +0 -2
  88. package/dist/internal/botApiMethods.gen.js.map +0 -1
  89. package/dist/internal/botApiShape.gen.d.ts +0 -398
  90. package/dist/internal/botApiShape.gen.d.ts.map +0 -1
  91. package/dist/internal/botApiShape.gen.js +0 -2
  92. package/dist/internal/botApiShape.gen.js.map +0 -1
  93. package/dist/internal/botApiTypes.gen.d.ts +0 -3903
  94. package/dist/internal/botApiTypes.gen.d.ts.map +0 -1
  95. package/dist/internal/botApiTypes.gen.js +0 -2
  96. package/dist/internal/botApiTypes.gen.js.map +0 -1
  97. package/src/internal/botApiMethods.gen.ts +0 -2027
  98. package/src/internal/botApiShape.gen.ts +0 -398
  99. package/src/internal/botApiTypes.gen.ts +0 -4178
@@ -1,19 +1,93 @@
1
- export function PeerId({ tag, isValid, toDialogId, }) {
2
- class Base {
3
- _tag = tag;
4
- id;
5
- dialogId;
6
- constructor(id) {
7
- if (!Number.isSafeInteger(id)) {
8
- throw new TypeError(`invalid integer: ${id}`);
1
+ import * as Option from 'effect/Option';
2
+ import * as Dialog from "../Dialog.js";
3
+ // =============================================================================
4
+ // Dialog ID <-> Peer ID
5
+ // =============================================================================
6
+ export const decodeDialogId = (dialogId) => {
7
+ if (Number.isSafeInteger(dialogId)) {
8
+ if (1 <= dialogId && dialogId <= 0xFFFFFFFFFF) {
9
+ return Option.some({ peer: 'user', id: +dialogId });
10
+ }
11
+ if (-999999999999 <= dialogId && dialogId <= -1) {
12
+ return Option.some({ peer: 'group', id: -dialogId });
13
+ }
14
+ if (-1997852516352 <= dialogId && dialogId <= -1000000000001) {
15
+ return Option.some({ peer: 'supergroup', id: -(dialogId + 1000000000000) });
16
+ }
17
+ if (-4000000000000 <= dialogId && dialogId <= -2002147483649) {
18
+ return Option.some({ peer: 'monoforum', id: -(dialogId + 1000000000000) });
19
+ }
20
+ if (-2002147483648 <= dialogId && dialogId <= -1997852516353) {
21
+ return Option.some({ peer: 'secret-chat', id: dialogId + 2000000000000 });
22
+ }
23
+ }
24
+ return Option.none();
25
+ };
26
+ export const decodePeerId = (peer, dialogId) => {
27
+ const decoded = decodeDialogId(dialogId);
28
+ if (Option.isSome(decoded) && decoded.value.peer === peer) {
29
+ return Option.some(decoded.value.id);
30
+ }
31
+ return Option.none();
32
+ };
33
+ export const encodePeerId = (peer, id) => {
34
+ if (Number.isSafeInteger(id)) {
35
+ if (peer === 'user' && 1 <= id && id <= 0xFFFFFFFFFF) {
36
+ return Option.some(id);
37
+ }
38
+ if (peer === 'group' && 1 <= id && id <= 999999999999) {
39
+ return Option.some(-id);
40
+ }
41
+ if (peer === 'supergroup' && 1 <= id && id <= 997852516352) {
42
+ return Option.some(-(id + 1000000000000));
43
+ }
44
+ if (peer === 'monoforum' && 1002147483649 <= id && id <= 3000000000000) {
45
+ return Option.some(-(id + 1000000000000));
46
+ }
47
+ if (peer === 'secret-chat' && -2147483648 <= id && id <= 2147483647) {
48
+ return Option.some((id - 2000000000000));
49
+ }
50
+ }
51
+ return Option.none();
52
+ };
53
+ // =============================================================================
54
+ // Constructors
55
+ // =============================================================================
56
+ export const ofMessage = (m) => {
57
+ // TODO: Remove type assertion when bot-api-spec updates types.
58
+ switch (m.chat.type) {
59
+ case 'private': {
60
+ const user = new Dialog.User({
61
+ id: Option.getOrThrow(decodePeerId('user', m.chat.id)),
62
+ });
63
+ if (m.message_thread_id != null) {
64
+ return user.topic(m.message_thread_id);
9
65
  }
10
- if (!isValid(id)) {
11
- throw new Error(`invalid peer id: ${id}`);
66
+ return user;
67
+ }
68
+ case 'group': {
69
+ return new Dialog.Group({
70
+ id: Option.getOrThrow(decodePeerId('group', m.chat.id)),
71
+ });
72
+ }
73
+ case 'supergroup': {
74
+ const supergroup = new Dialog.Supergroup({
75
+ id: Option.getOrThrow(decodePeerId('supergroup', m.chat.id)),
76
+ });
77
+ if (m.message_thread_id != null) {
78
+ return supergroup.topic(m.message_thread_id);
79
+ }
80
+ return supergroup;
81
+ }
82
+ case 'channel': {
83
+ const channel = new Dialog.Channel({
84
+ id: Option.getOrThrow(decodePeerId('supergroup', m.chat.id)),
85
+ });
86
+ if (m.direct_messages_topic != null) {
87
+ return channel.directMessages(m.direct_messages_topic.topic_id);
12
88
  }
13
- this.id = id;
14
- this.dialogId = toDialogId(id);
89
+ return channel;
15
90
  }
16
91
  }
17
- return Base;
18
- }
92
+ };
19
93
  //# sourceMappingURL=dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../src/internal/dialog.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,MAAM,CAAqB,EACzC,GAAG,EACH,OAAO,EACP,UAAU,GAKX;IAOC,MAAM,IAAI;QACQ,IAAI,GAAG,GAAG,CAAA;QACV,EAAE,CAAQ;QACV,QAAQ,CAAQ;QAEhC,YAAY,EAAU;YACpB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,SAAS,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAA;YAC/C,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAA;YAC3C,CAAC;YACD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;YACZ,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,CAAA;QAChC,CAAC;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../src/internal/dialog.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@ import * as HttpClient from '@effect/platform/HttpClient';
3
3
  import * as Effect from 'effect/Effect';
4
4
  import * as BotApi from '../BotApi.ts';
5
5
  import * as BotApiUrl from '../BotApiUrl.ts';
6
- export declare const get: (fileId: FileId) => Effect.Effect<import("@effect/platform/HttpClientResponse").HttpClientResponse, import("../BotApiError.ts").BotApiError | import("@effect/platform/HttpClientError").HttpClientError | import("../BotApiTransport.ts").BotApiTransportError, BotApiUrl.BotApiUrl | HttpClient.HttpClient | BotApi.BotApi>;
6
+ export declare const download: (fileId: FileId) => Effect.Effect<import("@effect/platform/HttpClientResponse").HttpClientResponse, import("../BotApiError.ts").BotApiError | import("@effect/platform/HttpClientError").HttpClientError, BotApiUrl.BotApiUrl | HttpClient.HttpClient | BotApi.BotApi>;
7
7
  //# sourceMappingURL=file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/internal/file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAA;AACzD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAE5C,eAAO,MAAM,GAAG,+TASf,CAAA"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/internal/file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAA;AACzD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAE5C,eAAO,MAAM,QAAQ,wQASpB,CAAA"}
@@ -2,7 +2,7 @@ import * as HttpClient from '@effect/platform/HttpClient';
2
2
  import * as Effect from 'effect/Effect';
3
3
  import * as BotApi from "../BotApi.js";
4
4
  import * as BotApiUrl from "../BotApiUrl.js";
5
- export const get = Effect.fnUntraced(function* (fileId) {
5
+ export const download = Effect.fnUntraced(function* (fileId) {
6
6
  const file = yield* BotApi.callMethod('getFile', { file_id: fileId });
7
7
  if (file.file_path == null) {
8
8
  return yield* Effect.die(new Error(`Bot API returned no file path for file "${fileId}".`));
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/internal/file.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAA;AACzD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAE5C,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAClC,QAAQ,CAAC,EAAE,MAAc;IACvB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;IACrE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,2CAA2C,MAAM,IAAI,CAAC,CAAC,CAAA;IAC5F,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAA;IACtC,OAAO,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;AAC1D,CAAC,CACF,CAAA"}
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/internal/file.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAA;AACzD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAE5C,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CACvC,QAAQ,CAAC,EAAE,MAAc;IACvB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;IACrE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,2CAA2C,MAAM,IAAI,CAAC,CAAC,CAAA;IAC5F,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAA;IACtC,OAAO,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;AAC1D,CAAC,CACF,CAAA"}
@@ -1,8 +1,7 @@
1
- import type { BotApiError } from '../BotApiError.ts';
2
- import type { BotApiTransportError } from '../BotApiTransport.ts';
3
- import type { Runner } from '../Runner.ts';
4
- import { BotApi } from '../BotApi.ts';
1
+ import type * as BotApiError from '../BotApiError.ts';
2
+ import type * as Runner from '../Runner.ts';
3
+ import * as BotApi from '../BotApi.ts';
5
4
  export declare const makeSimple: (options?: {
6
5
  allowedUpdates?: string[];
7
- }) => Runner<BotApiError | BotApiTransportError, BotApi>;
6
+ }) => Runner.Runner<BotApiError.BotApiError, BotApi.BotApi>;
8
7
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/internal/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAM1C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,eAAO,MAAM,UAAU,GAAI,UAAU;IACnC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAC1B,KAAG,MAAM,CAAC,WAAW,GAAG,oBAAoB,EAAE,MAAM,CA4CnD,CAAA"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/internal/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,WAAW,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAA;AAM3C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,eAAO,MAAM,UAAU,GAAI,UAAU;IACnC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAC1B,KAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAyCtD,CAAA"}
@@ -2,34 +2,29 @@ import * as Duration from 'effect/Duration';
2
2
  import * as Effect from 'effect/Effect';
3
3
  import * as Match from 'effect/Match';
4
4
  import * as Schedule from 'effect/Schedule';
5
- import { Update } from "../Bot.js";
6
- import { BotApi } from "../BotApi.js";
5
+ import * as Bot from "../Bot.js";
6
+ import * as BotApi from "../BotApi.js";
7
7
  export const makeSimple = (options) => ({
8
8
  run: Effect.fnUntraced(function* (bot) {
9
9
  const { allowedUpdates } = options ?? {};
10
- const api = yield* BotApi;
10
+ const api = yield* BotApi.BotApi;
11
11
  let lastUpdateId;
12
12
  while (true) {
13
- const [update] = yield* api
14
- .getUpdates({
13
+ const updates = yield* api.getUpdates({
15
14
  offset: lastUpdateId == null ? undefined : lastUpdateId + 1,
16
15
  allowed_updates: allowedUpdates,
17
16
  timeout: 30,
18
17
  limit: 1,
19
- })
20
- .pipe(Effect.retry({
21
- schedule: Schedule.spaced(Duration.seconds(3)),
22
- while: error => Match.value(error).pipe(Match.tagsExhaustive({
23
- '@grom.js/effect-tg/BotApiError': error => Effect.succeed(error.code >= 500 || (error.code !== 401
24
- && error.code !== 403
25
- && error.code !== 404)),
26
- '@grom.js/effect-tg/BotApiTransport/BotApiTransportError': () => Effect.succeed(true),
27
- })),
28
- }));
29
- if (update) {
30
- yield* Effect
31
- .provideService(bot, Update, update)
32
- .pipe(Effect.catchAll(error => (Effect.logError('Error in bot:', error))));
18
+ }).pipe(Effect.retry({
19
+ schedule: Schedule.exponential(Duration.millis(100)),
20
+ while: e => Match.value(e).pipe(Match.tag('InternalServerError', () => true), Match.tag('TransportError', e => Match.value(e.cause).pipe(Match.tag('RequestError', e => e.reason === 'Transport'), Match.orElse(() => false))), Match.orElse(() => false)),
21
+ }), Effect.catchTag('RateLimited', e => Effect.gen(function* () {
22
+ yield* Effect.sleep(e.retryAfter);
23
+ return [];
24
+ })));
25
+ if (updates.length > 0) {
26
+ const update = updates[0];
27
+ yield* Effect.provideService(bot, Bot.Update, update).pipe(Effect.catchAll(error => (Effect.logError('Error in bot:', error))));
33
28
  lastUpdateId = update.update_id;
34
29
  }
35
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/internal/runner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAE1B,EAAsD,EAAE,CAAC,CAAC;IACzD,GAAG,EAAE,MAAM,CAAC,UAAU,CACpB,QAAQ,CAAC,EAAE,GAAG;QACZ,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;QACxC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,CAAA;QACzB,IAAI,YAAgC,CAAA;QACpC,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG;iBACxB,UAAU,CAAC;gBACV,MAAM,EAAE,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC;gBAC3D,eAAe,EAAE,cAAc;gBAC/B,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,CAAC;aACT,CAAC;iBACD,IAAI,CACH,MAAM,CAAC,KAAK,CAAC;gBACX,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC9C,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CACrC,KAAK,CAAC,cAAc,CAAC;oBACnB,gCAAgC,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CACvD,KAAK,CAAC,IAAI,IAAI,GAAG,IAAI,CACnB,KAAK,CAAC,IAAI,KAAK,GAAG;2BACf,KAAK,CAAC,IAAI,KAAK,GAAG;2BAClB,KAAK,CAAC,IAAI,KAAK,GAAG,CACtB,CACF;oBACD,yDAAyD,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;iBACtF,CAAC,CACH;aACF,CAAC,CACH,CAAA;YACH,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,CAAC,CAAC,MAAM;qBACV,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;qBACnC,IAAI,CACH,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CACvB,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,CACxC,CAAC,CACH,CAAA;gBACH,YAAY,GAAG,MAAM,CAAC,SAAS,CAAA;YACjC,CAAC;QACH,CAAC;IACH,CAAC,CACF;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/internal/runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,GAAG,MAAM,WAAW,CAAA;AAChC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAE1B,EAAyD,EAAE,CAAC,CAAC;IAC5D,GAAG,EAAE,MAAM,CAAC,UAAU,CACpB,QAAQ,CAAC,EAAE,GAAG;QACZ,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;QACxC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;QAChC,IAAI,YAAgC,CAAA;QACpC,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;gBACpC,MAAM,EAAE,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC;gBAC3D,eAAe,EAAE,cAAc;gBAC/B,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,CAAC;aACT,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,KAAK,CAAC;gBACX,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpD,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAC7B,KAAK,CAAC,GAAG,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAC5C,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CACxD,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,EACxD,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAC1B,CAAC,EACF,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAC1B;aACF,CAAC,EACF,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACtD,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;gBACjC,OAAO,EAAE,CAAA;YACX,CAAC,CAAC,CAAC,CACJ,CAAA;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;gBAC1B,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CACxD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CACvB,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,CACxC,CAAC,CACH,CAAA;gBACD,YAAY,GAAG,MAAM,CAAC,SAAS,CAAA;YACjC,CAAC;QACH,CAAC;IACH,CAAC,CACF;CACF,CAAC,CAAA"}
@@ -1,13 +1,13 @@
1
1
  import type * as Content from '../Content.ts';
2
- import type * as Dialog_ from '../Dialog.ts';
2
+ import type * as Dialog from '../Dialog.ts';
3
3
  import type * as Markup from '../Markup.ts';
4
4
  import type * as Send from '../Send.ts';
5
5
  import * as Effect from 'effect/Effect';
6
6
  import * as BotApi from '../BotApi.ts';
7
7
  export declare const sendMessage: (params: {
8
8
  content: Content.Content;
9
- dialog: Dialog_.Dialog;
10
- options?: Send.Options;
9
+ dialog: Dialog.Dialog | Dialog.DialogId;
11
10
  markup?: Markup.Markup;
12
- }) => Effect.Effect<BotApi.Types.Message, import("../BotApiError.ts").BotApiError | import("../BotApiTransport.ts").BotApiTransportError, BotApi.BotApi>;
11
+ options?: Send.Options;
12
+ }) => Effect.Effect<BotApi.Types.Message, import("../BotApiError.ts").BotApiError, BotApi.BotApi>;
13
13
  //# sourceMappingURL=send.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/internal/send.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAA;AAE7C,OAAO,KAAK,KAAK,OAAO,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,KAAK,IAAI,MAAM,YAAY,CAAA;AAIvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAoRtC,eAAO,MAAM,WAAW;aACb,OAAO,CAAC,OAAO;YAChB,OAAO,CAAC,MAAM;cACZ,IAAI,CAAC,OAAO;aACb,MAAM,CAAC,MAAM;wJAyBtB,CAAA"}
1
+ {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/internal/send.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,KAAK,IAAI,MAAM,YAAY,CAAA;AAIvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAiUtC,eAAO,MAAM,WAAW;aACb,OAAO,CAAC,OAAO;YAChB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ;aAC9B,MAAM,CAAC,MAAM;cACZ,IAAI,CAAC,OAAO;iGAWtB,CAAA"}
@@ -1,17 +1,34 @@
1
1
  import * as Tgx from '@grom.js/tgx';
2
2
  import * as Duration from 'effect/Duration';
3
3
  import * as Effect from 'effect/Effect';
4
- import * as Function from 'effect/Function';
5
4
  import * as Match from 'effect/Match';
6
5
  import * as Option from 'effect/Option';
7
6
  import * as BotApi from "../BotApi.js";
8
7
  import * as LinkPreview from "../LinkPreview.js";
9
- const paramsText = Function.pipe(Match.type(), Match.withReturnType(), Match.tags({
8
+ // =============================================================================
9
+ // Helpers
10
+ // =============================================================================
11
+ const methodByContent = {
12
+ Text: 'sendMessage',
13
+ Photo: 'sendPhoto',
14
+ Audio: 'sendAudio',
15
+ Document: 'sendDocument',
16
+ Video: 'sendVideo',
17
+ Animation: 'sendAnimation',
18
+ Voice: 'sendVoice',
19
+ VideoNote: 'sendVideoNote',
20
+ Location: 'sendLocation',
21
+ Venue: 'sendVenue',
22
+ Contact: 'sendContact',
23
+ Dice: 'sendDice',
24
+ Sticker: 'sendSticker',
25
+ };
26
+ const paramsText = Match.type().pipe(Match.withReturnType(), Match.tagsExhaustive({
10
27
  Plain: ({ text, entities }) => ({ text, entities }),
11
28
  Html: ({ html }) => ({ text: html, parse_mode: 'HTML' }),
12
29
  Markdown: ({ markdown }) => ({ text: markdown, parse_mode: 'MarkdownV2' }),
13
30
  Tgx: ({ tgx }) => ({ text: Tgx.html(tgx), parse_mode: 'HTML' }),
14
- }), Match.exhaustive);
31
+ }));
15
32
  const paramsCaption = (caption) => (Option.match(caption, {
16
33
  onNone: () => ({}),
17
34
  onSome: (caption) => {
@@ -19,7 +36,7 @@ const paramsCaption = (caption) => (Option.match(caption, {
19
36
  return { caption: text, caption_entities: entities, parse_mode };
20
37
  },
21
38
  }));
22
- const paramsContent = Function.pipe(Match.type(), Match.tags({
39
+ const paramsContent = Match.type().pipe(Match.withReturnType(), Match.tagsExhaustive({
23
40
  Text: ({ text, linkPreview }) => ({
24
41
  ...paramsText(text),
25
42
  link_preview_options: Option.match(linkPreview, {
@@ -134,37 +151,36 @@ const paramsContent = Function.pipe(Match.type(), Match.tags({
134
151
  sticker: file instanceof URL ? file.toString() : file,
135
152
  emoji: Option.getOrUndefined(emoji),
136
153
  }),
137
- }), Match.exhaustive);
138
- const paramsDialog = Function.pipe(Match.type(), Match.withReturnType(), Match.tagsExhaustive({
139
- UserId: ({ dialogId }) => ({ chat_id: dialogId }),
140
- GroupId: ({ dialogId }) => ({ chat_id: dialogId }),
141
- ChannelId: ({ dialogId }) => ({ chat_id: dialogId }),
142
- SupergroupId: ({ dialogId }) => ({ chat_id: dialogId }),
143
- PublicChannel: ({ username }) => ({ chat_id: username }),
144
- PublicSupergroup: ({ username }) => ({ chat_id: username }),
145
- ForumTopic: ({ forum, topicId }) => ({
146
- chat_id: Match.value(forum).pipe(Match.tagsExhaustive({
147
- SupergroupId: ({ dialogId }) => dialogId,
148
- PublicSupergroup: ({ username }) => username,
149
- })),
150
- message_thread_id: topicId,
151
- }),
152
- ChannelDm: ({ channel, userId }) => ({
153
- chat_id: Match.value(channel).pipe(Match.tagsExhaustive({
154
- ChannelId: ({ dialogId }) => dialogId,
155
- PublicChannel: ({ username }) => username,
156
- })),
157
- direct_messages_topic_id: userId,
154
+ }));
155
+ const paramsDialog = Match.type().pipe(Match.withReturnType(), Match.when(Match.number, dialogId => ({
156
+ chat_id: dialogId,
157
+ })), Match.tagsExhaustive({
158
+ User: user => ({
159
+ chat_id: user.dialogId(),
160
+ }),
161
+ Group: group => ({
162
+ chat_id: group.dialogId(),
163
+ }),
164
+ Supergroup: supergroup => ({
165
+ chat_id: supergroup.dialogId(),
166
+ }),
167
+ Channel: channel => ({
168
+ chat_id: channel.dialogId(),
169
+ }),
170
+ PrivateTopic: topic => ({
171
+ chat_id: topic.user.dialogId(),
172
+ message_thread_id: topic.topicId,
173
+ }),
174
+ ForumTopic: topic => ({
175
+ chat_id: topic.supergroup.dialogId(),
176
+ message_thread_id: topic.topicId,
177
+ }),
178
+ ChannelDm: dm => ({
179
+ chat_id: dm.channel.dialogId(),
180
+ direct_messages_topic_id: dm.topicId,
158
181
  }),
159
182
  }));
160
- const paramsOptions = (options) => {
161
- return {
162
- disable_notification: options.disableNotification || undefined,
163
- protect_content: options.protectContent || undefined,
164
- allow_paid_broadcast: options.allowPaidBroadcast || undefined,
165
- };
166
- };
167
- const paramsMarkup = Function.pipe(Match.type(), Match.withReturnType(), Match.tagsExhaustive({
183
+ const paramsMarkup = Match.type().pipe(Match.withReturnType(), Match.tagsExhaustive({
168
184
  InlineKeyboard: markup => ({
169
185
  reply_markup: {
170
186
  inline_keyboard: markup.rows, // TODO
@@ -194,27 +210,22 @@ const paramsMarkup = Function.pipe(Match.type(), Match.withReturnType(), Match.t
194
210
  },
195
211
  }),
196
212
  }));
213
+ const paramsOptions = (options) => {
214
+ return {
215
+ disable_notification: options.disableNotification || undefined,
216
+ protect_content: options.protectContent || undefined,
217
+ allow_paid_broadcast: options.allowPaidBroadcast || undefined,
218
+ };
219
+ };
220
+ // =============================================================================
221
+ // Send Methods
222
+ // =============================================================================
197
223
  export const sendMessage = Effect.fnUntraced(function* (params) {
198
- const api = yield* BotApi.BotApi;
199
- const common = {
224
+ return yield* BotApi.callMethod(methodByContent[params.content._tag], {
225
+ ...paramsContent(params.content),
200
226
  ...paramsDialog(params.dialog),
201
227
  ...(params.options ? paramsOptions(params.options) : {}),
202
228
  ...(params.markup ? paramsMarkup(params.markup) : {}),
203
- };
204
- return yield* Match.value(params.content).pipe(Match.tagsExhaustive({
205
- Text: content => api.sendMessage({ ...common, ...paramsContent(content) }),
206
- Photo: content => api.sendPhoto({ ...common, ...paramsContent(content) }),
207
- Audio: content => api.sendAudio({ ...common, ...paramsContent(content) }),
208
- Document: content => api.sendDocument({ ...common, ...paramsContent(content) }),
209
- Video: content => api.sendVideo({ ...common, ...paramsContent(content) }),
210
- Animation: content => api.sendAnimation({ ...common, ...paramsContent(content) }),
211
- Voice: content => api.sendVoice({ ...common, ...paramsContent(content) }),
212
- VideoNote: content => api.sendVideoNote({ ...common, ...paramsContent(content) }),
213
- Location: content => api.sendLocation({ ...common, ...paramsContent(content) }),
214
- Venue: content => api.sendVenue({ ...common, ...paramsContent(content) }),
215
- Contact: content => api.sendContact({ ...common, ...paramsContent(content) }),
216
- Dice: content => api.sendDice({ ...common, ...paramsContent(content) }),
217
- Sticker: content => api.sendSticker({ ...common, ...paramsContent(content) }),
218
- }));
229
+ });
219
230
  });
220
231
  //# sourceMappingURL=send.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/internal/send.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/internal/send.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@grom.js/effect-tg",
3
3
  "type": "module",
4
- "version": "0.7.0",
4
+ "version": "0.9.0",
5
5
  "description": "Effectful library for crafting Telegram bots.",
6
6
  "author": {
7
7
  "name": "Vladislav Deryabkin",
@@ -36,20 +36,21 @@
36
36
  "effect": "^3.19.0"
37
37
  },
38
38
  "devDependencies": {
39
- "@antfu/eslint-config": "7.0.1",
40
- "@effect/language-service": "0.65.0",
41
- "@effect/platform": "0.94.1",
42
- "@grom.js/bot-api-spec": "0.4.1",
43
- "@grom.js/tgx": "0.5.2",
44
- "@types/node": "22.19.6",
39
+ "@antfu/eslint-config": "7.2.0",
40
+ "@effect/language-service": "0.72.1",
41
+ "@effect/platform": "0.94.2",
42
+ "@grom.js/bot-api-spec": "0.6.2",
43
+ "@grom.js/tgx": "0.5.3",
44
+ "@types/node": "22.19.8",
45
45
  "bumpp": "10.4.0",
46
- "effect": "3.19.14",
46
+ "effect": "3.19.15",
47
47
  "eslint": "9.39.2",
48
48
  "eslint-plugin-format": "1.3.1",
49
- "knip": "5.81.0",
49
+ "knip": "5.83.0",
50
50
  "taze": "19.9.2",
51
51
  "ts-morph": "27.0.2",
52
- "typescript": "5.9.3"
52
+ "typescript": "5.9.3",
53
+ "vitest": "4.0.18"
53
54
  },
54
55
  "scripts": {
55
56
  "gen:bot-api": "node ./scripts/gen-bot-api.ts",
@@ -58,6 +59,7 @@
58
59
  "deps": "taze --write --interactive --include-locked minor",
59
60
  "lint": "eslint",
60
61
  "lint:fix": "eslint --fix",
62
+ "test": "vitest run --typecheck",
61
63
  "knip": "knip --config ./knip.config.ts",
62
64
  "release": "bumpp"
63
65
  }
package/src/BotApi.ts CHANGED
@@ -1,35 +1,48 @@
1
1
  import type * as BotApiError from './BotApiError.ts'
2
- import type { MethodParams, MethodResults } from './internal/botApiMethods.gen.ts'
3
- import type { BotApiShape } from './internal/botApiShape.gen.ts'
4
- import type * as Types from './internal/botApiTypes.gen.ts'
2
+ import type {
3
+ MethodParams,
4
+ MethodResults,
5
+ BotApi as Service,
6
+ Types,
7
+ } from './internal/botApi.gen.ts'
5
8
  import * as Context from 'effect/Context'
6
9
  import * as Effect from 'effect/Effect'
7
10
  import * as Layer from 'effect/Layer'
8
11
  import * as BotApiTransport from './BotApiTransport.ts'
9
12
  import * as internal from './internal/botApi.ts'
10
13
 
11
- export type { MethodParams, MethodResults, Types }
14
+ export type { MethodParams, MethodResults, Service, Types }
12
15
 
13
16
  export class BotApi extends Context.Tag('@grom.js/effect-tg/BotApi')<
14
17
  BotApi,
15
- BotApi.Service
18
+ Service
16
19
  >() {}
17
20
 
18
- export declare namespace BotApi {
19
- export type Service = BotApiShape
21
+ export interface BotApiMethod<TMethod extends keyof MethodParams> {
22
+ (...args: MethodArgs<TMethod>): Effect.Effect<
23
+ MethodResults[TMethod],
24
+ BotApiError.BotApiError,
25
+ never
26
+ >
20
27
  }
21
28
 
22
- export interface Method<
23
- M extends keyof MethodParams,
24
- E = BotApiError.BotApiError | BotApiTransport.BotApiTransportError,
25
- R = never,
26
- > {
27
- (params: MethodParams[M]): Effect.Effect<MethodResults[M], E, R>
28
- }
29
+ export const callMethod: <TMethod extends keyof MethodParams>(
30
+ method: TMethod,
31
+ ...args: MethodArgs<TMethod>
32
+ ) => Effect.Effect<
33
+ MethodResults[TMethod],
34
+ BotApiError.BotApiError,
35
+ BotApi
36
+ > = (
37
+ method: string,
38
+ params: unknown = undefined,
39
+ ) => BotApi.pipe(
40
+ Effect.flatMap(api => (api as any)[method](params)),
41
+ ) as any
29
42
 
30
- export const make: (
31
- transport: BotApiTransport.BotApiTransport.Service,
32
- ) => BotApiShape = internal.make
43
+ export const make: (args: {
44
+ transport: BotApiTransport.Service
45
+ }) => Service = internal.make
33
46
 
34
47
  export const layer: Layer.Layer<
35
48
  BotApi,
@@ -37,19 +50,13 @@ export const layer: Layer.Layer<
37
50
  BotApiTransport.BotApiTransport
38
51
  > = Layer.effect(
39
52
  BotApi,
40
- Effect.andThen(BotApiTransport.BotApiTransport, internal.make),
53
+ Effect.andThen(
54
+ BotApiTransport.BotApiTransport,
55
+ transport => internal.make({ transport }),
56
+ ),
41
57
  )
42
58
 
43
- export const callMethod: <M extends keyof MethodParams>(
44
- method: M,
45
- params: MethodParams[M],
46
- ) => Effect.Effect<
47
- MethodResults[M],
48
- BotApiError.BotApiError | BotApiTransport.BotApiTransportError,
49
- BotApi
50
- > = (
51
- method: string,
52
- params: unknown = undefined,
53
- ) => BotApi.pipe(
54
- Effect.flatMap((api: any) => api[method](params)),
55
- ) as any
59
+ type MethodArgs<TMethod extends keyof MethodParams> =
60
+ void extends MethodParams[TMethod]
61
+ ? [params?: MethodParams[TMethod]]
62
+ : [params: MethodParams[TMethod]]