@effect-ak/tg-bot-client 0.2.0 → 0.2.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.
Files changed (80) hide show
  1. package/dist/index.d.ts +2821 -0
  2. package/dist/index.js +462 -0
  3. package/dist/index.mjs +418 -0
  4. package/package.json +15 -16
  5. package/readme.md +1 -1
  6. package/dist/cjs/bot/factory/_service.js +0 -20
  7. package/dist/cjs/bot/factory/client-config.js +0 -29
  8. package/dist/cjs/bot/factory/make-bot.js +0 -20
  9. package/dist/cjs/bot/message-handler/_service.js +0 -12
  10. package/dist/cjs/bot/message-handler/types.js +0 -5
  11. package/dist/cjs/bot/message-handler/utils.js +0 -19
  12. package/dist/cjs/bot/run.js +0 -10
  13. package/dist/cjs/bot/update-poller/_service.js +0 -39
  14. package/dist/cjs/bot/update-poller/errors.js +0 -5
  15. package/dist/cjs/bot/update-poller/fetch-updates.js +0 -70
  16. package/dist/cjs/bot/update-poller/poll-and-handle.js +0 -50
  17. package/dist/cjs/bot/update-poller/settings.js +0 -23
  18. package/dist/cjs/client/_client.js +0 -25
  19. package/dist/cjs/client/config.js +0 -17
  20. package/dist/cjs/client/errors.js +0 -18
  21. package/dist/cjs/client/execute-request/_service.js +0 -20
  22. package/dist/cjs/client/execute-request/execute.js +0 -59
  23. package/dist/cjs/client/execute-request/payload.js +0 -24
  24. package/dist/cjs/client/file/_service.js +0 -22
  25. package/dist/cjs/client/file/get-file.js +0 -38
  26. package/dist/cjs/client/guards.js +0 -12
  27. package/dist/cjs/const.js +0 -20
  28. package/dist/cjs/index.js +0 -60
  29. package/dist/cjs/specification/api.js +0 -5
  30. package/dist/cjs/specification/types.js +0 -5
  31. package/dist/dts/bot/factory/_service.d.ts +0 -37
  32. package/dist/dts/bot/factory/client-config.d.ts +0 -3
  33. package/dist/dts/bot/factory/make-bot.d.ts +0 -7
  34. package/dist/dts/bot/message-handler/_service.d.ts +0 -6
  35. package/dist/dts/bot/message-handler/types.d.ts +0 -16
  36. package/dist/dts/bot/message-handler/utils.d.ts +0 -6
  37. package/dist/dts/bot/run.d.ts +0 -7
  38. package/dist/dts/bot/update-poller/_service.d.ts +0 -21
  39. package/dist/dts/bot/update-poller/errors.d.ts +0 -1
  40. package/dist/dts/bot/update-poller/fetch-updates.d.ts +0 -17
  41. package/dist/dts/bot/update-poller/poll-and-handle.d.ts +0 -16
  42. package/dist/dts/bot/update-poller/settings.d.ts +0 -6
  43. package/dist/dts/client/_client.d.ts +0 -8
  44. package/dist/dts/client/config.d.ts +0 -8
  45. package/dist/dts/client/errors.d.ts +0 -23
  46. package/dist/dts/client/execute-request/_service.d.ts +0 -15
  47. package/dist/dts/client/execute-request/execute.d.ts +0 -5
  48. package/dist/dts/client/execute-request/payload.d.ts +0 -1
  49. package/dist/dts/client/file/_service.d.ts +0 -16
  50. package/dist/dts/client/file/get-file.d.ts +0 -5
  51. package/dist/dts/client/guards.d.ts +0 -17
  52. package/dist/dts/const.d.ts +0 -12
  53. package/dist/dts/index.d.ts +0 -5
  54. package/dist/dts/specification/api.d.ts +0 -1030
  55. package/dist/dts/specification/types.d.ts +0 -1663
  56. package/dist/esm/bot/factory/_service.js +0 -12
  57. package/dist/esm/bot/factory/client-config.js +0 -20
  58. package/dist/esm/bot/factory/make-bot.js +0 -9
  59. package/dist/esm/bot/message-handler/_service.js +0 -4
  60. package/dist/esm/bot/message-handler/types.js +0 -1
  61. package/dist/esm/bot/message-handler/utils.js +0 -12
  62. package/dist/esm/bot/run.js +0 -6
  63. package/dist/esm/bot/update-poller/_service.js +0 -31
  64. package/dist/esm/bot/update-poller/errors.js +0 -1
  65. package/dist/esm/bot/update-poller/fetch-updates.js +0 -49
  66. package/dist/esm/bot/update-poller/poll-and-handle.js +0 -37
  67. package/dist/esm/bot/update-poller/settings.js +0 -15
  68. package/dist/esm/client/_client.js +0 -16
  69. package/dist/esm/client/config.js +0 -8
  70. package/dist/esm/client/errors.js +0 -9
  71. package/dist/esm/client/execute-request/_service.js +0 -12
  72. package/dist/esm/client/execute-request/execute.js +0 -37
  73. package/dist/esm/client/execute-request/payload.js +0 -21
  74. package/dist/esm/client/file/_service.js +0 -14
  75. package/dist/esm/client/file/get-file.js +0 -24
  76. package/dist/esm/client/guards.js +0 -7
  77. package/dist/esm/const.js +0 -13
  78. package/dist/esm/index.js +0 -5
  79. package/dist/esm/specification/api.js +0 -1
  80. package/dist/esm/specification/types.js +0 -1
