@grom.js/effect-tg 0.6.0 → 0.8.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.
- package/dist/BotApi.d.ts +3 -15
- package/dist/BotApi.d.ts.map +1 -1
- package/dist/BotApi.js +0 -9
- package/dist/BotApi.js.map +1 -1
- package/dist/BotApiError.d.ts +91 -0
- package/dist/BotApiError.d.ts.map +1 -0
- package/dist/BotApiError.js +53 -0
- package/dist/BotApiError.js.map +1 -0
- package/dist/File.d.ts +14 -6
- package/dist/File.d.ts.map +1 -1
- package/dist/File.js +5 -15
- package/dist/File.js.map +1 -1
- package/dist/Runner.d.ts +1 -1
- package/dist/Runner.d.ts.map +1 -1
- package/dist/Send.d.ts +3 -2
- package/dist/Send.d.ts.map +1 -1
- package/dist/Send.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/botApi.d.ts +1 -1
- package/dist/internal/botApi.d.ts.map +1 -1
- package/dist/internal/botApi.js +2 -2
- package/dist/internal/botApi.js.map +1 -1
- package/dist/internal/botApiError.d.ts +3 -0
- package/dist/internal/botApiError.d.ts.map +1 -0
- package/dist/internal/botApiError.js +34 -0
- package/dist/internal/botApiError.js.map +1 -0
- package/dist/internal/botApiMethods.gen.d.ts +112 -28
- package/dist/internal/botApiMethods.gen.d.ts.map +1 -1
- package/dist/internal/botApiShape.gen.d.ts +11 -3
- package/dist/internal/botApiShape.gen.d.ts.map +1 -1
- package/dist/internal/botApiTypes.gen.d.ts +94 -11
- package/dist/internal/botApiTypes.gen.d.ts.map +1 -1
- package/dist/internal/file.d.ts +7 -0
- package/dist/internal/file.d.ts.map +1 -0
- package/dist/internal/file.js +13 -0
- package/dist/internal/file.js.map +1 -0
- package/dist/internal/runner.d.ts +1 -1
- package/dist/internal/runner.d.ts.map +1 -1
- package/dist/internal/runner.js +1 -1
- package/dist/internal/runner.js.map +1 -1
- package/dist/internal/send.d.ts +1 -1
- package/dist/internal/send.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/BotApi.ts +3 -16
- package/src/BotApiError.ts +81 -0
- package/src/File.ts +17 -27
- package/src/Send.ts +3 -2
- package/src/index.ts +1 -0
- package/src/internal/botApi.ts +3 -2
- package/src/internal/botApiError.ts +36 -0
- package/src/internal/botApiMethods.gen.ts +112 -28
- package/src/internal/botApiShape.gen.ts +11 -3
- package/src/internal/botApiTypes.gen.ts +97 -11
- package/src/internal/file.ts +16 -0
- package/src/internal/runner.ts +2 -2
package/dist/BotApi.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type * as BotApiError from './BotApiError.ts';
|
|
1
2
|
import type { MethodParams, MethodResults } from './internal/botApiMethods.gen.ts';
|
|
2
3
|
import type { BotApiShape } from './internal/botApiShape.gen.ts';
|
|
3
4
|
import type * as Types from './internal/botApiTypes.gen.ts';
|
|
@@ -12,23 +13,10 @@ export declare class BotApi extends BotApi_base {
|
|
|
12
13
|
export declare namespace BotApi {
|
|
13
14
|
type Service = BotApiShape;
|
|
14
15
|
}
|
|
15
|
-
export interface Method<M extends keyof MethodParams, E = BotApiError | BotApiTransport.BotApiTransportError, R = never> {
|
|
16
|
+
export interface Method<M extends keyof MethodParams, E = BotApiError.BotApiError | BotApiTransport.BotApiTransportError, R = never> {
|
|
16
17
|
(params: MethodParams[M]): Effect.Effect<MethodResults[M], E, R>;
|
|
17
18
|
}
|
|
18
|
-
declare const BotApiError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
|
|
19
|
-
readonly _tag: "@grom.js/effect-tg/BotApi/BotApiError";
|
|
20
|
-
} & Readonly<A>;
|
|
21
|
-
/**
|
|
22
|
-
* Error returned from the Bot API server in case of unsuccessful method call.
|
|
23
|
-
*/
|
|
24
|
-
export declare class BotApiError extends BotApiError_base<{
|
|
25
|
-
code: number;
|
|
26
|
-
description: string;
|
|
27
|
-
parameters?: Types.ResponseParameters;
|
|
28
|
-
}> {
|
|
29
|
-
get message(): string;
|
|
30
|
-
}
|
|
31
19
|
export declare const make: (transport: BotApiTransport.BotApiTransport.Service) => BotApiShape;
|
|
32
20
|
export declare const layer: Layer.Layer<BotApi, never, BotApiTransport.BotApiTransport>;
|
|
33
|
-
export declare const callMethod: <M extends keyof MethodParams>(method: M, params: MethodParams[M]) => Effect.Effect<MethodResults[M], BotApiError | BotApiTransport.BotApiTransportError, BotApi>;
|
|
21
|
+
export declare const callMethod: <M extends keyof MethodParams>(method: M, params: MethodParams[M]) => Effect.Effect<MethodResults[M], BotApiError.BotApiError | BotApiTransport.BotApiTransportError, BotApi>;
|
|
34
22
|
//# sourceMappingURL=BotApi.d.ts.map
|
package/dist/BotApi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BotApi.d.ts","sourceRoot":"","sources":["../src/BotApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,KAAK,KAAK,KAAK,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"BotApi.d.ts","sourceRoot":"","sources":["../src/BotApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,WAAW,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,KAAK,KAAK,KAAK,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAGvD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,CAAA;;AAElD,qBAAa,MAAO,SAAQ,WAGzB;CAAG;AAEN,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAY,OAAO,GAAG,WAAW,CAAA;CAClC;AAED,MAAM,WAAW,MAAM,CACrB,CAAC,SAAS,MAAM,YAAY,EAC5B,CAAC,GAAG,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC,oBAAoB,EAClE,CAAC,GAAG,KAAK;IAET,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CACjE;AAED,eAAO,MAAM,IAAI,EAAE,CACjB,SAAS,EAAE,eAAe,CAAC,eAAe,CAAC,OAAO,KAC/C,WAA2B,CAAA;AAEhC,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,MAAM,EACN,KAAK,EACL,eAAe,CAAC,eAAe,CAIhC,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EACpD,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,KACpB,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,CAAC,CAAC,EAChB,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC,oBAAoB,EAC9D,MAAM,CAMA,CAAA"}
|
package/dist/BotApi.js
CHANGED
|
@@ -1,19 +1,10 @@
|
|
|
1
1
|
import * as Context from 'effect/Context';
|
|
2
|
-
import * as Data from 'effect/Data';
|
|
3
2
|
import * as Effect from 'effect/Effect';
|
|
4
3
|
import * as Layer from 'effect/Layer';
|
|
5
4
|
import * as BotApiTransport from "./BotApiTransport.js";
|
|
6
5
|
import * as internal from "./internal/botApi.js";
|
|
7
6
|
export class BotApi extends Context.Tag('@grom.js/effect-tg/BotApi')() {
|
|
8
7
|
}
|
|
9
|
-
/**
|
|
10
|
-
* Error returned from the Bot API server in case of unsuccessful method call.
|
|
11
|
-
*/
|
|
12
|
-
export class BotApiError extends Data.TaggedError('@grom.js/effect-tg/BotApi/BotApiError') {
|
|
13
|
-
get message() {
|
|
14
|
-
return `(${this.code}) ${this.description}`;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
8
|
export const make = internal.make;
|
|
18
9
|
export const layer = Layer.effect(BotApi, Effect.andThen(BotApiTransport.BotApiTransport, internal.make));
|
|
19
10
|
export const callMethod = (method, params = undefined) => BotApi.pipe(Effect.flatMap((api) => api[method](params)));
|
package/dist/BotApi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BotApi.js","sourceRoot":"","sources":["../src/BotApi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BotApi.js","sourceRoot":"","sources":["../src/BotApi.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAIhD,MAAM,OAAO,MAAO,SAAQ,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAGjE;CAAG;AAcN,MAAM,CAAC,MAAM,IAAI,GAEE,QAAQ,CAAC,IAAI,CAAA;AAEhC,MAAM,CAAC,MAAM,KAAK,GAId,KAAK,CAAC,MAAM,CACd,MAAM,EACN,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,CAC/D,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAOnB,CACF,MAAc,EACd,SAAkB,SAAS,EAC3B,EAAE,CAAC,MAAM,CAAC,IAAI,CACd,MAAM,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAC3C,CAAA"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type * as Duration from 'effect/Duration';
|
|
2
|
+
import type * as BotApi from './BotApi.ts';
|
|
3
|
+
declare const BotApiError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
|
|
4
|
+
readonly _tag: "@grom.js/effect-tg/BotApiError";
|
|
5
|
+
} & Readonly<A>;
|
|
6
|
+
/**
|
|
7
|
+
* Error returned from the Bot API server in case of unsuccessful method call.
|
|
8
|
+
*/
|
|
9
|
+
export declare class BotApiError extends BotApiError_base<{
|
|
10
|
+
code: number;
|
|
11
|
+
description: string;
|
|
12
|
+
parameters?: BotApi.Types.ResponseParameters;
|
|
13
|
+
}> {
|
|
14
|
+
get message(): string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Attempts to narrow a {@link BotApiError} to a more specific {@link KnownError}.
|
|
18
|
+
*
|
|
19
|
+
* **Warning!** Error types are detected based on the error code and message
|
|
20
|
+
* returned from the Bot API, which are not guaranteed to be the same in
|
|
21
|
+
* the future. If they change, this function may not determine error type
|
|
22
|
+
* correctly.
|
|
23
|
+
*
|
|
24
|
+
* @see {@link https://github.com/tdlib/telegram-bot-api telegram-bot-api source code}
|
|
25
|
+
*/
|
|
26
|
+
export declare const narrow: (error: BotApiError) => KnownError | BotApiError;
|
|
27
|
+
export type KnownError = TooManyRequests | BotBlockedByUser | MessageNotModified | ReplyMarkupTooLong | QueryIdInvalid | MediaGroupedInvalid;
|
|
28
|
+
declare const TooManyRequests_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
|
|
29
|
+
readonly _tag: "@grom.js/effect-tg/BotApiError/TooManyRequests";
|
|
30
|
+
} & Readonly<A>;
|
|
31
|
+
/**
|
|
32
|
+
* Flood limit exceeded. Need to wait `retryAfter` before retrying.
|
|
33
|
+
*/
|
|
34
|
+
export declare class TooManyRequests extends TooManyRequests_base<{
|
|
35
|
+
cause: BotApiError;
|
|
36
|
+
retryAfter: Duration.Duration;
|
|
37
|
+
}> {
|
|
38
|
+
}
|
|
39
|
+
declare const BotBlockedByUser_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
|
|
40
|
+
readonly _tag: "@grom.js/effect-tg/BotApiError/BotBlockedByUser";
|
|
41
|
+
} & Readonly<A>;
|
|
42
|
+
/**
|
|
43
|
+
* Bot was blocked by the user.
|
|
44
|
+
*/
|
|
45
|
+
export declare class BotBlockedByUser extends BotBlockedByUser_base<{
|
|
46
|
+
cause: BotApiError;
|
|
47
|
+
}> {
|
|
48
|
+
}
|
|
49
|
+
declare const MessageNotModified_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
|
|
50
|
+
readonly _tag: "@grom.js/effect-tg/BotApiError/MessageNotModified";
|
|
51
|
+
} & Readonly<A>;
|
|
52
|
+
/**
|
|
53
|
+
* Message was not modified as its content and reply markup
|
|
54
|
+
* are exactly the same as the current one.
|
|
55
|
+
*/
|
|
56
|
+
export declare class MessageNotModified extends MessageNotModified_base<{
|
|
57
|
+
cause: BotApiError;
|
|
58
|
+
}> {
|
|
59
|
+
}
|
|
60
|
+
declare const ReplyMarkupTooLong_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
|
|
61
|
+
readonly _tag: "@grom.js/effect-tg/BotApiError/ReplyMarkupTooLong";
|
|
62
|
+
} & Readonly<A>;
|
|
63
|
+
/**
|
|
64
|
+
* Message reply markup is too long.
|
|
65
|
+
*/
|
|
66
|
+
export declare class ReplyMarkupTooLong extends ReplyMarkupTooLong_base<{
|
|
67
|
+
cause: BotApiError;
|
|
68
|
+
}> {
|
|
69
|
+
}
|
|
70
|
+
declare const QueryIdInvalid_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
|
|
71
|
+
readonly _tag: "@grom.js/effect-tg/BotApiError/QueryIdInvalid";
|
|
72
|
+
} & Readonly<A>;
|
|
73
|
+
/**
|
|
74
|
+
* Query has expired, or ID is invalid.
|
|
75
|
+
*/
|
|
76
|
+
export declare class QueryIdInvalid extends QueryIdInvalid_base<{
|
|
77
|
+
cause: BotApiError;
|
|
78
|
+
}> {
|
|
79
|
+
}
|
|
80
|
+
declare const MediaGroupedInvalid_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
|
|
81
|
+
readonly _tag: "@grom.js/effect-tg/BotApiError/MediaGroupedInvalid";
|
|
82
|
+
} & Readonly<A>;
|
|
83
|
+
/**
|
|
84
|
+
* Invalid combination of media types in the media group.
|
|
85
|
+
*/
|
|
86
|
+
export declare class MediaGroupedInvalid extends MediaGroupedInvalid_base<{
|
|
87
|
+
cause: BotApiError;
|
|
88
|
+
}> {
|
|
89
|
+
}
|
|
90
|
+
export {};
|
|
91
|
+
//# sourceMappingURL=BotApiError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BotApiError.d.ts","sourceRoot":"","sources":["../src/BotApiError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;;;;AAI1C;;GAEG;AACH,qBAAa,WAAY,SAAQ,iBAAmD;IAClF,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAA;CAC7C,CAAC;IACA,IAAa,OAAO,WAEnB;CACF;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,UAAU,GAAG,WAA6B,CAAA;AAEvF,MAAM,MAAM,UAAU,GAChB,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,kBAAkB,GAClB,cAAc,GACd,mBAAmB,CAAA;;;;AAEzB;;GAEG;AACH,qBAAa,eAAgB,SAAQ,qBAAmE;IACtG,KAAK,EAAE,WAAW,CAAA;IAClB,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAA;CAC9B,CAAC;CAAG;;;;AAEL;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,sBAAoE;IACxG,KAAK,EAAE,WAAW,CAAA;CACnB,CAAC;CAAG;;;;AAEL;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,wBAAsE;IAC5G,KAAK,EAAE,WAAW,CAAA;CACnB,CAAC;CAAG;;;;AAEL;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,wBAAsE;IAC5G,KAAK,EAAE,WAAW,CAAA;CACnB,CAAC;CAAG;;;;AAEL;;GAEG;AACH,qBAAa,cAAe,SAAQ,oBAAkE;IACpG,KAAK,EAAE,WAAW,CAAA;CACnB,CAAC;CAAG;;;;AAEL;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,yBAAuE;IAC9G,KAAK,EAAE,WAAW,CAAA;CACnB,CAAC;CAAG"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as Data from 'effect/Data';
|
|
2
|
+
import * as internal from "./internal/botApiError.js";
|
|
3
|
+
/**
|
|
4
|
+
* Error returned from the Bot API server in case of unsuccessful method call.
|
|
5
|
+
*/
|
|
6
|
+
export class BotApiError extends Data.TaggedError('@grom.js/effect-tg/BotApiError') {
|
|
7
|
+
get message() {
|
|
8
|
+
return `(${this.code}) ${this.description}`;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Attempts to narrow a {@link BotApiError} to a more specific {@link KnownError}.
|
|
13
|
+
*
|
|
14
|
+
* **Warning!** Error types are detected based on the error code and message
|
|
15
|
+
* returned from the Bot API, which are not guaranteed to be the same in
|
|
16
|
+
* the future. If they change, this function may not determine error type
|
|
17
|
+
* correctly.
|
|
18
|
+
*
|
|
19
|
+
* @see {@link https://github.com/tdlib/telegram-bot-api telegram-bot-api source code}
|
|
20
|
+
*/
|
|
21
|
+
export const narrow = internal.narrow;
|
|
22
|
+
/**
|
|
23
|
+
* Flood limit exceeded. Need to wait `retryAfter` before retrying.
|
|
24
|
+
*/
|
|
25
|
+
export class TooManyRequests extends Data.TaggedError('@grom.js/effect-tg/BotApiError/TooManyRequests') {
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Bot was blocked by the user.
|
|
29
|
+
*/
|
|
30
|
+
export class BotBlockedByUser extends Data.TaggedError('@grom.js/effect-tg/BotApiError/BotBlockedByUser') {
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Message was not modified as its content and reply markup
|
|
34
|
+
* are exactly the same as the current one.
|
|
35
|
+
*/
|
|
36
|
+
export class MessageNotModified extends Data.TaggedError('@grom.js/effect-tg/BotApiError/MessageNotModified') {
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Message reply markup is too long.
|
|
40
|
+
*/
|
|
41
|
+
export class ReplyMarkupTooLong extends Data.TaggedError('@grom.js/effect-tg/BotApiError/ReplyMarkupTooLong') {
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Query has expired, or ID is invalid.
|
|
45
|
+
*/
|
|
46
|
+
export class QueryIdInvalid extends Data.TaggedError('@grom.js/effect-tg/BotApiError/QueryIdInvalid') {
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Invalid combination of media types in the media group.
|
|
50
|
+
*/
|
|
51
|
+
export class MediaGroupedInvalid extends Data.TaggedError('@grom.js/effect-tg/BotApiError/MediaGroupedInvalid') {
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=BotApiError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BotApiError.js","sourceRoot":"","sources":["../src/BotApiError.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAA;AAErD;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,IAAI,CAAC,WAAW,CAAC,gCAAgC,CAIhF;IACA,IAAa,OAAO;QAClB,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAA;IAC7C,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,MAAM,GAAqD,QAAQ,CAAC,MAAM,CAAA;AAUvF;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,IAAI,CAAC,WAAW,CAAC,gDAAgD,CAGpG;CAAG;AAEL;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,IAAI,CAAC,WAAW,CAAC,iDAAiD,CAEtG;CAAG;AAEL;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,mDAAmD,CAE1G;CAAG;AAEL;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,mDAAmD,CAE1G;CAAG;AAEL;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,IAAI,CAAC,WAAW,CAAC,+CAA+C,CAElG;CAAG;AAEL;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,IAAI,CAAC,WAAW,CAAC,oDAAoD,CAE5G;CAAG"}
|
package/dist/File.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import type * as HttpClient from '@effect/platform/HttpClient';
|
|
2
|
+
import type * as HttpClientError from '@effect/platform/HttpClientError';
|
|
3
|
+
import type * as HttpClientResponse from '@effect/platform/HttpClientResponse';
|
|
4
|
+
import type * as Effect from 'effect/Effect';
|
|
1
5
|
import type * as Stream from 'effect/Stream';
|
|
2
|
-
import * as
|
|
6
|
+
import type * as BotApi from './BotApi.ts';
|
|
7
|
+
import type * as BotApiError from './BotApiError.ts';
|
|
8
|
+
import type * as BotApiTransport from './BotApiTransport.ts';
|
|
9
|
+
import type * as BotApiUrl from './BotApiUrl.ts';
|
|
3
10
|
import * as Brand from 'effect/Brand';
|
|
4
|
-
import * as Effect from 'effect/Effect';
|
|
5
|
-
import * as BotApi from './BotApi.ts';
|
|
6
|
-
import * as BotApiUrl from './BotApiUrl.ts';
|
|
7
11
|
export type FileId = string & Brand.Brand<'FileId'>;
|
|
8
12
|
export declare const FileId: Brand.Brand.Constructor<FileId>;
|
|
9
13
|
export type External = URL & Brand.Brand<'External'>;
|
|
@@ -17,7 +21,11 @@ export declare class InputFile extends InputFile_base<{
|
|
|
17
21
|
mimeType?: string;
|
|
18
22
|
}> {
|
|
19
23
|
}
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Downloads a file from the Bot API server.
|
|
26
|
+
*
|
|
27
|
+
* @see {@link https://core.telegram.org/bots/api#getfile Bot API • getFile}
|
|
28
|
+
*/
|
|
29
|
+
export declare const get: (fileId: FileId) => Effect.Effect<HttpClientResponse.HttpClientResponse, BotApiError.BotApiError | BotApiTransport.BotApiTransportError | HttpClientError.HttpClientError, BotApi.BotApi | BotApiUrl.BotApiUrl | HttpClient.HttpClient>;
|
|
22
30
|
export {};
|
|
23
31
|
//# sourceMappingURL=File.d.ts.map
|
package/dist/File.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"File.d.ts","sourceRoot":"","sources":["../src/File.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"File.d.ts","sourceRoot":"","sources":["../src/File.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,UAAU,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,KAAK,eAAe,MAAM,kCAAkC,CAAA;AACxE,OAAO,KAAK,KAAK,kBAAkB,MAAM,qCAAqC,CAAA;AAC9E,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,KAAK,WAAW,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;AACnD,eAAO,MAAM,MAAM,iCAA0B,CAAA;AAE7C,MAAM,MAAM,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;AACpD,eAAO,MAAM,QAAQ,mCAA4B,CAAA;;;;AAEjD,qBAAa,SAAU,SAAQ,eAA8B;IAC3D,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAC;CAAG;AAEL;;;;GAIG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CACjD,kBAAkB,CAAC,kBAAkB,EACrC,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC,oBAAoB,GAAG,eAAe,CAAC,eAAe,EAChG,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,GAAG,UAAU,CAAC,UAAU,CAC7C,CAAA"}
|
package/dist/File.js
CHANGED
|
@@ -1,24 +1,14 @@
|
|
|
1
|
-
import * as HttpClient from '@effect/platform/HttpClient';
|
|
2
1
|
import * as Brand from 'effect/Brand';
|
|
3
2
|
import * as Data from 'effect/Data';
|
|
4
|
-
import * as
|
|
5
|
-
import * as BotApi from "./BotApi.js";
|
|
6
|
-
import * as BotApiUrl from "./BotApiUrl.js";
|
|
3
|
+
import * as internal from "./internal/file.js";
|
|
7
4
|
export const FileId = Brand.nominal();
|
|
8
5
|
export const External = Brand.nominal();
|
|
9
6
|
export class InputFile extends Data.TaggedClass('InputFile') {
|
|
10
7
|
}
|
|
11
8
|
/**
|
|
12
|
-
*
|
|
9
|
+
* Downloads a file from the Bot API server.
|
|
10
|
+
*
|
|
11
|
+
* @see {@link https://core.telegram.org/bots/api#getfile Bot API • getFile}
|
|
13
12
|
*/
|
|
14
|
-
const
|
|
15
|
-
const file = yield* BotApi.callMethod('getFile', { file_id: fileId });
|
|
16
|
-
if (file.file_path == null) {
|
|
17
|
-
return yield* Effect.die(new Error(`Bot API returned no file path for file "${fileId}".`));
|
|
18
|
-
}
|
|
19
|
-
const url = yield* BotApiUrl.BotApiUrl;
|
|
20
|
-
return yield* HttpClient.get(url.toFile(file.file_path));
|
|
21
|
-
});
|
|
22
|
-
export const download = (fileId) => (downloadRequest(fileId).pipe(Effect.flatMap(request => request.arrayBuffer)));
|
|
23
|
-
export const downloadStream = (fileId) => (downloadRequest(fileId).pipe(Effect.andThen(request => request.stream)));
|
|
13
|
+
export const get = internal.get;
|
|
24
14
|
//# sourceMappingURL=File.js.map
|
package/dist/File.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"File.js","sourceRoot":"","sources":["../src/File.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"File.js","sourceRoot":"","sources":["../src/File.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAG9C,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAU,CAAA;AAG7C,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAY,CAAA;AAEjD,MAAM,OAAO,SAAU,SAAQ,IAAI,CAAC,WAAW,CAAC,WAAW,CAIzD;CAAG;AAEL;;;;GAIG;AACH,MAAM,CAAC,MAAM,GAAG,GAIZ,QAAQ,CAAC,GAAG,CAAA"}
|
package/dist/Runner.d.ts
CHANGED
|
@@ -14,5 +14,5 @@ export interface Runner<E = never, R = never> {
|
|
|
14
14
|
*/
|
|
15
15
|
export declare const makeSimple: (options?: {
|
|
16
16
|
allowedUpdates?: string[];
|
|
17
|
-
}) => Runner<import("./
|
|
17
|
+
}) => Runner<import("./BotApiError.ts").BotApiError | import("./BotApiTransport.ts").BotApiTransportError, import("./BotApi.ts").BotApi>;
|
|
18
18
|
//# sourceMappingURL=Runner.d.ts.map
|
package/dist/Runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Runner.d.ts","sourceRoot":"","sources":["../src/Runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAA;AAGpC;;GAEG;AACH,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK;IAC1C,QAAQ,CAAC,GAAG,EAAE;QACZ,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAC3C,KAAK,EACL,CAAC,GAAG,EAAE,EACN,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAC5B,CAAA;KACF,CAAA;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU;
|
|
1
|
+
{"version":3,"file":"Runner.d.ts","sourceRoot":"","sources":["../src/Runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAA;AAGpC;;GAEG;AACH,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK;IAC1C,QAAQ,CAAC,GAAG,EAAE;QACZ,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAC3C,KAAK,EACL,CAAC,GAAG,EAAE,EACN,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAC5B,CAAA;KACF,CAAA;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU;kBAFpB,CAAA;wIAE0C,CAAA"}
|
package/dist/Send.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Utilities for sending messages.
|
|
3
3
|
*/
|
|
4
4
|
import type * as BotApi from './BotApi.ts';
|
|
5
|
+
import type * as BotApiError from './BotApiError.ts';
|
|
5
6
|
import type * as BotApiTransport from './BotApiTransport.ts';
|
|
6
7
|
import type * as Content from './Content.ts';
|
|
7
8
|
import type * as Dialog_ from './Dialog.ts';
|
|
@@ -54,8 +55,8 @@ export declare const sendMessage: (params: {
|
|
|
54
55
|
dialog: Dialog_.Dialog;
|
|
55
56
|
options?: Options;
|
|
56
57
|
markup?: Markup.Markup;
|
|
57
|
-
}) => Effect.Effect<BotApi.Types.Message,
|
|
58
|
-
type MessageToSendEffect = Effect.Effect<BotApi.Types.Message,
|
|
58
|
+
}) => Effect.Effect<BotApi.Types.Message, BotApiError.BotApiError | BotApiTransport.BotApiTransportError, BotApi.BotApi>;
|
|
59
|
+
type MessageToSendEffect = Effect.Effect<BotApi.Types.Message, BotApiError.BotApiError | BotApiTransport.BotApiTransportError, BotApi.BotApi | Dialog>;
|
|
59
60
|
/**
|
|
60
61
|
* A message prepared to be sent.
|
|
61
62
|
*/
|
package/dist/Send.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Send.d.ts","sourceRoot":"","sources":["../src/Send.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,KAAK,OAAO,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,KAAK,OAAO,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAA;AAMjD,QAAA,MAAM,mBAAmB,EAAE,OAAO,MAA4D,CAAA;;AAI9F;;GAEG;AACH,qBAAa,MAAO,SAAQ,WAGzB;CAAG;AAIN;;;;GAIG;AACH,qBAAa,OAAQ,SAAQ,IAAI,CAAC,KAAK,CAAC;IACtC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAC;CAAG;AAIL;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,MAAM,EAAE;IACjC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACxB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAA;CACvB,KAAK,MAAM,CAAC,MAAM,CACjB,MAAM,CAAC,KAAK,CAAC,OAAO,EACpB,
|
|
1
|
+
{"version":3,"file":"Send.d.ts","sourceRoot":"","sources":["../src/Send.ts"],"names":[],"mappings":"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"}
|
package/dist/Send.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Send.js","sourceRoot":"","sources":["../src/Send.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"Send.js","sourceRoot":"","sources":["../src/Send.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * as Bot from './Bot.ts';
|
|
2
2
|
export * as BotApi from './BotApi.ts';
|
|
3
|
+
export * as BotApiError from './BotApiError.ts';
|
|
3
4
|
export * as BotApiTransport from './BotApiTransport.ts';
|
|
4
5
|
export * as BotApiUrl from './BotApiUrl.ts';
|
|
5
6
|
export * as Content from './Content.ts';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * as Bot from "./Bot.js";
|
|
2
2
|
export * as BotApi from "./BotApi.js";
|
|
3
|
+
export * as BotApiError from "./BotApiError.js";
|
|
3
4
|
export * as BotApiTransport from "./BotApiTransport.js";
|
|
4
5
|
export * as BotApiUrl from "./BotApiUrl.js";
|
|
5
6
|
export * as Content from "./Content.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
+
import type * as BotApi from '../BotApi.ts';
|
|
1
2
|
import type * as BotApiTransport from '../BotApiTransport.ts';
|
|
2
|
-
import * as BotApi from '../BotApi.ts';
|
|
3
3
|
export declare const make: (transport: BotApiTransport.BotApiTransport.Service) => BotApi.BotApi.Service;
|
|
4
4
|
//# sourceMappingURL=botApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"botApi.d.ts","sourceRoot":"","sources":["../../src/internal/botApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"botApi.d.ts","sourceRoot":"","sources":["../../src/internal/botApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,KAAK,eAAe,MAAM,uBAAuB,CAAA;AAI7D,eAAO,MAAM,IAAI,GACf,WAAW,eAAe,CAAC,eAAe,CAAC,OAAO,KACjD,MAAM,CAAC,MAAM,CAAC,OAwBhB,CAAA"}
|
package/dist/internal/botApi.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as Effect from 'effect/Effect';
|
|
2
|
-
import * as
|
|
2
|
+
import * as BotApiError from "../BotApiError.js";
|
|
3
3
|
export const make = (transport) => new Proxy({}, {
|
|
4
4
|
get: (_target, prop) => {
|
|
5
5
|
if (typeof prop !== 'string') {
|
|
@@ -11,7 +11,7 @@ export const make = (transport) => new Proxy({}, {
|
|
|
11
11
|
if (response.ok) {
|
|
12
12
|
return response.result;
|
|
13
13
|
}
|
|
14
|
-
return yield* Effect.fail(new
|
|
14
|
+
return yield* Effect.fail(new BotApiError.BotApiError({
|
|
15
15
|
code: response.error_code,
|
|
16
16
|
description: response.description,
|
|
17
17
|
parameters: response.parameters,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"botApi.js","sourceRoot":"","sources":["../../src/internal/botApi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"botApi.js","sourceRoot":"","sources":["../../src/internal/botApi.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAA;AAEhD,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,SAAkD,EAC3B,EAAE,CACzB,IAAI,KAAK,CAAC,EAAE,EAAE;IACZ,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAM;QACR,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAA;QACnB,OAAO,MAAM,CAAC,UAAU,CACtB,QAAQ,CAAC,EAAE,SAAyC,EAAE;YACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC7D,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAO,QAAQ,CAAC,MAAM,CAAA;YACxB,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,WAAW,CAAC,WAAW,CAAC;gBAC1B,IAAI,EAAE,QAAQ,CAAC,UAAU;gBACzB,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;aAChC,CAAC,CACH,CAAA;QACH,CAAC,CACF,CAAA;IACH,CAAC;CACF,CACF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"botApiError.d.ts","sourceRoot":"","sources":["../../src/internal/botApiError.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAA;AAEhD,eAAO,MAAM,MAAM,GACjB,OAAO,WAAW,CAAC,WAAW,KAC7B,WAAW,CAAC,UAAU,GAAG,WAAW,CAAC,WA8BvC,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as Duration from 'effect/Duration';
|
|
2
|
+
import * as BotApiError from "../BotApiError.js";
|
|
3
|
+
export const narrow = (error) => {
|
|
4
|
+
const code = error.code;
|
|
5
|
+
const msg = error.message.toLowerCase();
|
|
6
|
+
const params = error.parameters;
|
|
7
|
+
if (code === 429 && params?.retry_after != null) {
|
|
8
|
+
return new BotApiError.TooManyRequests({
|
|
9
|
+
cause: error,
|
|
10
|
+
retryAfter: Duration.seconds(params.retry_after),
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
if (code === 403) {
|
|
14
|
+
if (msg.includes('bot was blocked by the user')) {
|
|
15
|
+
return new BotApiError.BotBlockedByUser({ cause: error });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (code === 400) {
|
|
19
|
+
if (msg.includes('message is not modified')) {
|
|
20
|
+
return new BotApiError.MessageNotModified({ cause: error });
|
|
21
|
+
}
|
|
22
|
+
if (msg.includes('reply markup too long')) {
|
|
23
|
+
return new BotApiError.ReplyMarkupTooLong({ cause: error });
|
|
24
|
+
}
|
|
25
|
+
if (msg.includes('query is too old') && msg.includes('query id is invalid')) {
|
|
26
|
+
return new BotApiError.QueryIdInvalid({ cause: error });
|
|
27
|
+
}
|
|
28
|
+
if (msg.includes('can\'t use the media of the specified type in the album')) {
|
|
29
|
+
return new BotApiError.MediaGroupedInvalid({ cause: error });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return error;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=botApiError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"botApiError.js","sourceRoot":"","sources":["../../src/internal/botApiError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAA;AAEhD,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,KAA8B,EACoB,EAAE;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACvB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAA;IAC/B,IAAI,IAAI,KAAK,GAAG,IAAI,MAAM,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC;QAChD,OAAO,IAAI,WAAW,CAAC,eAAe,CAAC;YACrC,KAAK,EAAE,KAAK;YACZ,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;SACjD,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,GAAG,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;YAChD,OAAO,IAAI,WAAW,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QAC3D,CAAC;IACH,CAAC;IACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,GAAG,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,WAAW,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7D,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,WAAW,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7D,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC5E,OAAO,IAAI,WAAW,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,CAAC,yDAAyD,CAAC,EAAE,CAAC;YAC5E,OAAO,IAAI,WAAW,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
|