@@ -1,70 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.fetchUpdates = void 0;
7
- var Micro = _interopRequireWildcard(require("effect/Micro"));
8
- var _utils = require("../../bot/message-handler/utils.js");
9
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
10
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
- const fetchUpdates = ({
12
- state,
13
- settings,
14
- execute,
15
- handlers
16
- }) => Micro.gen(function* () {
17
- const updateId = state.lastUpdateId;
18
- console.info("getting updates", state);
19
- const updates = yield* execute("get_updates", {
20
- ...settings,
21
- ...(updateId ? {
22
- offset: updateId
23
- } : undefined)
24
- }).pipe(Micro.andThen(_ => _.sort(_ => _.update_id)));
25
- let lastSuccessId = undefined;
26
- let hasError = false;
27
- for (const updateObject of updates) {
28
- const update = (0, _utils.extractUpdate)(updateObject);
29
- if (!update) {
30
- console.warn("Unknown update", update);
31
- hasError = true;
32
- break;
33
- }
34
- const handler = handlers[`on_${update.type}`];
35
- if (!handler) {
36
- console.warn("Handler for update not defined", update);
37
- hasError = true;
38
- break;
39
- }
40
- const handleResult = handler(update);
41
- if ("chat" in update) {
42
- const response = yield* execute(`send_${handleResult.type}`, {
43
- ...handleResult,
44
- chat_id: update.chat.id
45
- });
46
- console.log("bot response", response);
47
- }
48
- if (!handleResult) {
49
- hasError = true;
50
- console.log(handleResult);
51
- break;
52
- }
53
- ;
54
- lastSuccessId = updateObject.update_id;
55
- }
56
- if (hasError && lastSuccessId) {
57
- const resp =
58
- //commit successfully handled messages
59
- yield* execute("get_updates", {
60
- offset: lastSuccessId,
61
- limit: 0
62
- });
63
- }
64
- return {
65
- updates,
66
- lastSuccessId,
67
- hasError
68
- };
69
- });
70
- exports.fetchUpdates = fetchUpdates;
@@ -1,50 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.pollAndHandle = void 0;
7
- var Micro = _interopRequireWildcard(require("effect/Micro"));
8
- var _settings = require("./settings.js");
9
- var _fetchUpdates = require("./fetch-updates.js");
10
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
- const pollAndHandle = input => {
13
- const state = {
14
- lastUpdateId: undefined,
15
- emptyResponses: 0
16
- };
17
- const settings = (0, _settings.makeSettingsFrom)(input.settings);
18
- return Micro.delay(1000)((0, _fetchUpdates.fetchUpdates)({
19
- state,
20
- settings,
21
- execute: input.execute,
22
- handlers: input.settings
23
- })).pipe(Micro.repeat({
24
- while: ({
25
- updates,
26
- lastSuccessId,
27
- hasError
28
- }) => {
29
- if (hasError) {
30
- console.warn("error in handler, quitting");
31
- return false;
32
- }
33
- if (updates.length == 0) {
34
- state.emptyResponses += 1;
35
- if (state.emptyResponses > 200) {
36
- console.info("too many empty responses, quitting");
37
- return false;
38
- }
39
- } else {
40
- state.emptyResponses = 0;
41
- }
42
- ;
43
- if (lastSuccessId) {
44
- state.lastUpdateId = lastSuccessId + 1;
45
- }
46
- return true;
47
- }
48
- }));
49
- };
50
- exports.pollAndHandle = pollAndHandle;
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.makeSettingsFrom = void 0;
7
- const makeSettingsFrom = input => {
8
- let limit = input.batch_size ?? 10;
9
- let timeout = input.timeout ?? 10;
10
- if (limit < 10 || limit > 100) {
11
- console.warn("Wrong limit, must be in [10..100], using 10 instead");
12
- limit = 10;
13
- }
14
- if (timeout < 2 || timeout > 10) {
15
- console.warn("Wrong timeout, must be in [2..10], using 2 instead");
16
- limit = 10;
17
- }
18
- return {
19
- limit,
20
- timeout
21
- };
22
- };
23
- exports.makeSettingsFrom = makeSettingsFrom;
@@ -1,25 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.makeTgBotClient = void 0;
7
- var Micro = _interopRequireWildcard(require("effect/Micro"));
8
- var _config = require("./config.js");
9
- var _service = require("./execute-request/_service.js");
10
- var _service2 = require("./file/_service.js");
11
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
- const makeTgBotClient = input => {
14
- const config = (0, _config.makeTgBotClientConfig)(input);
15
- const client = Micro.gen(function* () {
16
- const execute = yield* Micro.service(_service.ClientExecuteRequestService);
17
- const file = yield* Micro.service(_service2.ClientFileService);
18
- return {
19
- execute: (method, input) => execute.execute(method, input).pipe(Micro.runPromise),
20
- getFile: input => file.getFile(input).pipe(Micro.runPromise)
21
- };
22
- }).pipe(Micro.provideServiceEffect(_service.ClientExecuteRequestService, _service.ClientExecuteRequestServiceDefault), Micro.provideServiceEffect(_service2.ClientFileService, _service2.ClientFileServiceDefault), Micro.provideService(_config.TgBotClientConfig, config), Micro.runSync);
23
- return client;
24
- };
25
- exports.makeTgBotClient = makeTgBotClient;
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.makeTgBotClientConfig = exports.TgBotClientConfig = void 0;
7
- var Context = _interopRequireWildcard(require("effect/Context"));
8
- var _const = require("../const.js");
9
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
10
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
- const makeTgBotClientConfig = input => TgBotClientConfig.of({
12
- ...input,
13
- ["base-url"]: input["base-url"] ?? _const.defaultBaseUrl
14
- });
15
- exports.makeTgBotClientConfig = makeTgBotClientConfig;
16
- class TgBotClientConfig extends Context.Tag("TgBotClientConfig")() {}
17
- exports.TgBotClientConfig = TgBotClientConfig;
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.TgBotClientError = void 0;
7
- var Data = _interopRequireWildcard(require("effect/Data"));
8
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
9
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
- class TgBotClientError extends Data.TaggedError("TgBotClientError") {
11
- static missingSuccess = new TgBotClientError({
12
- reason: {
13
- type: "ClientInternalError",
14
- cause: "Expected 'success' to be defined"
15
- }
16
- });
17
- }
18
- exports.TgBotClientError = TgBotClientError;
@@ -1,20 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ClientExecuteRequestServiceDefault = exports.ClientExecuteRequestService = void 0;
7
- var Micro = _interopRequireWildcard(require("effect/Micro"));
8
- var Context = _interopRequireWildcard(require("effect/Context"));
9
- var _config = require("../config.js");
10
- var _execute = require("./execute.js");
11
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
- class ClientExecuteRequestService extends Context.Tag("ClientExecuteRequestService")() {}
14
- exports.ClientExecuteRequestService = ClientExecuteRequestService;
15
- const ClientExecuteRequestServiceDefault = exports.ClientExecuteRequestServiceDefault = Micro.gen(function* () {
16
- const config = yield* Micro.service(_config.TgBotClientConfig);
17
- return {
18
- execute: (method, input) => (0, _execute.execute)(config, method, input)
19
- };
20
- });
@@ -1,59 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.execute = void 0;
7
- var Micro = _interopRequireWildcard(require("effect/Micro"));
8
- var String = _interopRequireWildcard(require("effect/String"));
9
- var _errors = require("../errors.js");
10
- var _payload = require("./payload.js");
11
- var _guards = require("../guards.js");
12
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
- const execute = (config, method, input) => Micro.gen(function* () {
15
- const httpResponse = yield* Micro.tryPromise({
16
- try: () => fetch(`${config["base-url"]}/bot${config["bot-token"]}/${String.snakeToCamel(method)}`, {
17
- body: (0, _payload.makePayload)(input) ?? null,
18
- method: "POST"
19
- }),
20
- catch: cause => new _errors.TgBotClientError({
21
- reason: {
22
- type: "ClientInternalError",
23
- cause
24
- }
25
- })
26
- });
27
- const response = yield* Micro.tryPromise({
28
- try: () => httpResponse.json(),
29
- catch: () => new _errors.TgBotClientError({
30
- reason: {
31
- type: "UnexpectedResponse",
32
- response: httpResponse
33
- }
34
- })
35
- });
36
- if (!(0, _guards.isTgBotApiResponse)(response)) {
37
- return yield* Micro.fail(new _errors.TgBotClientError({
38
- reason: {
39
- type: "UnexpectedResponse",
40
- response
41
- }
42
- }));
43
- }
44
- if (!httpResponse.ok) {
45
- return yield* Micro.fail(new _errors.TgBotClientError({
46
- reason: {
47
- type: "NotOkResponse",
48
- ...(response.error_code ? {
49
- errorCode: response.error_code
50
- } : undefined),
51
- ...(response.description ? {
52
- details: response.description
53
- } : undefined)
54
- }
55
- }));
56
- }
57
- return response.result;
58
- });
59
- exports.execute = execute;
@@ -1,24 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.makePayload = void 0;
7
- var _guards = require("../guards.js");
8
- const makePayload = body => {
9
- const entries = Object.entries(body);
10
- if (entries.length == 0) return undefined;
11
- const result = new FormData();
12
- for (const [key, value] of entries) {
13
- if (!value) continue;
14
- if (typeof value != "object") {
15
- result.append(key, `${value}`);
16
- } else if ((0, _guards.isFileContent)(value)) {
17
- result.append(key, new Blob([value.file_content]), value.file_name);
18
- } else {
19
- result.append(key, JSON.stringify(value));
20
- }
21
- }
22
- return result;
23
- };
24
- exports.makePayload = makePayload;
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ClientFileServiceDefault = exports.ClientFileService = void 0;
7
- var Micro = _interopRequireWildcard(require("effect/Micro"));
8
- var Context = _interopRequireWildcard(require("effect/Context"));
9
- var _config = require("../config.js");
10
- var _service = require("../execute-request/_service.js");
11
- var _getFile = require("./get-file.js");
12
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
- class ClientFileService extends Context.Tag("ClientFileService")() {}
15
- exports.ClientFileService = ClientFileService;
16
- const ClientFileServiceDefault = exports.ClientFileServiceDefault = Micro.gen(function* () {
17
- const config = yield* Micro.service(_config.TgBotClientConfig);
18
- const execute = yield* Micro.service(_service.ClientExecuteRequestService);
19
- return {
20
- getFile: input => (0, _getFile.getFile)(input.file_id, config, execute)
21
- };
22
- }).pipe(Micro.provideServiceEffect(_service.ClientExecuteRequestService, _service.ClientExecuteRequestServiceDefault));
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getFile = void 0;
7
- var Micro = _interopRequireWildcard(require("effect/Micro"));
8
- var _errors = require("../errors.js");
9
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
10
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
- const getFile = (fileId, config, execute) => Micro.gen(function* () {
12
- const response = yield* execute.execute("get_file", {
13
- file_id: fileId
14
- });
15
- const file_path = response.file_path;
16
- if (!file_path || file_path.length == 0) {
17
- return yield* Micro.fail(new _errors.TgBotClientError({
18
- reason: {
19
- type: "UnableToGetFile",
20
- cause: "File path not defined"
21
- }
22
- }));
23
- }
24
- const file_name = file_path.replaceAll("/", "-");
25
- const url = `${config["base-url"]}/file/bot${config["bot-token"]}/${file_path}`;
26
- const fileContent = yield* Micro.tryPromise({
27
- try: () => fetch(url).then(_ => _.arrayBuffer()),
28
- catch: cause => new _errors.TgBotClientError({
29
- reason: {
30
- type: "UnableToGetFile",
31
- cause
32
- }
33
- })
34
- });
35
- const file = new File([new Uint8Array(fileContent)], file_name);
36
- return file;
37
- });
38
- exports.getFile = getFile;
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.isTgBotClientSettingsInput = exports.isTgBotApiResponse = exports.isFileContent = void 0;
7
- const isFileContent = input => typeof input == "object" && input != null && "file_content" in input && input.file_content instanceof Uint8Array && "file_name" in input && typeof input.file_name == "string";
8
- exports.isFileContent = isFileContent;
9
- const isTgBotApiResponse = input => typeof input == "object" && input != null && "ok" in input && typeof input.ok == "boolean";
10
- exports.isTgBotApiResponse = isTgBotApiResponse;
11
- const isTgBotClientSettingsInput = input => typeof input == "object" && input != null && "bot-token" in input && typeof input["bot-token"] == "string";
12
- exports.isTgBotClientSettingsInput = isTgBotClientSettingsInput;
package/dist/cjs/const.js DELETED
@@ -1,20 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.messageEffectIdCodes = exports.isMessageEffect = exports.defaultBaseUrl = exports.MESSAGE_EFFECTS = void 0;
7
- const defaultBaseUrl = exports.defaultBaseUrl = "https://api.telegram.org";
8
- const MESSAGE_EFFECTS = exports.MESSAGE_EFFECTS = {
9
- "🔥": "5104841245755180586",
10
- "👍": "5107584321108051014",
11
- "👎": "5104858069142078462",
12
- "❤️": "5159385139981059251",
13
- "🎉": "5046509860389126442",
14
- "💩": "5046589136895476101"
15
- };
16
- const messageEffectIdCodes = exports.messageEffectIdCodes = Object.keys(MESSAGE_EFFECTS);
17
- const isMessageEffect = input => {
18
- return typeof input === "string" && input in MESSAGE_EFFECTS;
19
- };
20
- exports.isMessageEffect = isMessageEffect;
package/dist/cjs/index.js DELETED
@@ -1,60 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _client = require("./client/_client.js");
7
- Object.keys(_client).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _client[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _client[key];
14
- }
15
- });
16
- });
17
- var _run = require("./bot/run.js");
18
- Object.keys(_run).forEach(function (key) {
19
- if (key === "default" || key === "__esModule") return;
20
- if (key in exports && exports[key] === _run[key]) return;
21
- Object.defineProperty(exports, key, {
22
- enumerable: true,
23
- get: function () {
24
- return _run[key];
25
- }
26
- });
27
- });
28
- var _api = require("./specification/api.js");
29
- Object.keys(_api).forEach(function (key) {
30
- if (key === "default" || key === "__esModule") return;
31
- if (key in exports && exports[key] === _api[key]) return;
32
- Object.defineProperty(exports, key, {
33
- enumerable: true,
34
- get: function () {
35
- return _api[key];
36
- }
37
- });
38
- });
39
- var _types = require("./specification/types.js");
40
- Object.keys(_types).forEach(function (key) {
41
- if (key === "default" || key === "__esModule") return;
42
- if (key in exports && exports[key] === _types[key]) return;
43
- Object.defineProperty(exports, key, {
44
- enumerable: true,
45
- get: function () {
46
- return _types[key];
47
- }
48
- });
49
- });
50
- var _const = require("./const.js");
51
- Object.keys(_const).forEach(function (key) {
52
- if (key === "default" || key === "__esModule") return;
53
- if (key in exports && exports[key] === _const[key]) return;
54
- Object.defineProperty(exports, key, {
55
- enumerable: true,
56
- get: function () {
57
- return _const[key];
58
- }
59
- });
60
- });
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
@@ -1,37 +0,0 @@
1
- import * as Micro from "effect/Micro";
2
- import * as Context from "effect/Context";
3
- import type { TgBotClientSettingsInput } from "../../client/guards.js";
4
- import type { BotMessageHandlerSettings } from "../../bot/message-handler/types.js";
5
- import { TgBotClientConfig } from "../../client/config.js";
6
- declare const BotFactoryService_base: Context.TagClass<BotFactoryService, "BotFactoryService", {
7
- makeBot: (messageHandler: BotMessageHandlerSettings) => Micro.Micro<Micro.MicroFiber<{
8
- updates: import("../../index.js").Update[];
9
- lastSuccessId: number | undefined;
10
- hasError: boolean;
11
- }, import("../../client/errors.js").TgBotClientError>, string, TgBotClientConfig>;
12
- runBot: (input: RunBotInput) => Micro.Micro<Micro.MicroFiber<{
13
- updates: import("../../index.js").Update[];
14
- lastSuccessId: number | undefined;
15
- hasError: boolean;
16
- }, import("../../client/errors.js").TgBotClientError>, string, never>;
17
- }>;
18
- export declare class BotFactoryService extends BotFactoryService_base {
19
- }
20
- export type RunBotInput = ({
21
- type: "fromJsonFile";
22
- } | {
23
- type: "config";
24
- } & TgBotClientSettingsInput) & BotMessageHandlerSettings;
25
- export declare const BotFactoryServiceDefault: {
26
- makeBot: (messageHandler: BotMessageHandlerSettings) => Micro.Micro<Micro.MicroFiber<{
27
- updates: import("../../index.js").Update[];
28
- lastSuccessId: number | undefined;
29
- hasError: boolean;
30
- }, import("../../client/errors.js").TgBotClientError>, string, TgBotClientConfig>;
31
- runBot: (input: RunBotInput) => Micro.Micro<Micro.MicroFiber<{
32
- updates: import("../../index.js").Update[];
33
- lastSuccessId: number | undefined;
34
- hasError: boolean;
35
- }, import("../../client/errors.js").TgBotClientError>, string, never>;
36
- };
37
- export {};
@@ -1,3 +0,0 @@
1
- import * as Micro from "effect/Micro";
2
- import type { RunBotInput } from "./_service.js";
3
- export declare const makeClientConfigFrom: (input: RunBotInput) => Micro.Micro<Required<import("../../client/guards.js").TgBotClientSettingsInput>, string, never>;
@@ -1,7 +0,0 @@
1
- import * as Micro from "effect/Micro";
2
- import type { BotMessageHandlerSettings } from "../../bot/message-handler/types.js";
3
- export declare const makeBot: (messageHandler: BotMessageHandlerSettings) => Micro.Micro<Micro.MicroFiber<{
4
- updates: import("../../index.js").Update[];
5
- lastSuccessId: number | undefined;
6
- hasError: boolean;
7
- }, import("../../client/errors.js").TgBotClientError>, string, import("../../client/config.js").TgBotClientConfig>;
@@ -1,6 +0,0 @@
1
- import * as Context from "effect/Context";
2
- import { BotMessageHandlerSettings } from "./types.js";
3
- declare const BotMessageHandler_base: Context.TagClass<BotMessageHandler, "BotMessageHandler", BotMessageHandlerSettings>;
4
- export declare class BotMessageHandler extends BotMessageHandler_base {
5
- }
6
- export {};
@@ -1,16 +0,0 @@
1
- import type { Api } from "../../specification/api.js";
2
- import type { Update } from "../../specification/types.js";
3
- export type AvailableUpdateTypes = Exclude<keyof Update, 'update_id'>;
4
- export type BotResponse = {
5
- [K in keyof Api]: K extends `send_${infer R}` ? {
6
- type: Lowercase<R>;
7
- } & Omit<Parameters<Api[K]>[0], 'chat_id'> : never;
8
- }[keyof Api];
9
- export type BotMessageHandlers = {
10
- [K in AvailableUpdateTypes as `on_${K}`]?: (update: NonNullable<Update[K]>) => BotResponse;
11
- };
12
- export type BotMessageHandlerSettings = {
13
- readonly batch_size?: number;
14
- readonly timeout?: number;
15
- readonly max_empty_responses?: number;
16
- } & BotMessageHandlers;
@@ -1,6 +0,0 @@
1
- import type { Update } from "../../specification/types.js";
2
- import { AvailableUpdateTypes } from "./types.js";
3
- export type ExtractedUpdate<K extends AvailableUpdateTypes> = {
4
- type: K;
5
- } & Update[K];
6
- export declare const extractUpdate: <U extends AvailableUpdateTypes>(input: Update) => ExtractedUpdate<U> | undefined;
@@ -1,7 +0,0 @@
1
- import { Micro } from "effect";
2
- import { BotFactoryServiceDefault } from "./factory/_service.js";
3
- export declare const runTgChatBot: (input: Parameters<typeof BotFactoryServiceDefault.runBot>[0]) => Promise<Micro.MicroFiber<{
4
- updates: import("../index.js").Update[];
5
- lastSuccessId: number | undefined;
6
- hasError: boolean;
7
- }, import("../client/errors.js").TgBotClientError>>;
@@ -1,21 +0,0 @@
1
- import * as Micro from "effect/Micro";
2
- import * as Context from "effect/Context";
3
- import { BotMessageHandlerSettings } from "../../bot/message-handler/types.js";
4
- export type BotUpdatePollerServiceInterface = Micro.Micro.Success<typeof BotUpdatesPollerServiceDefault>;
5
- declare const BotUpdatePollerService_base: Context.TagClass<BotUpdatePollerService, "BotUpdatePollerService", {
6
- readonly runBot: (messageHandler: BotMessageHandlerSettings) => Micro.Micro<Micro.MicroFiber<{
7
- updates: import("../../index.js").Update[];
8
- lastSuccessId: number | undefined;
9
- hasError: boolean;
10
- }, import("../../client/errors.js").TgBotClientError>, string, never>;
11
- }>;
12
- export declare class BotUpdatePollerService extends BotUpdatePollerService_base {
13
- }
14
- export declare const BotUpdatesPollerServiceDefault: Micro.Micro<{
15
- readonly runBot: (messageHandler: BotMessageHandlerSettings) => Micro.Micro<Micro.MicroFiber<{
16
- updates: import("../../index.js").Update[];
17
- lastSuccessId: number | undefined;
18
- hasError: boolean;
19
- }, import("../../client/errors.js").TgBotClientError>, string, never>;
20
- }, never, import("../../client/config.js").TgBotClientConfig>;
21
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,17 +0,0 @@
1
- import * as Micro from "effect/Micro";
2
- import type { State } from "./poll-and-handle.js";
3
- import type { SafeSettings } from "./settings.js";
4
- import type { BotMessageHandlers } from "../message-handler/types.js";
5
- import type { ClientExecuteRequestServiceInterface } from "../../client/execute-request/_service.js";
6
- type Context = {
7
- state: State;
8
- settings: SafeSettings;
9
- handlers: BotMessageHandlers;
10
- execute: ClientExecuteRequestServiceInterface["execute"];
11
- };
12
- export declare const fetchUpdates: ({ state, settings, execute, handlers }: Context) => Micro.Micro<{
13
- updates: import("../../index.js").Update[];
14
- lastSuccessId: number | undefined;
15
- hasError: boolean;
16
- }, import("../../client/errors.js").TgBotClientError, never>;
17
- export {};
@@ -1,16 +0,0 @@
1
- import * as Micro from "effect/Micro";
2
- import type { ClientExecuteRequestServiceInterface } from "../../client/execute-request/_service.js";
3
- import type { BotMessageHandlerSettings } from "../../bot/message-handler/types.js";
4
- export type State = {
5
- lastUpdateId: number | undefined;
6
- emptyResponses: number;
7
- };
8
- export type PollAndHandleInput = {
9
- settings: BotMessageHandlerSettings;
10
- execute: ClientExecuteRequestServiceInterface["execute"];
11
- };
12
- export declare const pollAndHandle: (input: PollAndHandleInput) => Micro.Micro<{
13
- updates: import("../../index.js").Update[];
14
- lastSuccessId: number | undefined;
15
- hasError: boolean;
16
- }, import("../../client/errors.js").TgBotClientError, never>;