@effect-ak/tg-bot-client 0.6.4 → 1.1.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/src/guards.ts ADDED
@@ -0,0 +1,27 @@
1
+ export interface FileContent {
2
+ file_content: Uint8Array<ArrayBuffer>
3
+ file_name: string
4
+ }
5
+
6
+ export const isFileContent = (input: unknown): input is FileContent =>
7
+ typeof input == "object" &&
8
+ input != null &&
9
+ "file_content" in input &&
10
+ input.file_content instanceof Uint8Array &&
11
+ "file_name" in input &&
12
+ typeof input.file_name == "string"
13
+
14
+ export interface TgBotApiResponseSchema {
15
+ ok: boolean
16
+ error_code?: number
17
+ description?: string
18
+ result?: unknown
19
+ }
20
+
21
+ export const isTgBotApiResponse = (
22
+ input: unknown
23
+ ): input is TgBotApiResponseSchema =>
24
+ typeof input == "object" &&
25
+ input != null &&
26
+ "ok" in input &&
27
+ typeof input.ok == "boolean"
package/src/index.ts ADDED
@@ -0,0 +1,8 @@
1
+ export * from "./execute"
2
+ export * from "./client-file"
3
+ export * from "./client"
4
+ export * from "./config"
5
+ export * from "./errors"
6
+ export * from "./guards"
7
+ export * from "./const"
8
+ export * from "./utils"
package/src/utils.ts ADDED
@@ -0,0 +1,3 @@
1
+ export const snakeToCamel = (str: string): string => {
2
+ return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase())
3
+ }
@@ -0,0 +1,102 @@
1
+ import { describe, expect, assert, vi } from "vitest"
2
+
3
+ import { fixture } from "./fixture"
4
+ import { MESSAGE_EFFECTS } from "../src/const"
5
+ import { Micro } from "effect"
6
+ import { executeTgBotMethod } from "../src/execute"
7
+
8
+ const fetchSpy = vi.spyOn(global, "fetch")
9
+
10
+ describe("telegram bot client, execute method", () => {
11
+ fixture("send dice", async ({ chat_id, context }) => {
12
+ // skip();
13
+
14
+ const response = await executeTgBotMethod("send_dice", {
15
+ chat_id,
16
+ emoji: "🎲",
17
+ message_effect_id: MESSAGE_EFFECTS["🔥"]
18
+ }).pipe(Micro.provideContext(context), Micro.runPromiseExit)
19
+
20
+ assert(response._tag == "Success")
21
+
22
+ const url = fetchSpy.mock.calls[0][0] as string
23
+ const lastPath = url.split("/").pop()
24
+
25
+ expect(lastPath).toEqual("sendDice")
26
+
27
+ assert(response != null)
28
+
29
+ expect(response.value.chat.id).toBeDefined()
30
+ })
31
+
32
+ fixture("send message", async ({ chat_id, client, skip }) => {
33
+ skip()
34
+
35
+ const response = await client.execute("send_message", {
36
+ chat_id,
37
+ text: "hey again",
38
+ message_effect_id: MESSAGE_EFFECTS["🔥"]
39
+ })
40
+
41
+ expect(response.chat.id).toBeDefined()
42
+ })
43
+
44
+ fixture("send message with keyboard", async ({ chat_id, client, skip }) => {
45
+ skip()
46
+
47
+ const response = await client.execute("send_message", {
48
+ chat_id,
49
+ text: "hey again!",
50
+ message_effect_id: MESSAGE_EFFECTS["🎉"],
51
+ reply_markup: {
52
+ inline_keyboard: [
53
+ [
54
+ {
55
+ text: "api documentation",
56
+ web_app: {
57
+ url: "https://core.telegram.org/api"
58
+ }
59
+ }
60
+ ]
61
+ ]
62
+ }
63
+ })
64
+
65
+ expect(response.chat.id).toBeDefined()
66
+ })
67
+
68
+ fixture("send document", async ({ chat_id, client, skip }) => {
69
+ skip()
70
+
71
+ const response = await client.execute("send_document", {
72
+ chat_id,
73
+ message_effect_id: MESSAGE_EFFECTS["🎉"],
74
+ document: {
75
+ file_content: Buffer.from("Hello!"),
76
+ file_name: "hello.txt"
77
+ },
78
+ caption: "simple text file"
79
+ })
80
+
81
+ expect(response.document?.file_id).toBeDefined()
82
+
83
+ expect(response.chat.id).toBeDefined()
84
+ })
85
+
86
+ fixture("send message with action", async ({ chat_id, client }) => {
87
+ await client.execute("send_chat_action", {
88
+ chat_id,
89
+ action: "upload_voice"
90
+ })
91
+
92
+ await new Promise((res) => setTimeout(res, 5000))
93
+
94
+ const response = await client.execute("send_message", {
95
+ chat_id,
96
+ text: "hey again with typings",
97
+ message_effect_id: MESSAGE_EFFECTS["🔥"]
98
+ })
99
+
100
+ expect(response.chat.id).toBeDefined()
101
+ })
102
+ })
@@ -0,0 +1,23 @@
1
+ import { assert, describe, expect } from "vitest"
2
+
3
+ import { fixture } from "./fixture"
4
+
5
+ describe("telegram bot client, download file", () => {
6
+ fixture("get file content", async ({ client, chat_id }) => {
7
+ const document = await client.execute("send_document", {
8
+ chat_id,
9
+ document: {
10
+ file_content: Buffer.from("Hello!"),
11
+ file_name: "hello.txt"
12
+ }
13
+ })
14
+
15
+ const fileId = document.document?.file_id
16
+
17
+ assert(fileId, "file id is null")
18
+
19
+ const response = await client.getFile({ fileId })
20
+
21
+ expect(response).toBeDefined()
22
+ })
23
+ })
@@ -0,0 +1,35 @@
1
+ import { test } from "vitest"
2
+ import { Context } from "effect"
3
+
4
+ import { makeTgBotClient, TgBotClient } from "../src/client"
5
+ import { TgBotApiToken } from "../src/config"
6
+
7
+ interface Fixture {
8
+ readonly token: string
9
+ readonly client: TgBotClient
10
+ readonly chat_id: string
11
+ readonly context: Context.Context<TgBotApiToken>
12
+ }
13
+
14
+ export const fixture = test.extend<Fixture>({
15
+ token: async (_, use) => {
16
+ const token = process.env["bot_token"]
17
+ if (!token) throw Error("bot_token not defined in config.json")
18
+ use(token)
19
+ },
20
+
21
+ client: async ({ token }, use) => {
22
+ const client = makeTgBotClient({
23
+ bot_token: token
24
+ })
25
+ use(client)
26
+ },
27
+ chat_id: async (_, use) => {
28
+ const chatId = process.env["chat_id"]
29
+ if (!chatId) throw Error("chat_id not defined in config.json")
30
+ use(chatId)
31
+ },
32
+ context: async ({ token }, use) => {
33
+ use(Context.make(TgBotApiToken, token))
34
+ }
35
+ })
package/tsconfig.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "include": ["src", "test"],
4
+ "compilerOptions": {
5
+ "lib": ["DOM", "ESNext"],
6
+ "baseUrl": ".",
7
+ "paths": {
8
+ "~/*": ["./src/*"],
9
+ "~test/*": ["./test/*"]
10
+ }
11
+ }
12
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "$schema": "https://cdn.jsdelivr.net/npm/tsup/schema.json",
3
+ "entry": ["src/index.ts"],
4
+ "outDir": "dist",
5
+ "format": ["esm", "cjs"],
6
+ "splitting": false,
7
+ "sourcemap": false,
8
+ "clean": true,
9
+ "dts": true
10
+ }
@@ -1,22 +0,0 @@
1
- "use strict";var Ye=Object.defineProperty;var Rs=Object.getOwnPropertyDescriptor;var Ns=Object.getOwnPropertyNames;var Ps=Object.prototype.hasOwnProperty;var Fs=(t,e)=>{for(var r in e)Ye(t,r,{get:e[r],enumerable:!0})},Ls=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Ns(e))!Ps.call(t,n)&&n!==r&&Ye(t,n,{get:()=>e[n],enumerable:!(o=Rs(e,n))||o.enumerable});return t};var Us=t=>Ls(Ye({},"__esModule",{value:!0}),t);var jc={};Fs(jc,{BatchUpdateResult:()=>qt,BotPollSettings:()=>Ht,BotPollSettingsTag:()=>F,BotResponse:()=>ee,BotRunService:()=>ce,BotUpdateHandlersTag:()=>st,HandleUpdateError:()=>yt,defineBot:()=>Bc,extractUpdate:()=>Is,handleEntireBatch:()=>As,handleOneByOne:()=>vs,handleOneUpdate:()=>Ms,handleUpdates:()=>oo,launchBot:()=>no,runTgChatBot:()=>Dc});module.exports=Us(jc);var Ke=t=>typeof t=="function",u=function(t,e){if(typeof t=="function")return function(){return t(arguments)?e.apply(this,arguments):r=>e(r,...arguments)};switch(t){case 0:case 1:throw new RangeError(`Invalid arity ${t}`);case 2:return function(r,o){return arguments.length>=2?e(r,o):function(n){return e(n,r)}};case 3:return function(r,o,n){return arguments.length>=3?e(r,o,n):function(s){return e(s,r,o)}};case 4:return function(r,o,n,s){return arguments.length>=4?e(r,o,n,s):function(i){return e(i,r,o,n)}};case 5:return function(r,o,n,s,i){return arguments.length>=5?e(r,o,n,s,i):function(c){return e(c,r,o,n,s)}};default:return function(){if(arguments.length>=t)return e.apply(this,arguments);let r=arguments;return function(o){return e(o,...r)}}}};var A=t=>t;var Ze=t=>()=>t,ae=Ze(!0),Qe=Ze(!1);var Xe=Ze(void 0),so=Xe;function b(t,e,r,o,n,s,i,c,a){switch(arguments.length){case 1:return t;case 2:return e(t);case 3:return r(e(t));case 4:return o(r(e(t)));case 5:return n(o(r(e(t))));case 6:return s(n(o(r(e(t)))));case 7:return i(s(n(o(r(e(t))))));case 8:return c(i(s(n(o(r(e(t)))))));case 9:return a(c(i(s(n(o(r(e(t))))))));default:{let p=arguments[0];for(let h=1;h<arguments.length;h++)p=arguments[h](p);return p}}}var co=t=>(e,r)=>e===r||t(e,r);var qs="3.12.0",pe=()=>qs;var er=Symbol.for(`effect/GlobalValue/globalStoreId/${pe()}`);er in globalThis||(globalThis[er]=new Map);var tr=globalThis[er],L=(t,e)=>(tr.has(t)||tr.set(t,e()),tr.get(t));var Wt=Ke;var Ds=t=>typeof t=="object"&&t!==null,rr=t=>Ds(t)||Wt(t),_=u(2,(t,e)=>rr(t)&&e in t),or=u(2,(t,e)=>_(t,"_tag")&&t._tag===e);var Gt=t=>`BUG: ${t} - please report an issue at https://github.com/Effect-TS/effect/issues`;var po=Symbol.for("effect/Gen/GenKind");var uo=class{value;constructor(e){this.value=e}get _F(){return A}get _R(){return e=>e}get _O(){return e=>e}get _E(){return e=>e}[po]=po;[Symbol.iterator](){return new ut(this)}},ut=class t{self;called=!1;constructor(e){this.self=e}next(e){return this.called?{value:e,done:!0}:(this.called=!0,{value:this.self,done:!1})}return(e){return{value:e,done:!0}}throw(e){throw e}[Symbol.iterator](){return new t(this.self)}};var nr=Symbol.for("effect/Utils/YieldWrap"),J=class{#t;constructor(e){this.#t=e}[nr](){return this.#t}};function lo(t){if(typeof t=="object"&&t!==null&&nr in t)return t[nr]();throw new Error(Gt("yieldWrapGet"))}var N=L("effect/Utils/isStructuralRegion",()=>({enabled:!1,tester:void 0}));var Zc=function*(){}.constructor;var sr=L(Symbol.for("effect/Hash/randomHashCache"),()=>new WeakMap),f=Symbol.for("effect/Hash"),l=t=>{if(N.enabled===!0)return 0;switch(typeof t){case"number":return le(t);case"bigint":return U(t.toString(10));case"boolean":return U(String(t));case"symbol":return U(String(t));case"string":return U(t);case"undefined":return U("undefined");case"function":case"object":return t===null?U("null"):t instanceof Date?l(t.toISOString()):Bs(t)?t[f]():Ot(t);default:throw new Error(`BUG: unhandled typeof ${typeof t} - please report an issue at https://github.com/Effect-TS/effect/issues`)}},Ot=t=>(sr.has(t)||sr.set(t,le(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))),sr.get(t)),M=t=>e=>e*53^t,ue=t=>t&3221225471|t>>>1&1073741824,Bs=t=>_(t,f),le=t=>{if(t!==t||t===1/0)return 0;let e=t|0;for(e!==t&&(e^=t*4294967295);t>4294967295;)e^=t/=4294967295;return ue(e)},U=t=>{let e=5381,r=t.length;for(;r;)e=e*33^t.charCodeAt(--r);return ue(e)},js=(t,e)=>{let r=12289;for(let o=0;o<e.length;o++)r^=b(U(e[o]),M(l(t[e[o]])));return ue(r)},fo=t=>js(t,Object.keys(t)),fe=t=>{let e=6151;for(let r=0;r<t.length;r++)e=b(e,M(l(t[r])));return ue(e)},S=function(){if(arguments.length===1){let r=arguments[0];return function(o){return Object.defineProperty(r,f,{value(){return o},enumerable:!1}),o}}let t=arguments[0],e=arguments[1];return Object.defineProperty(t,f,{value(){return e},enumerable:!1}),e};var m=Symbol.for("effect/Equal");function x(){return arguments.length===1?t=>de(t,arguments[0]):de(arguments[0],arguments[1])}function de(t,e){if(t===e)return!0;let r=typeof t;if(r!==typeof e)return!1;if(r==="object"||r==="function"){if(t!==null&&e!==null){if(ho(t)&&ho(e))return l(t)===l(e)&&t[m](e)?!0:N.enabled&&N.tester?N.tester(t,e):!1;if(t instanceof Date&&e instanceof Date)return t.toISOString()===e.toISOString()}if(N.enabled){if(Array.isArray(t)&&Array.isArray(e))return t.length===e.length&&t.every((o,n)=>de(o,e[n]));if(Object.getPrototypeOf(t)===Object.prototype&&Object.getPrototypeOf(t)===Object.prototype){let o=Object.keys(t),n=Object.keys(e);if(o.length===n.length){for(let s of o)if(!(s in e&&de(t[s],e[s])))return N.tester?N.tester(t,e):!1;return!0}}return N.tester?N.tester(t,e):!1}}return N.enabled&&N.tester?N.tester(t,e):!1}var ho=t=>_(t,m);var y=Symbol.for("nodejs.util.inspect.custom"),O=t=>{try{if(_(t,"toJSON")&&Wt(t.toJSON)&&t.toJSON.length===0)return t.toJSON();if(Array.isArray(t))return t.map(O)}catch{return{}}return Ws(t)},E=t=>JSON.stringify(t,null,2),ca={toJSON(){return O(this)},[y](){return this.toJSON()},toString(){return E(this.toJSON())}},mo=class{[y](){return this.toJSON()}toString(){return E(this.toJSON())}},xo=(t,e=2)=>{if(typeof t=="string")return t;try{return typeof t=="object"?ir(t,e):String(t)}catch{return String(t)}},ir=(t,e)=>{let r=[],o=JSON.stringify(t,(n,s)=>typeof s=="object"&&s!==null?r.includes(s)?void 0:r.push(s)&&(he.fiberRefs!==void 0&&go(s)?s[cr](he.fiberRefs):s):s,e);return r=void 0,o},cr=Symbol.for("effect/Inspectable/Redactable"),go=t=>typeof t=="object"&&t!==null&&cr in t,he=L("effect/Inspectable/redactableState",()=>({fiberRefs:void 0}));var Ws=t=>go(t)&&he.fiberRefs!==void 0?t[cr](he.fiberRefs):t;var C=(t,e)=>{switch(e.length){case 0:return t;case 1:return e[0](t);case 2:return e[1](e[0](t));case 3:return e[2](e[1](e[0](t)));case 4:return e[3](e[2](e[1](e[0](t))));case 5:return e[4](e[3](e[2](e[1](e[0](t)))));case 6:return e[5](e[4](e[3](e[2](e[1](e[0](t))))));case 7:return e[6](e[5](e[4](e[3](e[2](e[1](e[0](t)))))));case 8:return e[7](e[6](e[5](e[4](e[3](e[2](e[1](e[0](t))))))));case 9:return e[8](e[7](e[6](e[5](e[4](e[3](e[2](e[1](e[0](t)))))))));default:{let r=t;for(let o=0,n=e.length;o<n;o++)r=e[o](r);return r}}};var ar="Commit",_o="Failure";var yo="WithRuntime";var So=Symbol.for("effect/Effect"),bo=Symbol.for("effect/Stream"),Eo=Symbol.for("effect/Sink"),Co=Symbol.for("effect/Channel"),et={_R:t=>t,_E:t=>t,_A:t=>t,_V:pe()},Gs={_A:t=>t,_In:t=>t,_L:t=>t,_E:t=>t,_R:t=>t},zs={_Env:t=>t,_InErr:t=>t,_InElem:t=>t,_InDone:t=>t,_OutErr:t=>t,_OutElem:t=>t,_OutDone:t=>t},$={[So]:et,[bo]:et,[Eo]:Gs,[Co]:zs,[m](t){return this===t},[f](){return S(this,Ot(this))},[Symbol.iterator](){return new ut(new J(this))},pipe(){return C(this,arguments)}},pr={[f](){return S(this,fo(this))},[m](t){let e=Object.keys(this),r=Object.keys(t);if(e.length!==r.length)return!1;for(let o of e)if(!(o in t&&x(this[o],t[o])))return!1;return!0}},ur={...$,_op:ar},lr={...ur,...pr};var ko=Symbol.for("effect/Option"),Io={...$,[ko]:{_A:t=>t},[y](){return this.toJSON()},toString(){return E(this.toJSON())}},$s=Object.assign(Object.create(Io),{_tag:"Some",_op:"Some",[m](t){return fr(t)&&hr(t)&&x(this.value,t.value)},[f](){return S(this,M(l(this._tag))(l(this.value)))},toJSON(){return{_id:"Option",_tag:this._tag,value:O(this.value)}}}),Vs=l("None"),Ys=Object.assign(Object.create(Io),{_tag:"None",_op:"None",[m](t){return fr(t)&&dr(t)},[f](){return Vs},toJSON(){return{_id:"Option",_tag:this._tag}}}),fr=t=>_(t,ko),dr=t=>t._tag==="None",hr=t=>t._tag==="Some",Ao=Object.create(Ys),vo=t=>{let e=Object.create($s);return e.value=t,e};var mr=Symbol.for("effect/Either"),Mo={...$,[mr]:{_R:t=>t},[y](){return this.toJSON()},toString(){return E(this.toJSON())}},Zs=Object.assign(Object.create(Mo),{_tag:"Right",_op:"Right",[m](t){return xr(t)&&To(t)&&x(this.right,t.right)},[f](){return M(l(this._tag))(l(this.right))},toJSON(){return{_id:"Either",_tag:this._tag,right:O(this.right)}}}),Qs=Object.assign(Object.create(Mo),{_tag:"Left",_op:"Left",[m](t){return xr(t)&&wo(t)&&x(this.left,t.left)},[f](){return M(l(this._tag))(l(this.left))},toJSON(){return{_id:"Either",_tag:this._tag,left:O(this.left)}}}),xr=t=>_(t,mr),wo=t=>t._tag==="Left",To=t=>t._tag==="Right",Ro=t=>{let e=Object.create(Qs);return e.left=t,e},No=t=>{let e=Object.create(Zs);return e.right=t,e};var zt=No,gr=Ro;var T=()=>Ao,V=vo;var P=dr,rt=hr;var Po=u(2,(t,e)=>P(t)?e():t.value);var Fo=Po(Xe);var $t=t=>Array.isArray(t)?t:Array.from(t);var Ca=Array.isArray;var _r=t=>Array.from(t).reverse();var yr=u(3,(t,e,r)=>$t(t).reduce((o,n,s)=>r(o,n,s),e));var Lo=Symbol.for("effect/Chunk");function ei(t,e,r,o,n){for(let s=e;s<Math.min(t.length,e+n);s++)r[o+s-e]=t[s];return r}var Uo=[],ri=t=>co((e,r)=>e.length===r.length&&St(e).every((o,n)=>t(o,bt(r,n)))),oi=ri(x),ni={[Lo]:{_A:t=>t},toString(){return E(this.toJSON())},toJSON(){return{_id:"Chunk",values:St(this).map(O)}},[y](){return this.toJSON()},[m](t){return Ho(t)&&oi(this,t)},[f](){return S(this,fe(St(this)))},[Symbol.iterator](){switch(this.backing._tag){case"IArray":return this.backing.array[Symbol.iterator]();case"IEmpty":return Uo[Symbol.iterator]();default:return St(this)[Symbol.iterator]()}},pipe(){return C(this,arguments)}},w=t=>{let e=Object.create(ni);switch(e.backing=t,t._tag){case"IEmpty":{e.length=0,e.depth=0,e.left=e,e.right=e;break}case"IConcat":{e.length=t.left.length+t.right.length,e.depth=1+Math.max(t.left.depth,t.right.depth),e.left=t.left,e.right=t.right;break}case"IArray":{e.length=t.array.length,e.depth=0,e.left=Y,e.right=Y;break}case"ISingleton":{e.length=1,e.depth=0,e.left=Y,e.right=Y;break}case"ISlice":{e.length=t.length,e.depth=t.chunk.depth+1,e.left=Y,e.right=Y;break}}return e},Ho=t=>_(t,Lo),Y=w({_tag:"IEmpty"}),lt=()=>Y,Yt=(...t)=>t.length===1?ft(t[0]):ci(t),ft=t=>w({_tag:"ISingleton",a:t}),qo=t=>Ho(t)?t:w({_tag:"IArray",array:$t(t)}),Sr=(t,e,r)=>{switch(t.backing._tag){case"IArray":{ei(t.backing.array,0,e,r,t.length);break}case"IConcat":{Sr(t.left,e,r),Sr(t.right,e,r+t.left.length);break}case"ISingleton":{e[r]=t.backing.a;break}case"ISlice":{let o=0,n=r;for(;o<t.length;)e[n]=bt(t,o),o+=1,n+=1;break}}};var si=t=>{switch(t.backing._tag){case"IEmpty":return Uo;case"IArray":return t.backing.array;default:{let e=new Array(t.length);return Sr(t,e,0),t.backing={_tag:"IArray",array:e},t.left=Y,t.right=Y,t.depth=0,e}}},St=si,ii=t=>{switch(t.backing._tag){case"IEmpty":case"ISingleton":return t;case"IArray":return w({_tag:"IArray",array:_r(t.backing.array)});case"IConcat":return w({_tag:"IConcat",left:Vt(t.backing.right),right:Vt(t.backing.left)});case"ISlice":return Do(_r(St(t)))}},Vt=ii;var Do=t=>w({_tag:"IArray",array:t}),ci=t=>Do(t),bt=u(2,(t,e)=>{switch(t.backing._tag){case"IEmpty":throw new Error("Index out of bounds");case"ISingleton":{if(e!==0)throw new Error("Index out of bounds");return t.backing.a}case"IArray":{if(e>=t.length||e<0)throw new Error("Index out of bounds");return t.backing.array[e]}case"IConcat":return e<t.left.length?bt(t.left,e):bt(t.right,e-t.left.length);case"ISlice":return bt(t.backing.chunk,e+t.backing.offset)}});var me=u(2,(t,e)=>K(ft(e),t));var K=u(2,(t,e)=>{if(t.backing._tag==="IEmpty")return e;if(e.backing._tag==="IEmpty")return t;let r=e.depth-t.depth;if(Math.abs(r)<=1)return w({_tag:"IConcat",left:t,right:e});if(r<-1)if(t.left.depth>=t.right.depth){let o=K(t.right,e);return w({_tag:"IConcat",left:t.left,right:o})}else{let o=K(t.right.right,e);if(o.depth===t.depth-3){let n=w({_tag:"IConcat",left:t.right.left,right:o});return w({_tag:"IConcat",left:t.left,right:n})}else{let n=w({_tag:"IConcat",left:t.left,right:t.right.left});return w({_tag:"IConcat",left:n,right:o})}}else if(e.right.depth>=e.left.depth){let o=K(t,e.left);return w({_tag:"IConcat",left:o,right:e.right})}else{let o=K(t,e.left.left);if(o.depth===e.depth-3){let n=w({_tag:"IConcat",left:o,right:e.left.right});return w({_tag:"IConcat",left:n,right:e.right})}else{let n=w({_tag:"IConcat",left:e.left.right,right:e.right});return w({_tag:"IConcat",left:o,right:n})}}});var Bo=t=>t.length===0,xe=t=>t.length>0;var jo=t=>bt(t,0),ge=jo;var Go=Symbol.for("effect/Context/Tag"),_e=Symbol.for("effect/Context/Reference"),ai="effect/STM",pi=Symbol.for(ai),zo={...$,_op:"Tag",[pi]:et,[Go]:{_Service:t=>t,_Identifier:t=>t},toString(){return E(this.toJSON())},toJSON(){return{_id:"Tag",key:this.key,stack:this.stack}},[y](){return this.toJSON()},of(t){return t},context(t){return Cr(this,t)}},ui={...zo,[_e]:_e};var Jo=t=>()=>{let e=Error.stackTraceLimit;Error.stackTraceLimit=2;let r=new Error;Error.stackTraceLimit=e;function o(){}return Object.setPrototypeOf(o,zo),o.key=t,Object.defineProperty(o,"stack",{get(){return r.stack}}),o},$o=()=>(t,e)=>{let r=Error.stackTraceLimit;Error.stackTraceLimit=2;let o=new Error;Error.stackTraceLimit=r;function n(){}return Object.setPrototypeOf(n,ui),n.key=t,n.defaultValue=e.defaultValue,Object.defineProperty(n,"stack",{get(){return o.stack}}),n},Er=Symbol.for("effect/Context"),li={[Er]:{_Services:t=>t},[m](t){if(Vo(t)&&this.unsafeMap.size===t.unsafeMap.size){for(let e of this.unsafeMap.keys())if(!t.unsafeMap.has(e)||!x(this.unsafeMap.get(e),t.unsafeMap.get(e)))return!1;return!0}return!1},[f](){return S(this,le(this.unsafeMap.size))},pipe(){return C(this,arguments)},toString(){return E(this.toJSON())},toJSON(){return{_id:"Context",services:Array.from(this.unsafeMap).map(O)}},[y](){return this.toJSON()}},ye=t=>{let e=Object.create(li);return e.unsafeMap=t,e},fi=t=>{let e=new Error(`Service not found${t.key?`: ${String(t.key)}`:""}`);if(t.stack){let r=t.stack.split(`
2
- `);if(r.length>2){let o=r[2].match(/at (.*)/);o&&(e.message=e.message+` (defined at ${o[1]})`)}}if(e.stack){let r=e.stack.split(`
3
- `);r.splice(1,3),e.stack=r.join(`
4
- `)}return e},Vo=t=>_(t,Er);var Cr=(t,e)=>ye(new Map([[t.key,e]])),Yo=u(3,(t,e,r)=>{let o=new Map(t.unsafeMap);return o.set(e.key,r),ye(o)}),br=L("effect/Context/defaultValueCache",()=>new Map),Ko=t=>{if(br.has(t.key))return br.get(t.key);let e=t.defaultValue();return br.set(t.key,e),e},Zo=(t,e)=>t.unsafeMap.has(e.key)?t.unsafeMap.get(e.key):Ko(e),Qo=u(2,(t,e)=>{if(!t.unsafeMap.has(e.key)){if(_e in e)return Ko(e);throw fi(e)}return t.unsafeMap.get(e.key)});var Xo=u(2,(t,e)=>{let r=new Map(t.unsafeMap);for(let[o,n]of e.unsafeMap)r.set(o,n);return ye(r)});var en=Cr,rn=Yo;var on=Qo;var nn=Xo;var Oe=Jo,q=$o;var kr=Math.pow(2,5),sn=kr-1,cn=kr/2,an=kr/4;function di(t){return t-=t>>1&1431655765,t=(t&858993459)+(t>>2&858993459),t=t+(t>>4)&252645135,t+=t>>8,t+=t>>16,t&127}function ot(t,e){return e>>>t&sn}function nt(t){return 1<<t}function Se(t,e){return di(t&e-1)}var pn=(t,e)=>({value:t,previous:e});function dt(t,e,r,o){let n=o;if(!t){let s=o.length;n=new Array(s);for(let i=0;i<s;++i)n[i]=o[i]}return n[e]=r,n}function Ir(t,e,r){let o=r.length-1,n=0,s=0,i=r;if(t)n=s=e;else for(i=new Array(o);n<e;)i[s++]=r[n++];for(++n;n<=o;)i[s++]=r[n++];return t&&(i.length=o),i}function un(t,e,r,o){let n=o.length;if(t){let a=n;for(;a>=e;)o[a--]=o[a];return o[e]=r,o}let s=0,i=0,c=new Array(n+1);for(;s<e;)c[i++]=o[s++];for(c[e]=r;s<n;)c[++i]=o[s++];return c}var Z=class t{_tag="EmptyNode";modify(e,r,o,n,s,i){let c=o(T());return P(c)?new t:(++i.value,new Ct(e,n,s,c))}};function z(t){return or(t,"EmptyNode")}function mi(t){return z(t)||t._tag==="LeafNode"||t._tag==="CollisionNode"}function be(t,e){return z(t)?!1:e===t.edit}var Ct=class t{edit;hash;key;value;_tag="LeafNode";constructor(e,r,o,n){this.edit=e,this.hash=r,this.key=o,this.value=n}modify(e,r,o,n,s,i){if(x(s,this.key)){let a=o(this.value);return a===this.value?this:P(a)?(--i.value,new Z):be(this,e)?(this.value=a,this):new t(e,n,s,a)}let c=o(T());return P(c)?this:(++i.value,ln(e,r,this.hash,this,n,new t(e,n,s,c)))}},Ar=class t{edit;hash;children;_tag="CollisionNode";constructor(e,r,o){this.edit=e,this.hash=r,this.children=o}modify(e,r,o,n,s,i){if(n===this.hash){let a=be(this,e),p=this.updateCollisionList(a,e,this.hash,this.children,o,s,i);return p===this.children?this:p.length>1?new t(e,this.hash,p):p[0]}let c=o(T());return P(c)?this:(++i.value,ln(e,r,this.hash,this,n,new Ct(e,n,s,c)))}updateCollisionList(e,r,o,n,s,i,c){let a=n.length;for(let h=0;h<a;++h){let g=n[h];if("key"in g&&x(i,g.key)){let v=g.value,I=s(v);return I===v?n:P(I)?(--c.value,Ir(e,h,n)):dt(e,h,new Ct(r,o,i,I),n)}}let p=s(T());return P(p)?n:(++c.value,dt(e,a,new Ct(r,o,i,p),n))}},Kt=class t{edit;mask;children;_tag="IndexedNode";constructor(e,r,o){this.edit=e,this.mask=r,this.children=o}modify(e,r,o,n,s,i){let c=this.mask,a=this.children,p=ot(r,n),h=nt(p),g=Se(c,h),v=c&h,I=be(this,e);if(!v){let pt=new Z().modify(e,r+5,o,n,s,i);return pt?a.length>=cn?gi(e,p,pt,c,a):new t(e,c|h,un(I,g,pt,a)):this}let Dt=a[g],it=Dt.modify(e,r+5,o,n,s,i);if(Dt===it)return this;let ct=c,at;if(z(it)){if(ct&=~h,!ct)return new Z;if(a.length<=2&&mi(a[g^1]))return a[g^1];at=Ir(I,g,a)}else at=dt(I,g,it,a);return I?(this.mask=ct,this.children=at,this):new t(e,ct,at)}},vr=class t{edit;size;children;_tag="ArrayNode";constructor(e,r,o){this.edit=e,this.size=r,this.children=o}modify(e,r,o,n,s,i){let c=this.size,a=this.children,p=ot(r,n),h=a[p],g=(h||new Z).modify(e,r+5,o,n,s,i);if(h===g)return this;let v=be(this,e),I;if(z(h)&&!z(g))++c,I=dt(v,p,g,a);else if(!z(h)&&z(g)){if(--c,c<=an)return xi(e,c,p,a);I=dt(v,p,new Z,a)}else I=dt(v,p,g,a);return v?(this.size=c,this.children=I,this):new t(e,c,I)}};function xi(t,e,r,o){let n=new Array(e-1),s=0,i=0;for(let c=0,a=o.length;c<a;++c)if(c!==r){let p=o[c];p&&!z(p)&&(n[s++]=p,i|=1<<c)}return new Kt(t,i,n)}function gi(t,e,r,o,n){let s=[],i=o,c=0;for(let a=0;i;++a)i&1&&(s[a]=n[c++]),i>>>=1;return s[e]=r,new vr(t,c+1,s)}function _i(t,e,r,o,n,s){if(r===n)return new Ar(t,r,[s,o]);let i=ot(e,r),c=ot(e,n);if(i===c)return a=>new Kt(t,nt(i)|nt(c),[a]);{let a=i<c?[o,s]:[s,o];return new Kt(t,nt(i)|nt(c),a)}}function ln(t,e,r,o,n,s){let i,c=e;for(;;){let a=_i(t,c,r,o,n,s);if(typeof a=="function")i=pn(a,i),c=c+5;else{let p=a;for(;i!=null;)p=i.value(p),i=i.previous;return p}}}var fn="effect/HashMap",Mr=Symbol.for(fn),Oi={[Mr]:Mr,[Symbol.iterator](){return new Ee(this,(t,e)=>[t,e])},[f](){let t=l(fn);for(let e of this)t^=b(l(e[0]),M(l(e[1])));return S(this,t)},[m](t){if(bi(t)){if(t._size!==this._size)return!1;for(let e of this){let r=b(t,Ei(e[0],l(e[0])));if(P(r))return!1;if(!x(e[1],r.value))return!1}return!0}return!1},toString(){return E(this.toJSON())},toJSON(){return{_id:"HashMap",values:Array.from(this).map(O)}},[y](){return this.toJSON()},pipe(){return C(this,arguments)}},Tr=(t,e,r,o)=>{let n=Object.create(Oi);return n._editable=t,n._edit=e,n._root=r,n._size=o,n},Ee=class t{map;f;v;constructor(e,r){this.map=e,this.f=r,this.v=dn(this.map._root,this.f,void 0)}next(){if(P(this.v))return{done:!0,value:void 0};let e=this.v.value;return this.v=Ce(e.cont),{done:!1,value:e.value}}[Symbol.iterator](){return new t(this.map,this.f)}},Ce=t=>t?hn(t[0],t[1],t[2],t[3],t[4]):T(),dn=(t,e,r=void 0)=>{switch(t._tag){case"LeafNode":return rt(t.value)?V({value:e(t.key,t.value.value),cont:r}):Ce(r);case"CollisionNode":case"ArrayNode":case"IndexedNode":{let o=t.children;return hn(o.length,o,0,e,r)}default:return Ce(r)}},hn=(t,e,r,o,n)=>{for(;r<t;){let s=e[r++];if(s&&!z(s))return dn(s,o,[t,e,r,o,n])}return Ce(n)},Si=Tr(!1,0,new Z,0),mn=()=>Si;var bi=t=>_(t,Mr);var Ei=u(3,(t,e,r)=>{let o=t._root,n=0;for(;;)switch(o._tag){case"LeafNode":return x(e,o.key)?o.value:T();case"CollisionNode":{if(r===o.hash){let s=o.children;for(let i=0,c=s.length;i<c;++i){let a=s[i];if("key"in a&&x(e,a.key))return a.value}}return T()}case"IndexedNode":{let s=ot(n,r),i=nt(s);if(o.mask&i){o=o.children[Se(o.mask,i)],n+=5;break}return T()}case"ArrayNode":{if(o=o.children[ot(n,r)],o){n+=5;break}return T()}default:return T()}});var Rr=u(3,(t,e,r)=>ki(t,e,()=>V(r))),Ci=u(3,(t,e,r)=>t._editable?(t._root=e,t._size=r,t):e===t._root?t:Tr(t._editable,t._edit,e,r)),xn=t=>new Ee(t,e=>e);var ke=t=>t._size,gn=t=>Tr(!0,t._edit+1,t._root,t._size);var ki=u(3,(t,e,r)=>Ii(t,e,l(e),r)),Ii=u(4,(t,e,r,o)=>{let n={value:t._size},s=t._root.modify(t._editable?t._edit:NaN,0,o,r,e,n);return b(t,Ci(s,n.value))});var _n=u(2,(t,e)=>yn(t,void 0,(r,o,n)=>e(o,n))),yn=u(3,(t,e,r)=>{let o=t._root;if(o._tag==="LeafNode")return rt(o.value)?r(e,o.value.value,o.key):e;if(o._tag==="EmptyNode")return e;let n=[o.children],s;for(;s=n.pop();)for(let i=0,c=s.length;i<c;){let a=s[i++];a&&!z(a)&&(a._tag==="LeafNode"?rt(a.value)&&(e=r(e,a.value.value,a.key)):n.push(a.children))}return e});var On="effect/HashSet",Ie=Symbol.for(On),vi={[Ie]:Ie,[Symbol.iterator](){return xn(this._keyMap)},[f](){return S(this,M(l(this._keyMap))(l(On)))},[m](t){return Sn(t)?ke(this._keyMap)===ke(t._keyMap)&&x(this._keyMap,t._keyMap):!1},toString(){return E(this.toJSON())},toJSON(){return{_id:"HashSet",values:Array.from(this).map(O)}},[y](){return this.toJSON()},pipe(){return C(this,arguments)}},Nr=t=>{let e=Object.create(vi);return e._keyMap=t,e},Sn=t=>_(t,Ie),Mi=Nr(mn()),Pr=()=>Mi;var bn=t=>ke(t._keyMap),En=t=>Nr(gn(t._keyMap)),Cn=t=>(t._keyMap._editable=!1,t),kn=u(2,(t,e)=>{let r=En(t);return e(r),Cn(r)}),Ae=u(2,(t,e)=>t._keyMap._editable?(Rr(e,!0)(t._keyMap),t):Nr(Rr(e,!0)(t._keyMap)));var In=u(2,(t,e)=>kn(Pr(),r=>{An(t,o=>Ae(r,o));for(let o of e)Ae(r,o)}));var An=u(2,(t,e)=>_n(t._keyMap,(r,o)=>e(o)));var Zt=Pr;var vn=bn;var ve=Ae;var Me=In;var Ri=Object.assign(Object.create(Array.prototype),{[f](){return S(this,fe(this))},[m](t){return Array.isArray(t)&&this.length===t.length?this.every((e,r)=>x(e,t[r])):!1}}),Mn=function(){function t(e){e&&Object.assign(this,e)}return t.prototype=pr,t}();var Fr="Die",we="Empty",Te="Fail",Lr="Interrupt",It="Parallel",At="Sequential";var Pn="effect/Cause",Fn=Symbol.for(Pn),Fi={_E:t=>t},Hr={[Fn]:Fi,[f](){return b(l(Pn),M(l(Hi(this))),S(this))},[m](t){return Li(t)&&Ui(this,t)},pipe(){return C(this,arguments)},toJSON(){switch(this._tag){case"Empty":return{_id:"Cause",_tag:this._tag};case"Die":return{_id:"Cause",_tag:this._tag,defect:O(this.defect)};case"Interrupt":return{_id:"Cause",_tag:this._tag,fiberId:this.fiberId.toJSON()};case"Fail":return{_id:"Cause",_tag:this._tag,failure:O(this.error)};case"Sequential":case"Parallel":return{_id:"Cause",_tag:this._tag,left:O(this.left),right:O(this.right)}}},toString(){return qr(this)},[y](){return this.toJSON()}};var Ne=t=>{let e=Object.create(Hr);return e._tag=Te,e.error=t,e};var Ln=(t,e)=>{let r=Object.create(Hr);return r._tag=It,r.left=t,r.right=e,r},Qt=(t,e)=>{let r=Object.create(Hr);return r._tag=At,r.left=t,r.right=e,r},Li=t=>_(t,Fn);var Un=t=>Hn(void 0,Di)(t);var Ui=(t,e)=>{let r=ft(t),o=ft(e);for(;xe(r)&&xe(o);){let[n,s]=b(ge(r),Rn([Zt(),lt()],([a,p],h)=>{let[g,v]=Ur(h);return V([b(a,Me(g)),b(p,K(v))])})),[i,c]=b(ge(o),Rn([Zt(),lt()],([a,p],h)=>{let[g,v]=Ur(h);return V([b(a,Me(g)),b(p,K(v))])}));if(!x(n,i))return!1;r=s,o=c}return!0},Hi=t=>qi(ft(t),lt()),qi=(t,e)=>{for(;;){let[r,o]=b(t,yr([Zt(),lt()],([s,i],c)=>{let[a,p]=Ur(c);return[b(s,Me(a)),b(i,K(p))]})),n=vn(r)>0?b(e,me(r)):e;if(Bo(o))return Vt(n);t=o,e=n}throw new Error(Gt("Cause.flattenCauseLoop"))};var Ur=t=>{let e=t,r=[],o=Zt(),n=lt();for(;e!==void 0;)switch(e._tag){case we:{if(r.length===0)return[o,n];e=r.pop();break}case Te:{if(o=ve(o,Yt(e._tag,e.error)),r.length===0)return[o,n];e=r.pop();break}case Fr:{if(o=ve(o,Yt(e._tag,e.defect)),r.length===0)return[o,n];e=r.pop();break}case Lr:{if(o=ve(o,Yt(e._tag,e.fiberId)),r.length===0)return[o,n];e=r.pop();break}case At:{switch(e.left._tag){case we:{e=e.right;break}case At:{e=Qt(e.left.left,Qt(e.left.right,e.right));break}case It:{e=Ln(Qt(e.left.left,e.right),Qt(e.left.right,e.right));break}default:{n=me(n,e.right),e=e.left;break}}break}case It:{r.push(e.right),e=e.left;break}}throw new Error(Gt("Cause.evaluateCauseLoop"))};var Di={emptyCase:ae,failCase:Qe,dieCase:Qe,interruptCase:ae,sequentialCase:(t,e,r)=>e&&r,parallelCase:(t,e,r)=>e&&r};var wn="SequentialCase",Tn="ParallelCase";var Rn=u(3,(t,e,r)=>{let o=e,n=t,s=[];for(;n!==void 0;){let i=r(o,n);switch(o=rt(i)?i.value:o,n._tag){case At:{s.push(n.right),n=n.left;break}case It:{s.push(n.right),n=n.left;break}default:{n=void 0;break}}n===void 0&&s.length>0&&(n=s.pop())}return o}),Hn=u(3,(t,e,r)=>{let o=[t],n=[];for(;o.length>0;){let i=o.pop();switch(i._tag){case we:{n.push(zt(r.emptyCase(e)));break}case Te:{n.push(zt(r.failCase(e,i.error)));break}case Fr:{n.push(zt(r.dieCase(e,i.defect)));break}case Lr:{n.push(zt(r.interruptCase(e,i.fiberId)));break}case At:{o.push(i.right),o.push(i.left),n.push(gr({_tag:wn}));break}case It:{o.push(i.right),o.push(i.left),n.push(gr({_tag:Tn}));break}}}let s=[];for(;n.length>0;){let i=n.pop();switch(i._tag){case"Left":{switch(i.left._tag){case wn:{let c=s.pop(),a=s.pop(),p=r.sequentialCase(e,c,a);s.push(p);break}case Tn:{let c=s.pop(),a=s.pop(),p=r.parallelCase(e,c,a);s.push(p);break}}break}case"Right":{s.push(i.right);break}}}if(s.length===0)throw new Error("BUG: Cause.reduceWithContext - please report an issue at https://github.com/Effect-TS/effect/issues");return s.pop()}),qr=(t,e)=>Un(t)?"All fibers interrupted without errors.":zi(t).map(function(r){return e?.renderErrorCause!==!0||r.cause===void 0?r.stack:`${r.stack} {
5
- ${qn(r.cause," ")}
6
- }`}).join(`
7
- `),qn=(t,e)=>{let r=t.stack.split(`
8
- `),o=`${e}[cause]: ${r[0]}`;for(let n=1,s=r.length;n<s;n++)o+=`
9
- ${e}${r[n]}`;return t.cause&&(o+=` {
10
- ${qn(t.cause,`${e} `)}
11
- ${e}}`),o},Re=class t extends globalThis.Error{span=void 0;constructor(e){let r=typeof e=="object"&&e!==null,o=Error.stackTraceLimit;Error.stackTraceLimit=1,super(Bi(e),r&&"cause"in e&&typeof e.cause<"u"?{cause:new t(e.cause)}:void 0),this.message===""&&(this.message="An error has occurred"),Error.stackTraceLimit=o,this.name=e instanceof Error?e.name:"Error",r&&(Nn in e&&(this.span=e[Nn]),Object.keys(e).forEach(n=>{n in this||(this[n]=e[n])})),this.stack=Gi(`${this.name}: ${this.message}`,e instanceof Error&&e.stack?e.stack:"",this.span)}},Bi=t=>{if(typeof t=="string")return t;if(typeof t=="object"&&t!==null&&t instanceof Error)return t.message;try{if(_(t,"toString")&&Wt(t.toString)&&t.toString!==Object.prototype.toString&&t.toString!==globalThis.Array.prototype.toString)return t.toString()}catch{}return ir(t)},ji=/\((.*)\)/g,Wi=L("effect/Tracer/spanToTrace",()=>new WeakMap),Gi=(t,e,r)=>{let o=[t],n=e.startsWith(t)?e.slice(t.length).split(`
12
- `):e.split(`
13
- `);for(let s=1;s<n.length&&!n[s].includes("Generator.next");s++){if(n[s].includes("effect_internal_function")){o.pop();break}o.push(n[s].replace(/at .*effect_instruction_i.*\((.*)\)/,"at $1").replace(/EffectPrimitive\.\w+/,"<anonymous>"))}if(r){let s=r,i=0;for(;s&&s._tag==="Span"&&i<10;){let c=Wi.get(s);if(typeof c=="function"){let a=c();if(typeof a=="string"){let p=a.matchAll(ji),h=!1;for(let[,g]of p)h=!0,o.push(` at ${s.name} (${g})`);h||o.push(` at ${s.name} (${a.replace(/^at /,"")})`)}else o.push(` at ${s.name}`)}else o.push(` at ${s.name}`);s=Fo(s.parent),i++}}return o.join(`
14
- `)},Nn=Symbol.for("effect/SpanAnnotation"),zi=t=>Hn(t,void 0,{emptyCase:()=>[],dieCase:(e,r)=>[new Re(r)],failCase:(e,r)=>[new Re(r)],interruptCase:()=>[],parallelCase:(e,r,o)=>[...r,...o],sequentialCase:(e,r,o)=>[...r,...o]});var vt=class t{self;called=!1;constructor(e){this.self=e}next(e){return this.called?{value:e,done:!0}:(this.called=!0,{value:this.self,done:!1})}return(e){return{value:e,done:!0}}throw(e){throw e}[Symbol.iterator](){return new t(this.self)}};var Pe=Symbol.for("effect/Effect");var Dr=class{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[Pe]=et;constructor(e){this._op=e}[m](e){return this===e}[f](){return S(this,Ot(this))}pipe(){return C(this,arguments)}toJSON(){return{_id:"Effect",_op:this._op,effect_instruction_i0:O(this.effect_instruction_i0),effect_instruction_i1:O(this.effect_instruction_i1),effect_instruction_i2:O(this.effect_instruction_i2)}}toString(){return E(this.toJSON())}[y](){return this.toJSON()}[Symbol.iterator](){return new vt(new J(this))}},Br=class{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[Pe]=et;constructor(e){this._op=e,this._tag=e}[m](e){return Qn(e)&&e._op==="Failure"&&x(this.effect_instruction_i0,e.effect_instruction_i0)}[f](){return b(U(this._tag),M(l(this.effect_instruction_i0)),S(this))}get cause(){return this.effect_instruction_i0}pipe(){return C(this,arguments)}toJSON(){return{_id:"Exit",_tag:this._op,cause:this.cause.toJSON()}}toString(){return E(this.toJSON())}[y](){return this.toJSON()}[Symbol.iterator](){return new vt(new J(this))}},Dn=class{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[Pe]=et;constructor(e){this._op=e,this._tag=e}[m](e){return Qn(e)&&e._op==="Success"&&x(this.effect_instruction_i0,e.effect_instruction_i0)}[f](){return b(U(this._tag),M(l(this.effect_instruction_i0)),S(this))}get value(){return this.effect_instruction_i0}pipe(){return C(this,arguments)}toJSON(){return{_id:"Exit",_tag:this._op,value:O(this.value)}}toString(){return E(this.toJSON())}[y](){return this.toJSON()}[Symbol.iterator](){return new vt(new J(this))}},$i=t=>_(t,Pe),Vi=t=>{let e=new Dr(yo);return e.effect_instruction_i0=t,e};var jr=Symbol.for("effect/SpanAnnotation"),Bn=Symbol.for("effect/OriginalAnnotation");var Yi=(t,e)=>rt(e)?new Proxy(t,{has(r,o){return o===jr||o===Bn||o in r},get(r,o){return o===jr?e.value:o===Bn?t:r[o]}}):t;var Ki=t=>rr(t)&&!(jr in t)?Vi(e=>jn(Ne(Yi(t,tc(e))))):jn(Ne(t));var jn=t=>{let e=new Br(_o);return e.effect_instruction_i0=t,e};var Vu={_tag:"All",syslog:0,label:"ALL",ordinal:Number.MIN_SAFE_INTEGER,pipe(){return C(this,arguments)}};var Yu={_tag:"None",syslog:7,label:"OFF",ordinal:Number.MAX_SAFE_INTEGER,pipe(){return C(this,arguments)}};var Zi="effect/RequestResolver",Zn=Symbol.for(Zi),Qi={_A:t=>t,_R:t=>t},Wn=class t{runAll;target;[Zn]=Qi;constructor(e,r){this.runAll=e,this.target=r}[f](){return S(this,this.target?l(this.target):Ot(this))}[m](e){return this.target?Xi(e)&&x(this.target,e.target):this===e}identified(...e){return new t(this.runAll,qo(e))}pipe(){return C(this,arguments)}},Xi=t=>_(t,Zn);var Wr=function(){class t extends globalThis.Error{commit(){return Ki(this)}toJSON(){return{...this}}[y](){return this.toString!==globalThis.Error.prototype.toString?this.stack?`${this.toString()}
15
- ${this.stack.split(`
16
- `).slice(1).join(`
17
- `)}`:this.toString():"Bun"in globalThis?qr(Ne(this),{renderErrorCause:!0}):this}}return Object.assign(t.prototype,lr),t}(),ht=(t,e)=>{class r extends Wr{_tag=e}return Object.assign(r.prototype,t),r.prototype.name=e,r},Gn=Symbol.for("effect/Cause/errors/RuntimeException"),Ku=ht({[Gn]:Gn},"RuntimeException");var zn=Symbol.for("effect/Cause/errors/InterruptedException"),Zu=ht({[zn]:zn},"InterruptedException");var Jn=Symbol.for("effect/Cause/errors/IllegalArgument"),Qu=ht({[Jn]:Jn},"IllegalArgumentException");var $n=Symbol.for("effect/Cause/errors/NoSuchElement"),Xu=ht({[$n]:$n},"NoSuchElementException");var Vn=Symbol.for("effect/Cause/errors/InvalidPubSubCapacityException"),tl=ht({[Vn]:Vn},"InvalidPubSubCapacityException"),Yn=Symbol.for("effect/Cause/errors/ExceededCapacityException"),el=ht({[Yn]:Yn},"ExceededCapacityException");var Kn=Symbol.for("effect/Cause/errors/Timeout"),rl=ht({[Kn]:Kn},"TimeoutException");var Qn=t=>$i(t)&&"_tag"in t&&(t._tag==="Success"||t._tag==="Failure");var tc=t=>{let e=t.currentSpan;return e!==void 0&&e._tag==="Span"?V(e):T()};var Xt=Mn,Xn=t=>{class e extends Xt{_tag=t}return e};var rc=function(){let t=Symbol.for("effect/Data/Error/plainArgs");return class extends Wr{constructor(r){super(r?.message,r?.cause?{cause:r.cause}:void 0),r&&(Object.assign(this,r),Object.defineProperty(this,t,{value:r,enumerable:!1}))}toJSON(){return{...this[t],...this}}}}(),Mt=t=>{class e extends rc{_tag=t}return e.prototype.name=t,e};var ee=class t extends Xn("BotResponse"){static make(e){return new t({response:e})}static ignore=new t({})};var ts=$;var ss=Symbol.for("effect/Micro"),Fe=Symbol.for("effect/Micro/MicroExit"),re=t=>typeof t=="object"&&t!==null&&ss in t,es=Symbol.for("effect/Micro/MicroCause");var nc={_E:A},oe=class extends globalThis.Error{_tag;traces;[es];constructor(e,r,o){let n=`MicroCause.${e}`,s,i,c;if(r instanceof globalThis.Error){s=`(${n}) ${r.name}`,i=r.message;let a=i.split(`
18
- `).length;c=r.stack?`(${n}) ${r.stack.split(`
19
- `).slice(0,a+3).join(`
20
- `)}`:`${s}: ${i}`}else s=n,i=xo(r,0),c=`${s}: ${i}`;o.length>0&&(c+=`
21
- ${o.join(`
22
- `)}`),super(i),this._tag=e,this.traces=o,this[es]=nc,this.name=s,this.stack=c}pipe(){return C(this,arguments)}toString(){return this.stack}[y](){return this.stack}},zr=class extends oe{error;constructor(e,r=[]){super("Fail",e,r),this.error=e}},sc=(t,e=[])=>new zr(t,e),Jr=class extends oe{defect;constructor(e,r=[]){super("Die",e,r),this.defect=e}},ic=(t,e=[])=>new Jr(t,e),$r=class extends oe{constructor(e=[]){super("Interrupt","interrupted",e)}},cc=(t=[])=>new $r(t),ac=t=>t._tag==="Fail";var is=t=>t._tag==="Interrupt";var rs=Symbol.for("effect/Micro/MicroFiber"),pc={_A:A,_E:A},Le=class{context;interruptible;[rs];_stack=[];_observers=[];_exit;_children;currentOpCount=0;constructor(e,r=!0){this.context=e,this.interruptible=r,this[rs]=pc}getRef(e){return Zo(this.context,e)}addObserver(e){return this._exit?(e(this._exit),so):(this._observers.push(e),()=>{let r=this._observers.indexOf(e);r>=0&&this._observers.splice(r,1)})}_interrupted=!1;unsafeInterrupt(){this._exit||(this._interrupted=!0,this.interruptible&&this.evaluate(Qr))}unsafePoll(){return this._exit}evaluate(e){if(this._exit)return;if(this._yielded!==void 0){let n=this._yielded;this._yielded=void 0,n()}let r=this.runLoop(e);if(r===wt)return;let o=os.interruptChildren&&os.interruptChildren(this);if(o!==void 0)return this.evaluate(B(o,()=>r));this._exit=r;for(let n=0;n<this._observers.length;n++)this._observers[n](r);this._observers.length=0}runLoop(e){let r=!1,o=e;this.currentOpCount=0;try{for(;;){if(this.currentOpCount++,!r&&this.getRef(Nt).shouldYield(this)){r=!0;let n=o;o=B(us,()=>n)}if(o=o[Vr](this),o===wt){let n=this._yielded;return Fe in n?(this._yielded=void 0,n):wt}}}catch(n){return _(o,Vr)?He(n):He(`MicroFiber.runLoop: Not a valid effect: ${String(o)}`)}}getCont(e){for(;;){let r=this._stack.pop();if(!r)return;let o=r[Ue]&&r[Ue](this);if(o)return{[e]:o};if(r[e])return r}}_yielded=void 0;yieldWith(e){return this._yielded=e,wt}children(){return this._children??=new Set}},os=L("effect/Micro/fiberMiddleware",()=>({interruptChildren:void 0}));var uc=t=>De(e=>Rt(t.addObserver(r=>e(k(r)))));var cs=t=>X(()=>(t.unsafeInterrupt(),_c(uc(t)))),lc=t=>X(()=>{for(let o of t)o.unsafeInterrupt();let e=t[Symbol.iterator](),r=X(()=>{let o=e.next();for(;!o.done;){if(o.value.unsafePoll()){o=e.next();continue}let n=o.value;return De(s=>{n.addObserver(i=>{s(r)})})}return gt});return r}),as=Symbol.for("effect/Micro/identifier"),d=Symbol.for("effect/Micro/args"),Vr=Symbol.for("effect/Micro/evaluate"),Q=Symbol.for("effect/Micro/successCont"),mt=Symbol.for("effect/Micro/failureCont"),Ue=Symbol.for("effect/Micro/ensureCont"),wt=Symbol.for("effect/Micro/Yield"),fc={_A:A,_E:A,_R:A},dc={...ts,_op:"Micro",[ss]:fc,pipe(){return C(this,arguments)},[Symbol.iterator](){return new ut(new J(this))},toJSON(){return{_id:"Micro",op:this[as],...d in this?{args:this[d]}:void 0}},toString(){return E(this)},[y](){return E(this)}};function hc(t){return He("Micro.evaluate: Not implemented")}var ne=t=>({...dc,[as]:t.op,[Vr]:t.eval??hc,[Q]:t.contA,[mt]:t.contE,[Ue]:t.ensure}),tt=t=>{let e=ne(t);return function(){let r=Object.create(e);return r[d]=t.single===!1?arguments:arguments[0],r}},ps=t=>{let e={...ne(t),[Fe]:Fe,_tag:t.op,get[t.prop](){return this[d]},toJSON(){return{_id:"MicroExit",_tag:t.op,[t.prop]:this[d]}},[m](r){return Sc(r)&&r._tag===t.op&&x(this[d],r[d])},[f](){return S(this,M(U(t.op))(l(this[d])))}};return function(r){let o=Object.create(e);return o[d]=r,o[Q]=void 0,o[mt]=void 0,o[Ue]=void 0,o}},k=ps({op:"Success",prop:"value",eval(t){let e=t.getCont(Q);return e?e[Q](this[d],t):t.yieldWith(this)}}),Tt=ps({op:"Failure",prop:"cause",eval(t){let e=t.getCont(mt);for(;is(this[d])&&e&&t.interruptible;)e=t.getCont(mt);return e?e[mt](this[d],t):t.yieldWith(this)}}),D=t=>Tt(sc(t)),Rt=tt({op:"Sync",eval(t){let e=this[d](),r=t.getCont(Q);return r?r[Q](e,t):t.yieldWith(Be(e))}}),X=tt({op:"Suspend",eval(t){return this[d]()}}),mc=tt({op:"Yield",eval(t){let e=!1;return t.getRef(Nt).scheduleTask(()=>{e||t.evaluate(gt)},this[d]??0),t.yieldWith(()=>{e=!0})}}),us=mc(0);var xt=k(void 0);var Zr=t=>X(()=>{try{return k(t.try())}catch(e){return D(t.catch(e))}});var Pt=t=>ls(function(e,r){try{t.try(r).then(o=>e(k(o)),o=>e(D(t.catch(o))))}catch(o){e(D(t.catch(o)))}},t.try.length!==0),Ft=tt({op:"WithMicroFiber",eval(t){return this[d](t)}});var ls=tt({op:"Async",single:!1,eval(t){let e=this[d][0],r=!1,o=!1,n=this[d][1]?new AbortController:void 0,s=e(i=>{r||(r=!0,o?t.evaluate(i):o=i)},n?.signal);return o!==!1?o:(o=!0,t._yielded=()=>{r=!0},n===void 0&&s===void 0||t._stack.push(xc(()=>(r=!0,n?.abort(),s??gt))),wt)}}),xc=tt({op:"AsyncFinalizer",ensure(t){t.interruptible&&(t.interruptible=!1,t._stack.push(to(!0)))},contE(t,e){return is(t)?B(this[d](),()=>Tt(t)):Tt(t)}}),De=t=>ls(t,t.length>=2);var j=(...t)=>X(()=>gc(t.length===1?t[0]():t[1].call(t[0]))),gc=tt({op:"Iterator",contA(t,e){let r=this[d].next(t);return r.done?k(r.value):(e._stack.push(this),lo(r.value))},eval(t){return this[Q](void 0,t)}}),fs=u(2,(t,e)=>Oc(t,r=>e));var W=u(2,(t,e)=>B(t,r=>{let o=re(e)?e:typeof e=="function"?e(r):e;return re(o)?o:k(o)})),se=u(2,(t,e)=>B(t,r=>{let o=re(e)?e:typeof e=="function"?e(r):e;return re(o)?fs(o,r):k(r)})),_c=t=>B(t,e=>gt),ds=t=>Mc(t,{onFailure:je,onSuccess:Be});var B=u(2,(t,e)=>{let r=Object.create(yc);return r[d]=t,r[Q]=e,r}),yc=ne({op:"OnSuccess",eval(t){return t._stack.push(this),this[d]}});var Oc=u(2,(t,e)=>B(t,r=>k(e(r)))),Sc=t=>_(t,Fe),Be=k,je=Tt,Qr=je(cc());var He=t=>je(ic(t));var gt=Be(void 0),bc=t=>{for(let e of t)if(e._tag==="Failure")return e;return gt},Ec="setImmediate"in globalThis?globalThis.setImmediate:t=>setTimeout(t,0),qe=class{tasks=[];running=!1;scheduleTask(e,r){this.tasks.push(e),this.running||(this.running=!0,Ec(this.afterScheduled))}afterScheduled=()=>{this.running=!1,this.runTasks()};runTasks(){let e=this.tasks;this.tasks=[];for(let r=0,o=e.length;r<o;r++)e[r]()}shouldYield(e){return e.currentOpCount>=e.getRef(Yr)}flush(){for(;this.tasks.length>0;)this.runTasks()}},R=t=>Ft(e=>k(on(e.context,t)));var hs=u(2,(t,e)=>Ft(r=>{let o=r.context;return r.context=e(o),wc(t,()=>(r.context=o,xt))}));var Xr=u(2,(t,e)=>hs(t,nn(e))),We=u(3,(t,e,r)=>hs(t,rn(e,r)));var Yr=class extends q()("effect/Micro/currentMaxOpsBeforeYield",{defaultValue:()=>2048}){},Kr=class extends q()("effect/Micro/currentConcurrency",{defaultValue:()=>"unbounded"}){},Nt=class extends q()("effect/Micro/currentScheduler",{defaultValue:()=>new qe}){};var Cc=u(2,(t,e)=>X(()=>{let r=e.schedule?Date.now():0,o=0,n=B(ds(t),s=>{if(e.while!==void 0&&!e.while(s))return s;if(e.times!==void 0&&o>=e.times)return s;o++;let i=us;if(e.schedule!==void 0){let c=Date.now()-r,a=e.schedule(o,c);if(P(a))return s;i=gs(a.value)}return B(i,()=>n)});return n})),ms=u(t=>re(t[0]),(t,e)=>Cc(t,{...e,while:r=>r._tag==="Success"&&(e?.while===void 0||e.while(r.value))}));var kc=u(2,(t,e)=>{let r=Object.create(Ic);return r[d]=t,r[mt]=e,r}),Ic=ne({op:"OnFailure",eval(t){return t._stack.push(this),this[d]}}),Ac=u(3,(t,e,r)=>kc(t,o=>e(o)?r(o):Tt(o))),Ge=u(2,(t,e)=>Ac(t,ac,r=>e(r.error)));var xs=u(2,(t,e)=>{let r=Object.create(vc);return r[d]=t,r[Q]=e.onSuccess,r[mt]=e.onFailure,r}),vc=ne({op:"OnSuccessAndFailure",eval(t){return t._stack.push(this),this[d]}}),Mc=u(2,(t,e)=>xs(t,{onFailure:r=>Rt(()=>e.onFailure(r)),onSuccess:r=>Rt(()=>e.onSuccess(r))}));var gs=t=>De(e=>{let r=setTimeout(()=>{e(xt)},t);return Rt(()=>{clearTimeout(r)})}),_s=u(2,(t,e)=>W(gs(e),t));var Gr=Symbol.for("effect/Micro/MicroScope");var ns=class t{[Gr];state={_tag:"Open",finalizers:new Set};constructor(){this[Gr]=Gr}unsafeAddFinalizer(e){this.state._tag==="Open"&&this.state.finalizers.add(e)}addFinalizer(e){return X(()=>this.state._tag==="Open"?(this.state.finalizers.add(e),xt):e(this.state.exit))}unsafeRemoveFinalizer(e){this.state._tag==="Open"&&this.state.finalizers.delete(e)}close(e){return X(()=>{if(this.state._tag==="Open"){let r=Array.from(this.state.finalizers).reverse();return this.state={_tag:"Closed",exit:e},B(eo(r,o=>ds(o(e))),bc)}return xt})}get fork(){return Rt(()=>{let e=new t;if(this.state._tag==="Closed")return e.state=this.state,e;function r(o){return e.close(o)}return this.state.finalizers.add(r),e.unsafeAddFinalizer(o=>Rt(()=>this.unsafeRemoveFinalizer(r))),e})}};var wc=u(2,(t,e)=>Rc(r=>xs(r(t),{onFailure:o=>B(e(je(o)),()=>Tt(o)),onSuccess:o=>B(e(Be(o)),()=>k(o))})));var to=tt({op:"SetInterruptible",ensure(t){if(t.interruptible=this[d],t._interrupted&&t.interruptible)return()=>Qr}}),Tc=t=>Ft(e=>e.interruptible?t:(e.interruptible=!0,e._stack.push(to(!1)),e._interrupted?Qr:t)),Rc=t=>Ft(e=>e.interruptible?(e.interruptible=!1,e._stack.push(to(!0)),t(Tc)):t(A));var Nc=tt({op:"While",contA(t,e){return this[d].step(t),this[d].while()?(e._stack.push(this),this[d].body()):gt},eval(t){return this[d].while()?(t._stack.push(this),this[d].body()):gt}}),eo=(t,e,r)=>Ft(o=>{let n=r?.concurrency==="inherit"?o.getRef(Kr):r?.concurrency??1,s=n==="unbounded"?Number.POSITIVE_INFINITY:Math.max(1,n),i=$t(t),c=i.length;if(c===0)return r?.discard?xt:k([]);let a=r?.discard?void 0:new Array(c),p=0;return s===1?fs(Nc({while:()=>p<i.length,body:()=>e(i[p],p),step:a?h=>a[p++]=h:h=>p++}),a):De(h=>{let g=new Set,v,I=0,Dt=0,it=!1,ct=!1;function at(){for(it=!0;I<s&&p<c;){let pt=p,ws=i[pt];p++,I++;try{let Bt=ys(o,e(ws,pt),!0,!0);g.add(Bt),Bt.addObserver(jt=>{g.delete(Bt),!ct&&(jt._tag==="Failure"?v===void 0&&(v=jt,c=p,g.forEach(Ts=>Ts.unsafeInterrupt())):a!==void 0&&(a[pt]=jt.value),Dt++,I--,Dt===c?h(v??k(a)):!it&&I<s&&at())})}catch(Bt){v=He(Bt),c=p,g.forEach(jt=>jt.unsafeInterrupt())}}it=!1}return at(),X(()=>(ct=!0,p=c,lc(g)))})});var ys=(t,e,r=!1,o=!1)=>{let n=new Le(t.context,t.interruptible);return o||(t.children().add(n),n.addObserver(()=>t.children().delete(n))),r?n.evaluate(e):t.getRef(Nt).scheduleTask(()=>n.evaluate(e),0),n},Os=t=>Ft(e=>k(ys(e,t,!1,!0)));var Pc=(t,e)=>{let r=new Le(Nt.context(e?.scheduler??new qe));if(r.evaluate(t),e?.signal)if(e.signal.aborted)r.unsafeInterrupt();else{let o=()=>r.unsafeInterrupt();e.signal.addEventListener("abort",o,{once:!0}),r.addObserver(()=>e.signal.removeEventListener("abort",o))}return r},Fc=(t,e)=>new Promise((r,o)=>{Pc(t,e).addObserver(r)}),ze=(t,e)=>Fc(t,e).then(r=>{if(r._tag==="Failure")throw r.cause;return r.value});var Ss=t=>{let e=t[0];for(let r=1;r<t.length;r++)e+=t[r]==="_"?t[++r].toUpperCase():t[r];return e};var _t=class extends Mt("TgBotClientError"){};var bs=t=>typeof t=="object"&&t!=null&&"file_content"in t&&t.file_content instanceof Uint8Array&&"file_name"in t&&typeof t.file_name=="string",Es=t=>typeof t=="object"&&t!=null&&"ok"in t&&typeof t.ok=="boolean";var Cs="https://api.telegram.org",ro={"\u{1F525}":"5104841245755180586","\u{1F44D}":"5107584321108051014","\u{1F44E}":"5104858069142078462","\u2764\uFE0F":"5159385139981059251","\u{1F389}":"5046509860389126442","\u{1F4A9}":"5046589136895476101"},Ol=Object.keys(ro);var Je=class extends q()("TgBotApiBaseUrl",{defaultValue:()=>Cs}){},Ut=class extends Oe("TgBotApiToken")(){};var ks=t=>{let e=Object.entries(t);if(e.length==0)return;let r=new FormData;for(let[o,n]of e)n&&(typeof n!="object"?r.append(o,`${n}`):bs(n)?r.append(o,new Blob([n.file_content]),n.file_name):r.append(o,JSON.stringify(n)));return r};var ie=(t,e)=>j(function*(){let r=yield*R(Ut),o=yield*R(Je),n=yield*Pt({try:()=>fetch(`${o}/bot${r}/${Ss(t)}`,{body:ks(e)??null,method:"POST"}),catch:i=>new _t({cause:{_tag:"ClientInternalError",cause:i}})}),s=yield*Pt({try:()=>n.json(),catch:()=>new _t({cause:{_tag:"NotJsonResponse",response:n}})});return Es(s)?n.ok?s.result:yield*D(new _t({cause:{_tag:"NotOkResponse",...s.error_code?{errorCode:s.error_code}:void 0,...s.description?{details:s.description}:void 0}})):yield*D(new _t({cause:{_tag:"UnexpectedResponse",response:s}}))});var st=class extends Oe("BotUpdateHandlers")(){},Ht=class t extends Xt{static make(e){let r=e.batch_size??10,o=e.poll_timeout??10,n=e.max_empty_responses,s=e.log_level??"info",i=e.on_error;(r<10||r>100)&&(console.warn("Wrong batch_size, must be in [10..100], using 10 instead"),r=10),(o<2||o>120)&&(console.warn("Wrong poll_timeout, must be in [2..120], using 20 instead"),o=20),n&&n<2&&(console.warn("Wrong max_empty_responses, must be in [2..infinity], using infinity"),n=void 0),s||(s="info"),i||(i="stop");let c=new t({batch_size:r,poll_timeout:o,max_empty_responses:n,log_level:s,on_error:i});return console.log("bot poll settings",c),c}},F=class extends q()("BotSettings",{defaultValue(){return Ht.make({})}}){};var Is=t=>{for(let[e,r]of Object.entries(t))if(e!="update_id")return{type:e,...r}},qt=class extends Xt{},oo=t=>j(function*(){let e=yield*R(F),r=yield*R(st);return r.type=="single"?yield*vs(t,r,e):yield*As(t,r)}),As=(t,e)=>Zr({try:()=>e.on_batch(t),catch:A}).pipe(W(r=>r instanceof Promise?Pt({try:()=>r,catch:A}):k(r)),W(r=>new qt({hasErrors:!r,updates:t})),Ge(r=>(console.warn("handle batch error",{errorMessage:r instanceof Error?r.message:void 0,updates:t.map(o=>Object.keys(o).at(1)),error:r}),k(new qt({hasErrors:!0,updates:t}))))),yt=class extends Mt("HandleUpdateError"){},vs=(t,e,r)=>eo(t,o=>Ms(o,e).pipe(Ge(n=>(console.log("update handle error",{updateId:o.update_id,updateKey:Object.keys(o).at(1),name:n._tag,...n.cause instanceof Error?{error:n.cause.message}:void 0}),k(n)))),{concurrency:10}).pipe(W(o=>(r.log_level=="debug"&&console.debug("handle batch result",o),new qt({hasErrors:!o.every(n=>n==null),updates:t})))),Ms=(t,e)=>j(function*(){let r=Is(t);if(!r)return yield*D(new yt({name:"UnknownUpdate",update:t}));let o=e[`on_${r.type}`];if(!o)return yield*D(new yt({name:"HandlerNotDefined",update:t}));r.type=="message"&&"text"in r&&console.info("Got a new text message",{chatId:r.chat.id,chatType:r.chat.type,message:`${r.text.slice(0,5)}...`});let n,s=yield*Zr({try:()=>o(r),catch:c=>new yt({name:"BotHandlerError",update:t,cause:c})}).pipe(W(c=>c instanceof Promise?Pt({try:()=>c,catch:a=>new yt({name:"BotHandlerError",update:t,cause:a})}):k(c)),Ge(c=>(n=c,console.log("error",{updateId:t.update_id,updateKey:Object.keys(t).at(1),name:c._tag,...c.cause instanceof Error?{error:c.cause.message}:void 0}),k(ee.make({type:"message",text:`Some internal error has happend(${c.name}) while handling this message`,message_effect_id:ro["\u{1F4A9}"],...t.message?.message_id?{reply_parameters:{message_id:t.message?.message_id}}:void 0}))))),i=yield*R(F);if(!s&&i.log_level=="debug"){console.log(`Bot response is undefined for update with ID #${t.update_id}.`);return}if("chat"in r&&s.response){let c=yield*ie(`send_${s.response.type}`,{...s.response,chat_id:r.chat.id});i.log_level=="debug"&&console.debug("bot response",c)}return n});var $e=class extends q()("BotFetchUpdatesService",{defaultValue:()=>{let e={lastUpdateId:void 0,emptyResponses:0},r=Uc(e).pipe(se(n=>{let s=n.map(i=>i.update_id).sort().at(-1);console.log("updating last update id",s),e.lastUpdateId=s?s+1:void 0,console.log(e)})),o=Hc(e);return{state:e,fetchUpdates:r,commit:o}}}){},Ve=class extends Mt("FetchUpdatesError"){},Uc=t=>j(function*(){let e=yield*R(F);if(e.max_empty_responses&&t.emptyResponses==e.max_empty_responses)return yield*D(new Ve({name:"TooManyEmptyResponses"}));let r=t.lastUpdateId;e.log_level=="debug"&&console.debug("getting updates",t);let o=yield*ie("get_updates",{timeout:e.poll_timeout,...r?{offset:r}:void 0}).pipe(W(n=>n.sort(s=>s.update_id)));return o.length?(console.debug(`got a batch of updates (${o.length})`),t.emptyResponses=0,o):(t.emptyResponses+=1,[])}),Hc=t=>j(function*(){return console.log("commit",{pollState:t}),t.lastUpdateId?yield*ie("get_updates",{offset:t.lastUpdateId,limit:0}).pipe(W(W(R(F),e=>{e.log_level=="debug"&&console.debug("committed offset",t)}))):yield*D(new Ve({name:"NoUpdatesToCommit"}))});var ce=class extends q()("BotRunService",{defaultValue:()=>{console.log("Initiating BotRunService");let e={fiber:void 0};return{runBotInBackground:qc(e),getFiber:()=>e.fiber}}}){},qc=t=>j(function*(){console.log("running telegram chat bot");let e=yield*R($e),r=yield*R(F),o=s=>r.on_error=="continue"?!0:!s,n=_s(1e3)(e.fetchUpdates.pipe(W(oo),se(s=>s.updates.length>0&&o(s.hasErrors)?e.commit:xt))).pipe(ms({while:s=>o(s.hasErrors)}),Os,se(s=>s.addObserver(i=>{console.log("bot's fiber has been closed",i)})));t.fiber&&(console.log("killing previous bot's fiber"),yield*cs(t.fiber)),t.fiber=yield*n,console.log("Fetching bot updates via long polling...")});var no=t=>j(function*(){let e=yield*R(ce),r=en(Ut,t.bot_token);return yield*e.runBotInBackground.pipe(We(st,t.mode),We(F,Ht.make(t.poll??{})),Xr(r)),{reload:n=>e.runBotInBackground.pipe(We(st,n),Xr(r),ze),fiber:e.getFiber}});var Dc=t=>no(t).pipe(ze),Bc=t=>(Object.keys(t).length==0&&console.warn("No handlers are defined for bot"),t);0&&(module.exports={BatchUpdateResult,BotPollSettings,BotPollSettingsTag,BotResponse,BotRunService,BotUpdateHandlersTag,HandleUpdateError,defineBot,extractUpdate,handleEntireBatch,handleOneByOne,handleOneUpdate,handleUpdates,launchBot,runTgChatBot});
@@ -1,22 +0,0 @@
1
- var Ye=t=>typeof t=="function",u=function(t,e){if(typeof t=="function")return function(){return t(arguments)?e.apply(this,arguments):r=>e(r,...arguments)};switch(t){case 0:case 1:throw new RangeError(`Invalid arity ${t}`);case 2:return function(r,o){return arguments.length>=2?e(r,o):function(n){return e(n,r)}};case 3:return function(r,o,n){return arguments.length>=3?e(r,o,n):function(s){return e(s,r,o)}};case 4:return function(r,o,n,s){return arguments.length>=4?e(r,o,n,s):function(i){return e(i,r,o,n)}};case 5:return function(r,o,n,s,i){return arguments.length>=5?e(r,o,n,s,i):function(c){return e(c,r,o,n,s)}};default:return function(){if(arguments.length>=t)return e.apply(this,arguments);let r=arguments;return function(o){return e(o,...r)}}}};var A=t=>t;var Ke=t=>()=>t,ie=Ke(!0),Ze=Ke(!1);var Qe=Ke(void 0),ro=Qe;function b(t,e,r,o,n,s,i,c,a){switch(arguments.length){case 1:return t;case 2:return e(t);case 3:return r(e(t));case 4:return o(r(e(t)));case 5:return n(o(r(e(t))));case 6:return s(n(o(r(e(t)))));case 7:return i(s(n(o(r(e(t))))));case 8:return c(i(s(n(o(r(e(t)))))));case 9:return a(c(i(s(n(o(r(e(t))))))));default:{let p=arguments[0];for(let h=1;h<arguments.length;h++)p=arguments[h](p);return p}}}var no=t=>(e,r)=>e===r||t(e,r);var vs="3.12.0",ce=()=>vs;var tr=Symbol.for(`effect/GlobalValue/globalStoreId/${ce()}`);tr in globalThis||(globalThis[tr]=new Map);var Xe=globalThis[tr],F=(t,e)=>(Xe.has(t)||Xe.set(t,e()),Xe.get(t));var Bt=Ye;var Ms=t=>typeof t=="object"&&t!==null,er=t=>Ms(t)||Bt(t),_=u(2,(t,e)=>er(t)&&e in t),rr=u(2,(t,e)=>_(t,"_tag")&&t._tag===e);var jt=t=>`BUG: ${t} - please report an issue at https://github.com/Effect-TS/effect/issues`;var io=Symbol.for("effect/Gen/GenKind");var co=class{value;constructor(e){this.value=e}get _F(){return A}get _R(){return e=>e}get _O(){return e=>e}get _E(){return e=>e}[io]=io;[Symbol.iterator](){return new pt(this)}},pt=class t{self;called=!1;constructor(e){this.self=e}next(e){return this.called?{value:e,done:!0}:(this.called=!0,{value:this.self,done:!1})}return(e){return{value:e,done:!0}}throw(e){throw e}[Symbol.iterator](){return new t(this.self)}};var or=Symbol.for("effect/Utils/YieldWrap"),J=class{#t;constructor(e){this.#t=e}[or](){return this.#t}};function ao(t){if(typeof t=="object"&&t!==null&&or in t)return t[or]();throw new Error(jt("yieldWrapGet"))}var N=F("effect/Utils/isStructuralRegion",()=>({enabled:!1,tester:void 0}));var Dc=function*(){}.constructor;var nr=F(Symbol.for("effect/Hash/randomHashCache"),()=>new WeakMap),f=Symbol.for("effect/Hash"),l=t=>{if(N.enabled===!0)return 0;switch(typeof t){case"number":return pe(t);case"bigint":return L(t.toString(10));case"boolean":return L(String(t));case"symbol":return L(String(t));case"string":return L(t);case"undefined":return L("undefined");case"function":case"object":return t===null?L("null"):t instanceof Date?l(t.toISOString()):ws(t)?t[f]():yt(t);default:throw new Error(`BUG: unhandled typeof ${typeof t} - please report an issue at https://github.com/Effect-TS/effect/issues`)}},yt=t=>(nr.has(t)||nr.set(t,pe(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))),nr.get(t)),M=t=>e=>e*53^t,ae=t=>t&3221225471|t>>>1&1073741824,ws=t=>_(t,f),pe=t=>{if(t!==t||t===1/0)return 0;let e=t|0;for(e!==t&&(e^=t*4294967295);t>4294967295;)e^=t/=4294967295;return ae(e)},L=t=>{let e=5381,r=t.length;for(;r;)e=e*33^t.charCodeAt(--r);return ae(e)},Ts=(t,e)=>{let r=12289;for(let o=0;o<e.length;o++)r^=b(L(e[o]),M(l(t[e[o]])));return ae(r)},po=t=>Ts(t,Object.keys(t)),ue=t=>{let e=6151;for(let r=0;r<t.length;r++)e=b(e,M(l(t[r])));return ae(e)},S=function(){if(arguments.length===1){let r=arguments[0];return function(o){return Object.defineProperty(r,f,{value(){return o},enumerable:!1}),o}}let t=arguments[0],e=arguments[1];return Object.defineProperty(t,f,{value(){return e},enumerable:!1}),e};var m=Symbol.for("effect/Equal");function x(){return arguments.length===1?t=>le(t,arguments[0]):le(arguments[0],arguments[1])}function le(t,e){if(t===e)return!0;let r=typeof t;if(r!==typeof e)return!1;if(r==="object"||r==="function"){if(t!==null&&e!==null){if(uo(t)&&uo(e))return l(t)===l(e)&&t[m](e)?!0:N.enabled&&N.tester?N.tester(t,e):!1;if(t instanceof Date&&e instanceof Date)return t.toISOString()===e.toISOString()}if(N.enabled){if(Array.isArray(t)&&Array.isArray(e))return t.length===e.length&&t.every((o,n)=>le(o,e[n]));if(Object.getPrototypeOf(t)===Object.prototype&&Object.getPrototypeOf(t)===Object.prototype){let o=Object.keys(t),n=Object.keys(e);if(o.length===n.length){for(let s of o)if(!(s in e&&le(t[s],e[s])))return N.tester?N.tester(t,e):!1;return!0}}return N.tester?N.tester(t,e):!1}}return N.enabled&&N.tester?N.tester(t,e):!1}var uo=t=>_(t,m);var y=Symbol.for("nodejs.util.inspect.custom"),O=t=>{try{if(_(t,"toJSON")&&Bt(t.toJSON)&&t.toJSON.length===0)return t.toJSON();if(Array.isArray(t))return t.map(O)}catch{return{}}return Rs(t)},E=t=>JSON.stringify(t,null,2),Kc={toJSON(){return O(this)},[y](){return this.toJSON()},toString(){return E(this.toJSON())}},lo=class{[y](){return this.toJSON()}toString(){return E(this.toJSON())}},fo=(t,e=2)=>{if(typeof t=="string")return t;try{return typeof t=="object"?sr(t,e):String(t)}catch{return String(t)}},sr=(t,e)=>{let r=[],o=JSON.stringify(t,(n,s)=>typeof s=="object"&&s!==null?r.includes(s)?void 0:r.push(s)&&(fe.fiberRefs!==void 0&&ho(s)?s[ir](fe.fiberRefs):s):s,e);return r=void 0,o},ir=Symbol.for("effect/Inspectable/Redactable"),ho=t=>typeof t=="object"&&t!==null&&ir in t,fe=F("effect/Inspectable/redactableState",()=>({fiberRefs:void 0}));var Rs=t=>ho(t)&&fe.fiberRefs!==void 0?t[ir](fe.fiberRefs):t;var C=(t,e)=>{switch(e.length){case 0:return t;case 1:return e[0](t);case 2:return e[1](e[0](t));case 3:return e[2](e[1](e[0](t)));case 4:return e[3](e[2](e[1](e[0](t))));case 5:return e[4](e[3](e[2](e[1](e[0](t)))));case 6:return e[5](e[4](e[3](e[2](e[1](e[0](t))))));case 7:return e[6](e[5](e[4](e[3](e[2](e[1](e[0](t)))))));case 8:return e[7](e[6](e[5](e[4](e[3](e[2](e[1](e[0](t))))))));case 9:return e[8](e[7](e[6](e[5](e[4](e[3](e[2](e[1](e[0](t)))))))));default:{let r=t;for(let o=0,n=e.length;o<n;o++)r=e[o](r);return r}}};var cr="Commit",mo="Failure";var xo="WithRuntime";var _o=Symbol.for("effect/Effect"),yo=Symbol.for("effect/Stream"),Oo=Symbol.for("effect/Sink"),So=Symbol.for("effect/Channel"),et={_R:t=>t,_E:t=>t,_A:t=>t,_V:ce()},Ns={_A:t=>t,_In:t=>t,_L:t=>t,_E:t=>t,_R:t=>t},Ps={_Env:t=>t,_InErr:t=>t,_InElem:t=>t,_InDone:t=>t,_OutErr:t=>t,_OutElem:t=>t,_OutDone:t=>t},$={[_o]:et,[yo]:et,[Oo]:Ns,[So]:Ps,[m](t){return this===t},[f](){return S(this,yt(this))},[Symbol.iterator](){return new pt(new J(this))},pipe(){return C(this,arguments)}},ar={[f](){return S(this,po(this))},[m](t){let e=Object.keys(this),r=Object.keys(t);if(e.length!==r.length)return!1;for(let o of e)if(!(o in t&&x(this[o],t[o])))return!1;return!0}},pr={...$,_op:cr},ur={...pr,...ar};var bo=Symbol.for("effect/Option"),Eo={...$,[bo]:{_A:t=>t},[y](){return this.toJSON()},toString(){return E(this.toJSON())}},Ls=Object.assign(Object.create(Eo),{_tag:"Some",_op:"Some",[m](t){return lr(t)&&dr(t)&&x(this.value,t.value)},[f](){return S(this,M(l(this._tag))(l(this.value)))},toJSON(){return{_id:"Option",_tag:this._tag,value:O(this.value)}}}),Us=l("None"),Hs=Object.assign(Object.create(Eo),{_tag:"None",_op:"None",[m](t){return lr(t)&&fr(t)},[f](){return Us},toJSON(){return{_id:"Option",_tag:this._tag}}}),lr=t=>_(t,bo),fr=t=>t._tag==="None",dr=t=>t._tag==="Some",Co=Object.create(Hs),ko=t=>{let e=Object.create(Ls);return e.value=t,e};var hr=Symbol.for("effect/Either"),Io={...$,[hr]:{_R:t=>t},[y](){return this.toJSON()},toString(){return E(this.toJSON())}},Ds=Object.assign(Object.create(Io),{_tag:"Right",_op:"Right",[m](t){return mr(t)&&vo(t)&&x(this.right,t.right)},[f](){return M(l(this._tag))(l(this.right))},toJSON(){return{_id:"Either",_tag:this._tag,right:O(this.right)}}}),Bs=Object.assign(Object.create(Io),{_tag:"Left",_op:"Left",[m](t){return mr(t)&&Ao(t)&&x(this.left,t.left)},[f](){return M(l(this._tag))(l(this.left))},toJSON(){return{_id:"Either",_tag:this._tag,left:O(this.left)}}}),mr=t=>_(t,hr),Ao=t=>t._tag==="Left",vo=t=>t._tag==="Right",Mo=t=>{let e=Object.create(Bs);return e.left=t,e},wo=t=>{let e=Object.create(Ds);return e.right=t,e};var Wt=wo,xr=Mo;var T=()=>Co,V=ko;var P=fr,rt=dr;var To=u(2,(t,e)=>P(t)?e():t.value);var Ro=To(Qe);var zt=t=>Array.isArray(t)?t:Array.from(t);var da=Array.isArray;var gr=t=>Array.from(t).reverse();var _r=u(3,(t,e,r)=>zt(t).reduce((o,n,s)=>r(o,n,s),e));var No=Symbol.for("effect/Chunk");function Gs(t,e,r,o,n){for(let s=e;s<Math.min(t.length,e+n);s++)r[o+s-e]=t[s];return r}var Po=[],zs=t=>no((e,r)=>e.length===r.length&&Ot(e).every((o,n)=>t(o,St(r,n)))),Js=zs(x),$s={[No]:{_A:t=>t},toString(){return E(this.toJSON())},toJSON(){return{_id:"Chunk",values:Ot(this).map(O)}},[y](){return this.toJSON()},[m](t){return Fo(t)&&Js(this,t)},[f](){return S(this,ue(Ot(this)))},[Symbol.iterator](){switch(this.backing._tag){case"IArray":return this.backing.array[Symbol.iterator]();case"IEmpty":return Po[Symbol.iterator]();default:return Ot(this)[Symbol.iterator]()}},pipe(){return C(this,arguments)}},w=t=>{let e=Object.create($s);switch(e.backing=t,t._tag){case"IEmpty":{e.length=0,e.depth=0,e.left=e,e.right=e;break}case"IConcat":{e.length=t.left.length+t.right.length,e.depth=1+Math.max(t.left.depth,t.right.depth),e.left=t.left,e.right=t.right;break}case"IArray":{e.length=t.array.length,e.depth=0,e.left=Y,e.right=Y;break}case"ISingleton":{e.length=1,e.depth=0,e.left=Y,e.right=Y;break}case"ISlice":{e.length=t.length,e.depth=t.chunk.depth+1,e.left=Y,e.right=Y;break}}return e},Fo=t=>_(t,No),Y=w({_tag:"IEmpty"}),ut=()=>Y,$t=(...t)=>t.length===1?lt(t[0]):Ks(t),lt=t=>w({_tag:"ISingleton",a:t}),Lo=t=>Fo(t)?t:w({_tag:"IArray",array:zt(t)}),Or=(t,e,r)=>{switch(t.backing._tag){case"IArray":{Gs(t.backing.array,0,e,r,t.length);break}case"IConcat":{Or(t.left,e,r),Or(t.right,e,r+t.left.length);break}case"ISingleton":{e[r]=t.backing.a;break}case"ISlice":{let o=0,n=r;for(;o<t.length;)e[n]=St(t,o),o+=1,n+=1;break}}};var Vs=t=>{switch(t.backing._tag){case"IEmpty":return Po;case"IArray":return t.backing.array;default:{let e=new Array(t.length);return Or(t,e,0),t.backing={_tag:"IArray",array:e},t.left=Y,t.right=Y,t.depth=0,e}}},Ot=Vs,Ys=t=>{switch(t.backing._tag){case"IEmpty":case"ISingleton":return t;case"IArray":return w({_tag:"IArray",array:gr(t.backing.array)});case"IConcat":return w({_tag:"IConcat",left:Jt(t.backing.right),right:Jt(t.backing.left)});case"ISlice":return Uo(gr(Ot(t)))}},Jt=Ys;var Uo=t=>w({_tag:"IArray",array:t}),Ks=t=>Uo(t),St=u(2,(t,e)=>{switch(t.backing._tag){case"IEmpty":throw new Error("Index out of bounds");case"ISingleton":{if(e!==0)throw new Error("Index out of bounds");return t.backing.a}case"IArray":{if(e>=t.length||e<0)throw new Error("Index out of bounds");return t.backing.array[e]}case"IConcat":return e<t.left.length?St(t.left,e):St(t.right,e-t.left.length);case"ISlice":return St(t.backing.chunk,e+t.backing.offset)}});var de=u(2,(t,e)=>K(lt(e),t));var K=u(2,(t,e)=>{if(t.backing._tag==="IEmpty")return e;if(e.backing._tag==="IEmpty")return t;let r=e.depth-t.depth;if(Math.abs(r)<=1)return w({_tag:"IConcat",left:t,right:e});if(r<-1)if(t.left.depth>=t.right.depth){let o=K(t.right,e);return w({_tag:"IConcat",left:t.left,right:o})}else{let o=K(t.right.right,e);if(o.depth===t.depth-3){let n=w({_tag:"IConcat",left:t.right.left,right:o});return w({_tag:"IConcat",left:t.left,right:n})}else{let n=w({_tag:"IConcat",left:t.left,right:t.right.left});return w({_tag:"IConcat",left:n,right:o})}}else if(e.right.depth>=e.left.depth){let o=K(t,e.left);return w({_tag:"IConcat",left:o,right:e.right})}else{let o=K(t,e.left.left);if(o.depth===e.depth-3){let n=w({_tag:"IConcat",left:o,right:e.left.right});return w({_tag:"IConcat",left:n,right:e.right})}else{let n=w({_tag:"IConcat",left:e.left.right,right:e.right});return w({_tag:"IConcat",left:o,right:n})}}});var Ho=t=>t.length===0,he=t=>t.length>0;var qo=t=>St(t,0),me=qo;var Bo=Symbol.for("effect/Context/Tag"),xe=Symbol.for("effect/Context/Reference"),Zs="effect/STM",Qs=Symbol.for(Zs),jo={...$,_op:"Tag",[Qs]:et,[Bo]:{_Service:t=>t,_Identifier:t=>t},toString(){return E(this.toJSON())},toJSON(){return{_id:"Tag",key:this.key,stack:this.stack}},[y](){return this.toJSON()},of(t){return t},context(t){return Er(this,t)}},Xs={...jo,[xe]:xe};var Wo=t=>()=>{let e=Error.stackTraceLimit;Error.stackTraceLimit=2;let r=new Error;Error.stackTraceLimit=e;function o(){}return Object.setPrototypeOf(o,jo),o.key=t,Object.defineProperty(o,"stack",{get(){return r.stack}}),o},Go=()=>(t,e)=>{let r=Error.stackTraceLimit;Error.stackTraceLimit=2;let o=new Error;Error.stackTraceLimit=r;function n(){}return Object.setPrototypeOf(n,Xs),n.key=t,n.defaultValue=e.defaultValue,Object.defineProperty(n,"stack",{get(){return o.stack}}),n},br=Symbol.for("effect/Context"),ti={[br]:{_Services:t=>t},[m](t){if(zo(t)&&this.unsafeMap.size===t.unsafeMap.size){for(let e of this.unsafeMap.keys())if(!t.unsafeMap.has(e)||!x(this.unsafeMap.get(e),t.unsafeMap.get(e)))return!1;return!0}return!1},[f](){return S(this,pe(this.unsafeMap.size))},pipe(){return C(this,arguments)},toString(){return E(this.toJSON())},toJSON(){return{_id:"Context",services:Array.from(this.unsafeMap).map(O)}},[y](){return this.toJSON()}},ge=t=>{let e=Object.create(ti);return e.unsafeMap=t,e},ei=t=>{let e=new Error(`Service not found${t.key?`: ${String(t.key)}`:""}`);if(t.stack){let r=t.stack.split(`
2
- `);if(r.length>2){let o=r[2].match(/at (.*)/);o&&(e.message=e.message+` (defined at ${o[1]})`)}}if(e.stack){let r=e.stack.split(`
3
- `);r.splice(1,3),e.stack=r.join(`
4
- `)}return e},zo=t=>_(t,br);var Er=(t,e)=>ge(new Map([[t.key,e]])),Jo=u(3,(t,e,r)=>{let o=new Map(t.unsafeMap);return o.set(e.key,r),ge(o)}),Sr=F("effect/Context/defaultValueCache",()=>new Map),$o=t=>{if(Sr.has(t.key))return Sr.get(t.key);let e=t.defaultValue();return Sr.set(t.key,e),e},Vo=(t,e)=>t.unsafeMap.has(e.key)?t.unsafeMap.get(e.key):$o(e),Yo=u(2,(t,e)=>{if(!t.unsafeMap.has(e.key)){if(xe in e)return $o(e);throw ei(e)}return t.unsafeMap.get(e.key)});var Ko=u(2,(t,e)=>{let r=new Map(t.unsafeMap);for(let[o,n]of e.unsafeMap)r.set(o,n);return ge(r)});var Qo=Er,Xo=Jo;var tn=Yo;var en=Ko;var _e=Wo,H=Go;var Cr=Math.pow(2,5),rn=Cr-1,on=Cr/2,nn=Cr/4;function ri(t){return t-=t>>1&1431655765,t=(t&858993459)+(t>>2&858993459),t=t+(t>>4)&252645135,t+=t>>8,t+=t>>16,t&127}function ot(t,e){return e>>>t&rn}function nt(t){return 1<<t}function ye(t,e){return ri(t&e-1)}var sn=(t,e)=>({value:t,previous:e});function ft(t,e,r,o){let n=o;if(!t){let s=o.length;n=new Array(s);for(let i=0;i<s;++i)n[i]=o[i]}return n[e]=r,n}function kr(t,e,r){let o=r.length-1,n=0,s=0,i=r;if(t)n=s=e;else for(i=new Array(o);n<e;)i[s++]=r[n++];for(++n;n<=o;)i[s++]=r[n++];return t&&(i.length=o),i}function cn(t,e,r,o){let n=o.length;if(t){let a=n;for(;a>=e;)o[a--]=o[a];return o[e]=r,o}let s=0,i=0,c=new Array(n+1);for(;s<e;)c[i++]=o[s++];for(c[e]=r;s<n;)c[++i]=o[s++];return c}var Z=class t{_tag="EmptyNode";modify(e,r,o,n,s,i){let c=o(T());return P(c)?new t:(++i.value,new Et(e,n,s,c))}};function z(t){return rr(t,"EmptyNode")}function ni(t){return z(t)||t._tag==="LeafNode"||t._tag==="CollisionNode"}function Oe(t,e){return z(t)?!1:e===t.edit}var Et=class t{edit;hash;key;value;_tag="LeafNode";constructor(e,r,o,n){this.edit=e,this.hash=r,this.key=o,this.value=n}modify(e,r,o,n,s,i){if(x(s,this.key)){let a=o(this.value);return a===this.value?this:P(a)?(--i.value,new Z):Oe(this,e)?(this.value=a,this):new t(e,n,s,a)}let c=o(T());return P(c)?this:(++i.value,an(e,r,this.hash,this,n,new t(e,n,s,c)))}},Ir=class t{edit;hash;children;_tag="CollisionNode";constructor(e,r,o){this.edit=e,this.hash=r,this.children=o}modify(e,r,o,n,s,i){if(n===this.hash){let a=Oe(this,e),p=this.updateCollisionList(a,e,this.hash,this.children,o,s,i);return p===this.children?this:p.length>1?new t(e,this.hash,p):p[0]}let c=o(T());return P(c)?this:(++i.value,an(e,r,this.hash,this,n,new Et(e,n,s,c)))}updateCollisionList(e,r,o,n,s,i,c){let a=n.length;for(let h=0;h<a;++h){let g=n[h];if("key"in g&&x(i,g.key)){let v=g.value,I=s(v);return I===v?n:P(I)?(--c.value,kr(e,h,n)):ft(e,h,new Et(r,o,i,I),n)}}let p=s(T());return P(p)?n:(++c.value,ft(e,a,new Et(r,o,i,p),n))}},Vt=class t{edit;mask;children;_tag="IndexedNode";constructor(e,r,o){this.edit=e,this.mask=r,this.children=o}modify(e,r,o,n,s,i){let c=this.mask,a=this.children,p=ot(r,n),h=nt(p),g=ye(c,h),v=c&h,I=Oe(this,e);if(!v){let at=new Z().modify(e,r+5,o,n,s,i);return at?a.length>=on?ii(e,p,at,c,a):new t(e,c|h,cn(I,g,at,a)):this}let Ht=a[g],st=Ht.modify(e,r+5,o,n,s,i);if(Ht===st)return this;let it=c,ct;if(z(st)){if(it&=~h,!it)return new Z;if(a.length<=2&&ni(a[g^1]))return a[g^1];ct=kr(I,g,a)}else ct=ft(I,g,st,a);return I?(this.mask=it,this.children=ct,this):new t(e,it,ct)}},Ar=class t{edit;size;children;_tag="ArrayNode";constructor(e,r,o){this.edit=e,this.size=r,this.children=o}modify(e,r,o,n,s,i){let c=this.size,a=this.children,p=ot(r,n),h=a[p],g=(h||new Z).modify(e,r+5,o,n,s,i);if(h===g)return this;let v=Oe(this,e),I;if(z(h)&&!z(g))++c,I=ft(v,p,g,a);else if(!z(h)&&z(g)){if(--c,c<=nn)return si(e,c,p,a);I=ft(v,p,new Z,a)}else I=ft(v,p,g,a);return v?(this.size=c,this.children=I,this):new t(e,c,I)}};function si(t,e,r,o){let n=new Array(e-1),s=0,i=0;for(let c=0,a=o.length;c<a;++c)if(c!==r){let p=o[c];p&&!z(p)&&(n[s++]=p,i|=1<<c)}return new Vt(t,i,n)}function ii(t,e,r,o,n){let s=[],i=o,c=0;for(let a=0;i;++a)i&1&&(s[a]=n[c++]),i>>>=1;return s[e]=r,new Ar(t,c+1,s)}function ci(t,e,r,o,n,s){if(r===n)return new Ir(t,r,[s,o]);let i=ot(e,r),c=ot(e,n);if(i===c)return a=>new Vt(t,nt(i)|nt(c),[a]);{let a=i<c?[o,s]:[s,o];return new Vt(t,nt(i)|nt(c),a)}}function an(t,e,r,o,n,s){let i,c=e;for(;;){let a=ci(t,c,r,o,n,s);if(typeof a=="function")i=sn(a,i),c=c+5;else{let p=a;for(;i!=null;)p=i.value(p),i=i.previous;return p}}}var pn="effect/HashMap",vr=Symbol.for(pn),pi={[vr]:vr,[Symbol.iterator](){return new Se(this,(t,e)=>[t,e])},[f](){let t=l(pn);for(let e of this)t^=b(l(e[0]),M(l(e[1])));return S(this,t)},[m](t){if(li(t)){if(t._size!==this._size)return!1;for(let e of this){let r=b(t,fi(e[0],l(e[0])));if(P(r))return!1;if(!x(e[1],r.value))return!1}return!0}return!1},toString(){return E(this.toJSON())},toJSON(){return{_id:"HashMap",values:Array.from(this).map(O)}},[y](){return this.toJSON()},pipe(){return C(this,arguments)}},wr=(t,e,r,o)=>{let n=Object.create(pi);return n._editable=t,n._edit=e,n._root=r,n._size=o,n},Se=class t{map;f;v;constructor(e,r){this.map=e,this.f=r,this.v=un(this.map._root,this.f,void 0)}next(){if(P(this.v))return{done:!0,value:void 0};let e=this.v.value;return this.v=be(e.cont),{done:!1,value:e.value}}[Symbol.iterator](){return new t(this.map,this.f)}},be=t=>t?ln(t[0],t[1],t[2],t[3],t[4]):T(),un=(t,e,r=void 0)=>{switch(t._tag){case"LeafNode":return rt(t.value)?V({value:e(t.key,t.value.value),cont:r}):be(r);case"CollisionNode":case"ArrayNode":case"IndexedNode":{let o=t.children;return ln(o.length,o,0,e,r)}default:return be(r)}},ln=(t,e,r,o,n)=>{for(;r<t;){let s=e[r++];if(s&&!z(s))return un(s,o,[t,e,r,o,n])}return be(n)},ui=wr(!1,0,new Z,0),fn=()=>ui;var li=t=>_(t,vr);var fi=u(3,(t,e,r)=>{let o=t._root,n=0;for(;;)switch(o._tag){case"LeafNode":return x(e,o.key)?o.value:T();case"CollisionNode":{if(r===o.hash){let s=o.children;for(let i=0,c=s.length;i<c;++i){let a=s[i];if("key"in a&&x(e,a.key))return a.value}}return T()}case"IndexedNode":{let s=ot(n,r),i=nt(s);if(o.mask&i){o=o.children[ye(o.mask,i)],n+=5;break}return T()}case"ArrayNode":{if(o=o.children[ot(n,r)],o){n+=5;break}return T()}default:return T()}});var Tr=u(3,(t,e,r)=>hi(t,e,()=>V(r))),di=u(3,(t,e,r)=>t._editable?(t._root=e,t._size=r,t):e===t._root?t:wr(t._editable,t._edit,e,r)),dn=t=>new Se(t,e=>e);var Ee=t=>t._size,hn=t=>wr(!0,t._edit+1,t._root,t._size);var hi=u(3,(t,e,r)=>mi(t,e,l(e),r)),mi=u(4,(t,e,r,o)=>{let n={value:t._size},s=t._root.modify(t._editable?t._edit:NaN,0,o,r,e,n);return b(t,di(s,n.value))});var mn=u(2,(t,e)=>xn(t,void 0,(r,o,n)=>e(o,n))),xn=u(3,(t,e,r)=>{let o=t._root;if(o._tag==="LeafNode")return rt(o.value)?r(e,o.value.value,o.key):e;if(o._tag==="EmptyNode")return e;let n=[o.children],s;for(;s=n.pop();)for(let i=0,c=s.length;i<c;){let a=s[i++];a&&!z(a)&&(a._tag==="LeafNode"?rt(a.value)&&(e=r(e,a.value.value,a.key)):n.push(a.children))}return e});var gn="effect/HashSet",Ce=Symbol.for(gn),gi={[Ce]:Ce,[Symbol.iterator](){return dn(this._keyMap)},[f](){return S(this,M(l(this._keyMap))(l(gn)))},[m](t){return _n(t)?Ee(this._keyMap)===Ee(t._keyMap)&&x(this._keyMap,t._keyMap):!1},toString(){return E(this.toJSON())},toJSON(){return{_id:"HashSet",values:Array.from(this).map(O)}},[y](){return this.toJSON()},pipe(){return C(this,arguments)}},Rr=t=>{let e=Object.create(gi);return e._keyMap=t,e},_n=t=>_(t,Ce),_i=Rr(fn()),Nr=()=>_i;var yn=t=>Ee(t._keyMap),On=t=>Rr(hn(t._keyMap)),Sn=t=>(t._keyMap._editable=!1,t),bn=u(2,(t,e)=>{let r=On(t);return e(r),Sn(r)}),ke=u(2,(t,e)=>t._keyMap._editable?(Tr(e,!0)(t._keyMap),t):Rr(Tr(e,!0)(t._keyMap)));var En=u(2,(t,e)=>bn(Nr(),r=>{Cn(t,o=>ke(r,o));for(let o of e)ke(r,o)}));var Cn=u(2,(t,e)=>mn(t._keyMap,(r,o)=>e(o)));var Yt=Nr;var kn=yn;var Ie=ke;var Ae=En;var Si=Object.assign(Object.create(Array.prototype),{[f](){return S(this,ue(this))},[m](t){return Array.isArray(t)&&this.length===t.length?this.every((e,r)=>x(e,t[r])):!1}}),In=function(){function t(e){e&&Object.assign(this,e)}return t.prototype=ar,t}();var Pr="Die",ve="Empty",Me="Fail",Fr="Interrupt",kt="Parallel",It="Sequential";var Tn="effect/Cause",Rn=Symbol.for(Tn),Ci={_E:t=>t},Ur={[Rn]:Ci,[f](){return b(l(Tn),M(l(Ai(this))),S(this))},[m](t){return ki(t)&&Ii(this,t)},pipe(){return C(this,arguments)},toJSON(){switch(this._tag){case"Empty":return{_id:"Cause",_tag:this._tag};case"Die":return{_id:"Cause",_tag:this._tag,defect:O(this.defect)};case"Interrupt":return{_id:"Cause",_tag:this._tag,fiberId:this.fiberId.toJSON()};case"Fail":return{_id:"Cause",_tag:this._tag,failure:O(this.error)};case"Sequential":case"Parallel":return{_id:"Cause",_tag:this._tag,left:O(this.left),right:O(this.right)}}},toString(){return Hr(this)},[y](){return this.toJSON()}};var Te=t=>{let e=Object.create(Ur);return e._tag=Me,e.error=t,e};var Nn=(t,e)=>{let r=Object.create(Ur);return r._tag=kt,r.left=t,r.right=e,r},Kt=(t,e)=>{let r=Object.create(Ur);return r._tag=It,r.left=t,r.right=e,r},ki=t=>_(t,Rn);var Pn=t=>Fn(void 0,Mi)(t);var Ii=(t,e)=>{let r=lt(t),o=lt(e);for(;he(r)&&he(o);){let[n,s]=b(me(r),Mn([Yt(),ut()],([a,p],h)=>{let[g,v]=Lr(h);return V([b(a,Ae(g)),b(p,K(v))])})),[i,c]=b(me(o),Mn([Yt(),ut()],([a,p],h)=>{let[g,v]=Lr(h);return V([b(a,Ae(g)),b(p,K(v))])}));if(!x(n,i))return!1;r=s,o=c}return!0},Ai=t=>vi(lt(t),ut()),vi=(t,e)=>{for(;;){let[r,o]=b(t,_r([Yt(),ut()],([s,i],c)=>{let[a,p]=Lr(c);return[b(s,Ae(a)),b(i,K(p))]})),n=kn(r)>0?b(e,de(r)):e;if(Ho(o))return Jt(n);t=o,e=n}throw new Error(jt("Cause.flattenCauseLoop"))};var Lr=t=>{let e=t,r=[],o=Yt(),n=ut();for(;e!==void 0;)switch(e._tag){case ve:{if(r.length===0)return[o,n];e=r.pop();break}case Me:{if(o=Ie(o,$t(e._tag,e.error)),r.length===0)return[o,n];e=r.pop();break}case Pr:{if(o=Ie(o,$t(e._tag,e.defect)),r.length===0)return[o,n];e=r.pop();break}case Fr:{if(o=Ie(o,$t(e._tag,e.fiberId)),r.length===0)return[o,n];e=r.pop();break}case It:{switch(e.left._tag){case ve:{e=e.right;break}case It:{e=Kt(e.left.left,Kt(e.left.right,e.right));break}case kt:{e=Nn(Kt(e.left.left,e.right),Kt(e.left.right,e.right));break}default:{n=de(n,e.right),e=e.left;break}}break}case kt:{r.push(e.right),e=e.left;break}}throw new Error(jt("Cause.evaluateCauseLoop"))};var Mi={emptyCase:ie,failCase:Ze,dieCase:Ze,interruptCase:ie,sequentialCase:(t,e,r)=>e&&r,parallelCase:(t,e,r)=>e&&r};var An="SequentialCase",vn="ParallelCase";var Mn=u(3,(t,e,r)=>{let o=e,n=t,s=[];for(;n!==void 0;){let i=r(o,n);switch(o=rt(i)?i.value:o,n._tag){case It:{s.push(n.right),n=n.left;break}case kt:{s.push(n.right),n=n.left;break}default:{n=void 0;break}}n===void 0&&s.length>0&&(n=s.pop())}return o}),Fn=u(3,(t,e,r)=>{let o=[t],n=[];for(;o.length>0;){let i=o.pop();switch(i._tag){case ve:{n.push(Wt(r.emptyCase(e)));break}case Me:{n.push(Wt(r.failCase(e,i.error)));break}case Pr:{n.push(Wt(r.dieCase(e,i.defect)));break}case Fr:{n.push(Wt(r.interruptCase(e,i.fiberId)));break}case It:{o.push(i.right),o.push(i.left),n.push(xr({_tag:An}));break}case kt:{o.push(i.right),o.push(i.left),n.push(xr({_tag:vn}));break}}}let s=[];for(;n.length>0;){let i=n.pop();switch(i._tag){case"Left":{switch(i.left._tag){case An:{let c=s.pop(),a=s.pop(),p=r.sequentialCase(e,c,a);s.push(p);break}case vn:{let c=s.pop(),a=s.pop(),p=r.parallelCase(e,c,a);s.push(p);break}}break}case"Right":{s.push(i.right);break}}}if(s.length===0)throw new Error("BUG: Cause.reduceWithContext - please report an issue at https://github.com/Effect-TS/effect/issues");return s.pop()}),Hr=(t,e)=>Pn(t)?"All fibers interrupted without errors.":Pi(t).map(function(r){return e?.renderErrorCause!==!0||r.cause===void 0?r.stack:`${r.stack} {
5
- ${Ln(r.cause," ")}
6
- }`}).join(`
7
- `),Ln=(t,e)=>{let r=t.stack.split(`
8
- `),o=`${e}[cause]: ${r[0]}`;for(let n=1,s=r.length;n<s;n++)o+=`
9
- ${e}${r[n]}`;return t.cause&&(o+=` {
10
- ${Ln(t.cause,`${e} `)}
11
- ${e}}`),o},we=class t extends globalThis.Error{span=void 0;constructor(e){let r=typeof e=="object"&&e!==null,o=Error.stackTraceLimit;Error.stackTraceLimit=1,super(wi(e),r&&"cause"in e&&typeof e.cause<"u"?{cause:new t(e.cause)}:void 0),this.message===""&&(this.message="An error has occurred"),Error.stackTraceLimit=o,this.name=e instanceof Error?e.name:"Error",r&&(wn in e&&(this.span=e[wn]),Object.keys(e).forEach(n=>{n in this||(this[n]=e[n])})),this.stack=Ni(`${this.name}: ${this.message}`,e instanceof Error&&e.stack?e.stack:"",this.span)}},wi=t=>{if(typeof t=="string")return t;if(typeof t=="object"&&t!==null&&t instanceof Error)return t.message;try{if(_(t,"toString")&&Bt(t.toString)&&t.toString!==Object.prototype.toString&&t.toString!==globalThis.Array.prototype.toString)return t.toString()}catch{}return sr(t)},Ti=/\((.*)\)/g,Ri=F("effect/Tracer/spanToTrace",()=>new WeakMap),Ni=(t,e,r)=>{let o=[t],n=e.startsWith(t)?e.slice(t.length).split(`
12
- `):e.split(`
13
- `);for(let s=1;s<n.length&&!n[s].includes("Generator.next");s++){if(n[s].includes("effect_internal_function")){o.pop();break}o.push(n[s].replace(/at .*effect_instruction_i.*\((.*)\)/,"at $1").replace(/EffectPrimitive\.\w+/,"<anonymous>"))}if(r){let s=r,i=0;for(;s&&s._tag==="Span"&&i<10;){let c=Ri.get(s);if(typeof c=="function"){let a=c();if(typeof a=="string"){let p=a.matchAll(Ti),h=!1;for(let[,g]of p)h=!0,o.push(` at ${s.name} (${g})`);h||o.push(` at ${s.name} (${a.replace(/^at /,"")})`)}else o.push(` at ${s.name}`)}else o.push(` at ${s.name}`);s=Ro(s.parent),i++}}return o.join(`
14
- `)},wn=Symbol.for("effect/SpanAnnotation"),Pi=t=>Fn(t,void 0,{emptyCase:()=>[],dieCase:(e,r)=>[new we(r)],failCase:(e,r)=>[new we(r)],interruptCase:()=>[],parallelCase:(e,r,o)=>[...r,...o],sequentialCase:(e,r,o)=>[...r,...o]});var At=class t{self;called=!1;constructor(e){this.self=e}next(e){return this.called?{value:e,done:!0}:(this.called=!0,{value:this.self,done:!1})}return(e){return{value:e,done:!0}}throw(e){throw e}[Symbol.iterator](){return new t(this.self)}};var Re=Symbol.for("effect/Effect");var qr=class{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[Re]=et;constructor(e){this._op=e}[m](e){return this===e}[f](){return S(this,yt(this))}pipe(){return C(this,arguments)}toJSON(){return{_id:"Effect",_op:this._op,effect_instruction_i0:O(this.effect_instruction_i0),effect_instruction_i1:O(this.effect_instruction_i1),effect_instruction_i2:O(this.effect_instruction_i2)}}toString(){return E(this.toJSON())}[y](){return this.toJSON()}[Symbol.iterator](){return new At(new J(this))}},Dr=class{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[Re]=et;constructor(e){this._op=e,this._tag=e}[m](e){return Yn(e)&&e._op==="Failure"&&x(this.effect_instruction_i0,e.effect_instruction_i0)}[f](){return b(L(this._tag),M(l(this.effect_instruction_i0)),S(this))}get cause(){return this.effect_instruction_i0}pipe(){return C(this,arguments)}toJSON(){return{_id:"Exit",_tag:this._op,cause:this.cause.toJSON()}}toString(){return E(this.toJSON())}[y](){return this.toJSON()}[Symbol.iterator](){return new At(new J(this))}},Un=class{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[Re]=et;constructor(e){this._op=e,this._tag=e}[m](e){return Yn(e)&&e._op==="Success"&&x(this.effect_instruction_i0,e.effect_instruction_i0)}[f](){return b(L(this._tag),M(l(this.effect_instruction_i0)),S(this))}get value(){return this.effect_instruction_i0}pipe(){return C(this,arguments)}toJSON(){return{_id:"Exit",_tag:this._op,value:O(this.value)}}toString(){return E(this.toJSON())}[y](){return this.toJSON()}[Symbol.iterator](){return new At(new J(this))}},Li=t=>_(t,Re),Ui=t=>{let e=new qr(xo);return e.effect_instruction_i0=t,e};var Br=Symbol.for("effect/SpanAnnotation"),Hn=Symbol.for("effect/OriginalAnnotation");var Hi=(t,e)=>rt(e)?new Proxy(t,{has(r,o){return o===Br||o===Hn||o in r},get(r,o){return o===Br?e.value:o===Hn?t:r[o]}}):t;var qi=t=>er(t)&&!(Br in t)?Ui(e=>qn(Te(Hi(t,Wi(e))))):qn(Te(t));var qn=t=>{let e=new Dr(mo);return e.effect_instruction_i0=t,e};var Uu={_tag:"All",syslog:0,label:"ALL",ordinal:Number.MIN_SAFE_INTEGER,pipe(){return C(this,arguments)}};var Hu={_tag:"None",syslog:7,label:"OFF",ordinal:Number.MAX_SAFE_INTEGER,pipe(){return C(this,arguments)}};var Di="effect/RequestResolver",Vn=Symbol.for(Di),Bi={_A:t=>t,_R:t=>t},Dn=class t{runAll;target;[Vn]=Bi;constructor(e,r){this.runAll=e,this.target=r}[f](){return S(this,this.target?l(this.target):yt(this))}[m](e){return this.target?ji(e)&&x(this.target,e.target):this===e}identified(...e){return new t(this.runAll,Lo(e))}pipe(){return C(this,arguments)}},ji=t=>_(t,Vn);var jr=function(){class t extends globalThis.Error{commit(){return qi(this)}toJSON(){return{...this}}[y](){return this.toString!==globalThis.Error.prototype.toString?this.stack?`${this.toString()}
15
- ${this.stack.split(`
16
- `).slice(1).join(`
17
- `)}`:this.toString():"Bun"in globalThis?Hr(Te(this),{renderErrorCause:!0}):this}}return Object.assign(t.prototype,ur),t}(),dt=(t,e)=>{class r extends jr{_tag=e}return Object.assign(r.prototype,t),r.prototype.name=e,r},Bn=Symbol.for("effect/Cause/errors/RuntimeException"),qu=dt({[Bn]:Bn},"RuntimeException");var jn=Symbol.for("effect/Cause/errors/InterruptedException"),Du=dt({[jn]:jn},"InterruptedException");var Wn=Symbol.for("effect/Cause/errors/IllegalArgument"),Bu=dt({[Wn]:Wn},"IllegalArgumentException");var Gn=Symbol.for("effect/Cause/errors/NoSuchElement"),ju=dt({[Gn]:Gn},"NoSuchElementException");var zn=Symbol.for("effect/Cause/errors/InvalidPubSubCapacityException"),Wu=dt({[zn]:zn},"InvalidPubSubCapacityException"),Jn=Symbol.for("effect/Cause/errors/ExceededCapacityException"),Gu=dt({[Jn]:Jn},"ExceededCapacityException");var $n=Symbol.for("effect/Cause/errors/Timeout"),zu=dt({[$n]:$n},"TimeoutException");var Yn=t=>Li(t)&&"_tag"in t&&(t._tag==="Success"||t._tag==="Failure");var Wi=t=>{let e=t.currentSpan;return e!==void 0&&e._tag==="Span"?V(e):T()};var Zt=In,Kn=t=>{class e extends Zt{_tag=t}return e};var zi=function(){let t=Symbol.for("effect/Data/Error/plainArgs");return class extends jr{constructor(r){super(r?.message,r?.cause?{cause:r.cause}:void 0),r&&(Object.assign(this,r),Object.defineProperty(this,t,{value:r,enumerable:!1}))}toJSON(){return{...this[t],...this}}}}(),vt=t=>{class e extends zi{_tag=t}return e.prototype.name=t,e};var Ne=class t extends Kn("BotResponse"){static make(e){return new t({response:e})}static ignore=new t({})};var Zn=$;var rs=Symbol.for("effect/Micro"),Pe=Symbol.for("effect/Micro/MicroExit"),Xt=t=>typeof t=="object"&&t!==null&&rs in t,Qn=Symbol.for("effect/Micro/MicroCause");var $i={_E:A},te=class extends globalThis.Error{_tag;traces;[Qn];constructor(e,r,o){let n=`MicroCause.${e}`,s,i,c;if(r instanceof globalThis.Error){s=`(${n}) ${r.name}`,i=r.message;let a=i.split(`
18
- `).length;c=r.stack?`(${n}) ${r.stack.split(`
19
- `).slice(0,a+3).join(`
20
- `)}`:`${s}: ${i}`}else s=n,i=fo(r,0),c=`${s}: ${i}`;o.length>0&&(c+=`
21
- ${o.join(`
22
- `)}`),super(i),this._tag=e,this.traces=o,this[Qn]=$i,this.name=s,this.stack=c}pipe(){return C(this,arguments)}toString(){return this.stack}[y](){return this.stack}},Gr=class extends te{error;constructor(e,r=[]){super("Fail",e,r),this.error=e}},Vi=(t,e=[])=>new Gr(t,e),zr=class extends te{defect;constructor(e,r=[]){super("Die",e,r),this.defect=e}},Yi=(t,e=[])=>new zr(t,e),Jr=class extends te{constructor(e=[]){super("Interrupt","interrupted",e)}},Ki=(t=[])=>new Jr(t),Zi=t=>t._tag==="Fail";var os=t=>t._tag==="Interrupt";var Xn=Symbol.for("effect/Micro/MicroFiber"),Qi={_A:A,_E:A},Fe=class{context;interruptible;[Xn];_stack=[];_observers=[];_exit;_children;currentOpCount=0;constructor(e,r=!0){this.context=e,this.interruptible=r,this[Xn]=Qi}getRef(e){return Vo(this.context,e)}addObserver(e){return this._exit?(e(this._exit),ro):(this._observers.push(e),()=>{let r=this._observers.indexOf(e);r>=0&&this._observers.splice(r,1)})}_interrupted=!1;unsafeInterrupt(){this._exit||(this._interrupted=!0,this.interruptible&&this.evaluate(Zr))}unsafePoll(){return this._exit}evaluate(e){if(this._exit)return;if(this._yielded!==void 0){let n=this._yielded;this._yielded=void 0,n()}let r=this.runLoop(e);if(r===Mt)return;let o=ts.interruptChildren&&ts.interruptChildren(this);if(o!==void 0)return this.evaluate(D(o,()=>r));this._exit=r;for(let n=0;n<this._observers.length;n++)this._observers[n](r);this._observers.length=0}runLoop(e){let r=!1,o=e;this.currentOpCount=0;try{for(;;){if(this.currentOpCount++,!r&&this.getRef(Rt).shouldYield(this)){r=!0;let n=o;o=D(cs,()=>n)}if(o=o[$r](this),o===Mt){let n=this._yielded;return Pe in n?(this._yielded=void 0,n):Mt}}}catch(n){return _(o,$r)?Ue(n):Ue(`MicroFiber.runLoop: Not a valid effect: ${String(o)}`)}}getCont(e){for(;;){let r=this._stack.pop();if(!r)return;let o=r[Le]&&r[Le](this);if(o)return{[e]:o};if(r[e])return r}}_yielded=void 0;yieldWith(e){return this._yielded=e,Mt}children(){return this._children??=new Set}},ts=F("effect/Micro/fiberMiddleware",()=>({interruptChildren:void 0}));var Xi=t=>qe(e=>Tt(t.addObserver(r=>e(k(r)))));var ns=t=>X(()=>(t.unsafeInterrupt(),cc(Xi(t)))),tc=t=>X(()=>{for(let o of t)o.unsafeInterrupt();let e=t[Symbol.iterator](),r=X(()=>{let o=e.next();for(;!o.done;){if(o.value.unsafePoll()){o=e.next();continue}let n=o.value;return qe(s=>{n.addObserver(i=>{s(r)})})}return xt});return r}),ss=Symbol.for("effect/Micro/identifier"),d=Symbol.for("effect/Micro/args"),$r=Symbol.for("effect/Micro/evaluate"),Q=Symbol.for("effect/Micro/successCont"),ht=Symbol.for("effect/Micro/failureCont"),Le=Symbol.for("effect/Micro/ensureCont"),Mt=Symbol.for("effect/Micro/Yield"),ec={_A:A,_E:A,_R:A},rc={...Zn,_op:"Micro",[rs]:ec,pipe(){return C(this,arguments)},[Symbol.iterator](){return new pt(new J(this))},toJSON(){return{_id:"Micro",op:this[ss],...d in this?{args:this[d]}:void 0}},toString(){return E(this)},[y](){return E(this)}};function oc(t){return Ue("Micro.evaluate: Not implemented")}var ee=t=>({...rc,[ss]:t.op,[$r]:t.eval??oc,[Q]:t.contA,[ht]:t.contE,[Le]:t.ensure}),tt=t=>{let e=ee(t);return function(){let r=Object.create(e);return r[d]=t.single===!1?arguments:arguments[0],r}},is=t=>{let e={...ee(t),[Pe]:Pe,_tag:t.op,get[t.prop](){return this[d]},toJSON(){return{_id:"MicroExit",_tag:t.op,[t.prop]:this[d]}},[m](r){return uc(r)&&r._tag===t.op&&x(this[d],r[d])},[f](){return S(this,M(L(t.op))(l(this[d])))}};return function(r){let o=Object.create(e);return o[d]=r,o[Q]=void 0,o[ht]=void 0,o[Le]=void 0,o}},k=is({op:"Success",prop:"value",eval(t){let e=t.getCont(Q);return e?e[Q](this[d],t):t.yieldWith(this)}}),wt=is({op:"Failure",prop:"cause",eval(t){let e=t.getCont(ht);for(;os(this[d])&&e&&t.interruptible;)e=t.getCont(ht);return e?e[ht](this[d],t):t.yieldWith(this)}}),q=t=>wt(Vi(t)),Tt=tt({op:"Sync",eval(t){let e=this[d](),r=t.getCont(Q);return r?r[Q](e,t):t.yieldWith(De(e))}}),X=tt({op:"Suspend",eval(t){return this[d]()}}),nc=tt({op:"Yield",eval(t){let e=!1;return t.getRef(Rt).scheduleTask(()=>{e||t.evaluate(xt)},this[d]??0),t.yieldWith(()=>{e=!0})}}),cs=nc(0);var mt=k(void 0);var Kr=t=>X(()=>{try{return k(t.try())}catch(e){return q(t.catch(e))}});var Nt=t=>as(function(e,r){try{t.try(r).then(o=>e(k(o)),o=>e(q(t.catch(o))))}catch(o){e(q(t.catch(o)))}},t.try.length!==0),Pt=tt({op:"WithMicroFiber",eval(t){return this[d](t)}});var as=tt({op:"Async",single:!1,eval(t){let e=this[d][0],r=!1,o=!1,n=this[d][1]?new AbortController:void 0,s=e(i=>{r||(r=!0,o?t.evaluate(i):o=i)},n?.signal);return o!==!1?o:(o=!0,t._yielded=()=>{r=!0},n===void 0&&s===void 0||t._stack.push(sc(()=>(r=!0,n?.abort(),s??xt))),Mt)}}),sc=tt({op:"AsyncFinalizer",ensure(t){t.interruptible&&(t.interruptible=!1,t._stack.push(Xr(!0)))},contE(t,e){return os(t)?D(this[d](),()=>wt(t)):wt(t)}}),qe=t=>as(t,t.length>=2);var B=(...t)=>X(()=>ic(t.length===1?t[0]():t[1].call(t[0]))),ic=tt({op:"Iterator",contA(t,e){let r=this[d].next(t);return r.done?k(r.value):(e._stack.push(this),ao(r.value))},eval(t){return this[Q](void 0,t)}}),ps=u(2,(t,e)=>pc(t,r=>e));var j=u(2,(t,e)=>D(t,r=>{let o=Xt(e)?e:typeof e=="function"?e(r):e;return Xt(o)?o:k(o)})),re=u(2,(t,e)=>D(t,r=>{let o=Xt(e)?e:typeof e=="function"?e(r):e;return Xt(o)?ps(o,r):k(r)})),cc=t=>D(t,e=>xt),us=t=>_c(t,{onFailure:Be,onSuccess:De});var D=u(2,(t,e)=>{let r=Object.create(ac);return r[d]=t,r[Q]=e,r}),ac=ee({op:"OnSuccess",eval(t){return t._stack.push(this),this[d]}});var pc=u(2,(t,e)=>D(t,r=>k(e(r)))),uc=t=>_(t,Pe),De=k,Be=wt,Zr=Be(Ki());var Ue=t=>Be(Yi(t));var xt=De(void 0),lc=t=>{for(let e of t)if(e._tag==="Failure")return e;return xt},fc="setImmediate"in globalThis?globalThis.setImmediate:t=>setTimeout(t,0),He=class{tasks=[];running=!1;scheduleTask(e,r){this.tasks.push(e),this.running||(this.running=!0,fc(this.afterScheduled))}afterScheduled=()=>{this.running=!1,this.runTasks()};runTasks(){let e=this.tasks;this.tasks=[];for(let r=0,o=e.length;r<o;r++)e[r]()}shouldYield(e){return e.currentOpCount>=e.getRef(Vr)}flush(){for(;this.tasks.length>0;)this.runTasks()}},R=t=>Pt(e=>k(tn(e.context,t)));var ls=u(2,(t,e)=>Pt(r=>{let o=r.context;return r.context=e(o),yc(t,()=>(r.context=o,mt))}));var Qr=u(2,(t,e)=>ls(t,en(e))),je=u(3,(t,e,r)=>ls(t,Xo(e,r)));var Vr=class extends H()("effect/Micro/currentMaxOpsBeforeYield",{defaultValue:()=>2048}){},Yr=class extends H()("effect/Micro/currentConcurrency",{defaultValue:()=>"unbounded"}){},Rt=class extends H()("effect/Micro/currentScheduler",{defaultValue:()=>new He}){};var dc=u(2,(t,e)=>X(()=>{let r=e.schedule?Date.now():0,o=0,n=D(us(t),s=>{if(e.while!==void 0&&!e.while(s))return s;if(e.times!==void 0&&o>=e.times)return s;o++;let i=cs;if(e.schedule!==void 0){let c=Date.now()-r,a=e.schedule(o,c);if(P(a))return s;i=hs(a.value)}return D(i,()=>n)});return n})),fs=u(t=>Xt(t[0]),(t,e)=>dc(t,{...e,while:r=>r._tag==="Success"&&(e?.while===void 0||e.while(r.value))}));var hc=u(2,(t,e)=>{let r=Object.create(mc);return r[d]=t,r[ht]=e,r}),mc=ee({op:"OnFailure",eval(t){return t._stack.push(this),this[d]}}),xc=u(3,(t,e,r)=>hc(t,o=>e(o)?r(o):wt(o))),We=u(2,(t,e)=>xc(t,Zi,r=>e(r.error)));var ds=u(2,(t,e)=>{let r=Object.create(gc);return r[d]=t,r[Q]=e.onSuccess,r[ht]=e.onFailure,r}),gc=ee({op:"OnSuccessAndFailure",eval(t){return t._stack.push(this),this[d]}}),_c=u(2,(t,e)=>ds(t,{onFailure:r=>Tt(()=>e.onFailure(r)),onSuccess:r=>Tt(()=>e.onSuccess(r))}));var hs=t=>qe(e=>{let r=setTimeout(()=>{e(mt)},t);return Tt(()=>{clearTimeout(r)})}),ms=u(2,(t,e)=>j(hs(e),t));var Wr=Symbol.for("effect/Micro/MicroScope");var es=class t{[Wr];state={_tag:"Open",finalizers:new Set};constructor(){this[Wr]=Wr}unsafeAddFinalizer(e){this.state._tag==="Open"&&this.state.finalizers.add(e)}addFinalizer(e){return X(()=>this.state._tag==="Open"?(this.state.finalizers.add(e),mt):e(this.state.exit))}unsafeRemoveFinalizer(e){this.state._tag==="Open"&&this.state.finalizers.delete(e)}close(e){return X(()=>{if(this.state._tag==="Open"){let r=Array.from(this.state.finalizers).reverse();return this.state={_tag:"Closed",exit:e},D(to(r,o=>us(o(e))),lc)}return mt})}get fork(){return Tt(()=>{let e=new t;if(this.state._tag==="Closed")return e.state=this.state,e;function r(o){return e.close(o)}return this.state.finalizers.add(r),e.unsafeAddFinalizer(o=>Tt(()=>this.unsafeRemoveFinalizer(r))),e})}};var yc=u(2,(t,e)=>Sc(r=>ds(r(t),{onFailure:o=>D(e(Be(o)),()=>wt(o)),onSuccess:o=>D(e(De(o)),()=>k(o))})));var Xr=tt({op:"SetInterruptible",ensure(t){if(t.interruptible=this[d],t._interrupted&&t.interruptible)return()=>Zr}}),Oc=t=>Pt(e=>e.interruptible?t:(e.interruptible=!0,e._stack.push(Xr(!1)),e._interrupted?Zr:t)),Sc=t=>Pt(e=>e.interruptible?(e.interruptible=!1,e._stack.push(Xr(!0)),t(Oc)):t(A));var bc=tt({op:"While",contA(t,e){return this[d].step(t),this[d].while()?(e._stack.push(this),this[d].body()):xt},eval(t){return this[d].while()?(t._stack.push(this),this[d].body()):xt}}),to=(t,e,r)=>Pt(o=>{let n=r?.concurrency==="inherit"?o.getRef(Yr):r?.concurrency??1,s=n==="unbounded"?Number.POSITIVE_INFINITY:Math.max(1,n),i=zt(t),c=i.length;if(c===0)return r?.discard?mt:k([]);let a=r?.discard?void 0:new Array(c),p=0;return s===1?ps(bc({while:()=>p<i.length,body:()=>e(i[p],p),step:a?h=>a[p++]=h:h=>p++}),a):qe(h=>{let g=new Set,v,I=0,Ht=0,st=!1,it=!1;function ct(){for(st=!0;I<s&&p<c;){let at=p,ks=i[at];p++,I++;try{let qt=xs(o,e(ks,at),!0,!0);g.add(qt),qt.addObserver(Dt=>{g.delete(qt),!it&&(Dt._tag==="Failure"?v===void 0&&(v=Dt,c=p,g.forEach(Is=>Is.unsafeInterrupt())):a!==void 0&&(a[at]=Dt.value),Ht++,I--,Ht===c?h(v??k(a)):!st&&I<s&&ct())})}catch(qt){v=Ue(qt),c=p,g.forEach(Dt=>Dt.unsafeInterrupt())}}st=!1}return ct(),X(()=>(it=!0,p=c,tc(g)))})});var xs=(t,e,r=!1,o=!1)=>{let n=new Fe(t.context,t.interruptible);return o||(t.children().add(n),n.addObserver(()=>t.children().delete(n))),r?n.evaluate(e):t.getRef(Rt).scheduleTask(()=>n.evaluate(e),0),n},gs=t=>Pt(e=>k(xs(e,t,!1,!0)));var Ec=(t,e)=>{let r=new Fe(Rt.context(e?.scheduler??new He));if(r.evaluate(t),e?.signal)if(e.signal.aborted)r.unsafeInterrupt();else{let o=()=>r.unsafeInterrupt();e.signal.addEventListener("abort",o,{once:!0}),r.addObserver(()=>e.signal.removeEventListener("abort",o))}return r},Cc=(t,e)=>new Promise((r,o)=>{Ec(t,e).addObserver(r)}),Ge=(t,e)=>Cc(t,e).then(r=>{if(r._tag==="Failure")throw r.cause;return r.value});var _s=t=>{let e=t[0];for(let r=1;r<t.length;r++)e+=t[r]==="_"?t[++r].toUpperCase():t[r];return e};var gt=class extends vt("TgBotClientError"){};var ys=t=>typeof t=="object"&&t!=null&&"file_content"in t&&t.file_content instanceof Uint8Array&&"file_name"in t&&typeof t.file_name=="string",Os=t=>typeof t=="object"&&t!=null&&"ok"in t&&typeof t.ok=="boolean";var Ss="https://api.telegram.org",eo={"\u{1F525}":"5104841245755180586","\u{1F44D}":"5107584321108051014","\u{1F44E}":"5104858069142078462","\u2764\uFE0F":"5159385139981059251","\u{1F389}":"5046509860389126442","\u{1F4A9}":"5046589136895476101"},pl=Object.keys(eo);var ze=class extends H()("TgBotApiBaseUrl",{defaultValue:()=>Ss}){},Lt=class extends _e("TgBotApiToken")(){};var bs=t=>{let e=Object.entries(t);if(e.length==0)return;let r=new FormData;for(let[o,n]of e)n&&(typeof n!="object"?r.append(o,`${n}`):ys(n)?r.append(o,new Blob([n.file_content]),n.file_name):r.append(o,JSON.stringify(n)));return r};var oe=(t,e)=>B(function*(){let r=yield*R(Lt),o=yield*R(ze),n=yield*Nt({try:()=>fetch(`${o}/bot${r}/${_s(t)}`,{body:bs(e)??null,method:"POST"}),catch:i=>new gt({cause:{_tag:"ClientInternalError",cause:i}})}),s=yield*Nt({try:()=>n.json(),catch:()=>new gt({cause:{_tag:"NotJsonResponse",response:n}})});return Os(s)?n.ok?s.result:yield*q(new gt({cause:{_tag:"NotOkResponse",...s.error_code?{errorCode:s.error_code}:void 0,...s.description?{details:s.description}:void 0}})):yield*q(new gt({cause:{_tag:"UnexpectedResponse",response:s}}))});var _t=class extends _e("BotUpdateHandlers")(){},ne=class t extends Zt{static make(e){let r=e.batch_size??10,o=e.poll_timeout??10,n=e.max_empty_responses,s=e.log_level??"info",i=e.on_error;(r<10||r>100)&&(console.warn("Wrong batch_size, must be in [10..100], using 10 instead"),r=10),(o<2||o>120)&&(console.warn("Wrong poll_timeout, must be in [2..120], using 20 instead"),o=20),n&&n<2&&(console.warn("Wrong max_empty_responses, must be in [2..infinity], using infinity"),n=void 0),s||(s="info"),i||(i="stop");let c=new t({batch_size:r,poll_timeout:o,max_empty_responses:n,log_level:s,on_error:i});return console.log("bot poll settings",c),c}},W=class extends H()("BotSettings",{defaultValue(){return ne.make({})}}){};var Ic=t=>{for(let[e,r]of Object.entries(t))if(e!="update_id")return{type:e,...r}},se=class extends Zt{},Es=t=>B(function*(){let e=yield*R(W),r=yield*R(_t);return r.type=="single"?yield*vc(t,r,e):yield*Ac(t,r)}),Ac=(t,e)=>Kr({try:()=>e.on_batch(t),catch:A}).pipe(j(r=>r instanceof Promise?Nt({try:()=>r,catch:A}):k(r)),j(r=>new se({hasErrors:!r,updates:t})),We(r=>(console.warn("handle batch error",{errorMessage:r instanceof Error?r.message:void 0,updates:t.map(o=>Object.keys(o).at(1)),error:r}),k(new se({hasErrors:!0,updates:t}))))),Ut=class extends vt("HandleUpdateError"){},vc=(t,e,r)=>to(t,o=>Mc(o,e).pipe(We(n=>(console.log("update handle error",{updateId:o.update_id,updateKey:Object.keys(o).at(1),name:n._tag,...n.cause instanceof Error?{error:n.cause.message}:void 0}),k(n)))),{concurrency:10}).pipe(j(o=>(r.log_level=="debug"&&console.debug("handle batch result",o),new se({hasErrors:!o.every(n=>n==null),updates:t})))),Mc=(t,e)=>B(function*(){let r=Ic(t);if(!r)return yield*q(new Ut({name:"UnknownUpdate",update:t}));let o=e[`on_${r.type}`];if(!o)return yield*q(new Ut({name:"HandlerNotDefined",update:t}));r.type=="message"&&"text"in r&&console.info("Got a new text message",{chatId:r.chat.id,chatType:r.chat.type,message:`${r.text.slice(0,5)}...`});let n,s=yield*Kr({try:()=>o(r),catch:c=>new Ut({name:"BotHandlerError",update:t,cause:c})}).pipe(j(c=>c instanceof Promise?Nt({try:()=>c,catch:a=>new Ut({name:"BotHandlerError",update:t,cause:a})}):k(c)),We(c=>(n=c,console.log("error",{updateId:t.update_id,updateKey:Object.keys(t).at(1),name:c._tag,...c.cause instanceof Error?{error:c.cause.message}:void 0}),k(Ne.make({type:"message",text:`Some internal error has happend(${c.name}) while handling this message`,message_effect_id:eo["\u{1F4A9}"],...t.message?.message_id?{reply_parameters:{message_id:t.message?.message_id}}:void 0}))))),i=yield*R(W);if(!s&&i.log_level=="debug"){console.log(`Bot response is undefined for update with ID #${t.update_id}.`);return}if("chat"in r&&s.response){let c=yield*oe(`send_${s.response.type}`,{...s.response,chat_id:r.chat.id});i.log_level=="debug"&&console.debug("bot response",c)}return n});var Je=class extends H()("BotFetchUpdatesService",{defaultValue:()=>{let e={lastUpdateId:void 0,emptyResponses:0},r=wc(e).pipe(re(n=>{let s=n.map(i=>i.update_id).sort().at(-1);console.log("updating last update id",s),e.lastUpdateId=s?s+1:void 0,console.log(e)})),o=Tc(e);return{state:e,fetchUpdates:r,commit:o}}}){},$e=class extends vt("FetchUpdatesError"){},wc=t=>B(function*(){let e=yield*R(W);if(e.max_empty_responses&&t.emptyResponses==e.max_empty_responses)return yield*q(new $e({name:"TooManyEmptyResponses"}));let r=t.lastUpdateId;e.log_level=="debug"&&console.debug("getting updates",t);let o=yield*oe("get_updates",{timeout:e.poll_timeout,...r?{offset:r}:void 0}).pipe(j(n=>n.sort(s=>s.update_id)));return o.length?(console.debug(`got a batch of updates (${o.length})`),t.emptyResponses=0,o):(t.emptyResponses+=1,[])}),Tc=t=>B(function*(){return console.log("commit",{pollState:t}),t.lastUpdateId?yield*oe("get_updates",{offset:t.lastUpdateId,limit:0}).pipe(j(j(R(W),e=>{e.log_level=="debug"&&console.debug("committed offset",t)}))):yield*q(new $e({name:"NoUpdatesToCommit"}))});var Ve=class extends H()("BotRunService",{defaultValue:()=>{console.log("Initiating BotRunService");let e={fiber:void 0};return{runBotInBackground:Rc(e),getFiber:()=>e.fiber}}}){},Rc=t=>B(function*(){console.log("running telegram chat bot");let e=yield*R(Je),r=yield*R(W),o=s=>r.on_error=="continue"?!0:!s,n=ms(1e3)(e.fetchUpdates.pipe(j(Es),re(s=>s.updates.length>0&&o(s.hasErrors)?e.commit:mt))).pipe(fs({while:s=>o(s.hasErrors)}),gs,re(s=>s.addObserver(i=>{console.log("bot's fiber has been closed",i)})));t.fiber&&(console.log("killing previous bot's fiber"),yield*ns(t.fiber)),t.fiber=yield*n,console.log("Fetching bot updates via long polling...")});var Cs=t=>B(function*(){let e=yield*R(Ve),r=Qo(Lt,t.bot_token);return yield*e.runBotInBackground.pipe(je(_t,t.mode),je(W,ne.make(t.poll??{})),Qr(r)),{reload:n=>e.runBotInBackground.pipe(je(_t,n),Qr(r),Ge),fiber:e.getFiber}});var Bl=t=>Cs(t).pipe(Ge),jl=t=>(Object.keys(t).length==0&&console.warn("No handlers are defined for bot"),t);export{se as BatchUpdateResult,ne as BotPollSettings,W as BotPollSettingsTag,Ne as BotResponse,Ve as BotRunService,_t as BotUpdateHandlersTag,Ut as HandleUpdateError,jl as defineBot,Ic as extractUpdate,Ac as handleEntireBatch,vc as handleOneByOne,Mc as handleOneUpdate,Es as handleUpdates,Cs as launchBot,Bl as runTgChatBot};
package/dist/bot.d.ts DELETED
@@ -1,111 +0,0 @@
1
- import * as effect_Types from 'effect/Types';
2
- import { A as Api, U as Update, a as TgBotApiToken, T as TgBotClientError } from './config-3uU0YevV.js';
3
- import * as effect_Cause from 'effect/Cause';
4
- import * as Micro from 'effect/Micro';
5
- import * as Data from 'effect/Data';
6
- import * as Context from 'effect/Context';
7
-
8
- type BotResult = {
9
- [K in keyof Api]: K extends `send_${infer R}` ? {
10
- type: R;
11
- } & Omit<Parameters<Api[K]>[0], 'chat_id'> : never;
12
- }[keyof Api];
13
- declare const BotResponse_base: new <A extends Record<string, any> = {}>(args: effect_Types.Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => Readonly<A> & {
14
- readonly _tag: "BotResponse";
15
- };
16
- declare class BotResponse extends BotResponse_base<{
17
- response?: BotResult;
18
- }> {
19
- static make(result: BotResult): BotResponse;
20
- static readonly ignore: BotResponse;
21
- }
22
-
23
- declare const BotUpdateHandlersTag_base: Context.TagClass<BotUpdateHandlersTag, "BotUpdateHandlers", BotMode>;
24
- declare class BotUpdateHandlersTag extends BotUpdateHandlersTag_base {
25
- }
26
- type PollSettings = {
27
- log_level: "info" | "debug";
28
- on_error: "stop" | "continue";
29
- batch_size: number;
30
- poll_timeout: number;
31
- max_empty_responses: number | undefined;
32
- };
33
- declare class BotPollSettings extends Data.Class<PollSettings> {
34
- static make(input: Partial<PollSettings>): BotPollSettings;
35
- }
36
- declare const BotPollSettingsTag_base: Context.ReferenceClass<BotPollSettings, "BotSettings", BotPollSettings>;
37
- declare class BotPollSettingsTag extends BotPollSettingsTag_base {
38
- }
39
-
40
- interface RunBotInput {
41
- bot_token: string;
42
- mode: BotMode;
43
- poll?: Partial<PollSettings>;
44
- }
45
- type ExtractedUpdate<K extends AvailableUpdateTypes> = {
46
- type: K;
47
- } & Update[K];
48
- type AvailableUpdateTypes = Exclude<keyof Update, 'update_id'>;
49
- type HandleUpdateFunction<U> = (update: U) => BotResponse | PromiseLike<BotResponse>;
50
- type BotUpdatesHandlers = {
51
- readonly [K in AvailableUpdateTypes as `on_${K}`]?: HandleUpdateFunction<NonNullable<Update[K]>>;
52
- };
53
- type HandleBatchUpdateFunction = {
54
- readonly on_batch: (update: Update[]) => boolean | PromiseLike<boolean>;
55
- };
56
- interface BotSingleMode extends BotUpdatesHandlers {
57
- type: "single";
58
- }
59
- interface BotBatchMode extends HandleBatchUpdateFunction {
60
- type: "batch";
61
- }
62
- type BotMode = BotSingleMode | BotBatchMode;
63
-
64
- declare const extractUpdate: <U extends AvailableUpdateTypes>(input: Update) => ExtractedUpdate<U> | undefined;
65
- declare class BatchUpdateResult extends Data.Class<{
66
- hasErrors: boolean;
67
- updates: Update[];
68
- }> {
69
- }
70
- declare const handleUpdates: (updates: Update[]) => Micro.Micro<BatchUpdateResult, never, TgBotApiToken | BotUpdateHandlersTag>;
71
- declare const handleEntireBatch: (updates: Update[], handlers: HandleBatchUpdateFunction) => Micro.Micro<BatchUpdateResult, never, never>;
72
- declare const HandleUpdateError_base: new <A extends Record<string, any> = {}>(args: effect_Types.Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => effect_Cause.YieldableError & {
73
- readonly _tag: "HandleUpdateError";
74
- } & Readonly<A>;
75
- declare class HandleUpdateError extends HandleUpdateError_base<{
76
- name: "UnknownUpdate" | "HandlerNotDefined" | "BotHandlerError";
77
- update: Update;
78
- cause?: unknown;
79
- }> {
80
- }
81
- declare const handleOneByOne: (updates: Update[], handlers: BotUpdatesHandlers, pollSettings: PollSettings) => Micro.Micro<BatchUpdateResult, never, TgBotApiToken>;
82
- declare const handleOneUpdate: (updateObject: Update, handlers: BotUpdatesHandlers) => Micro.Micro<HandleUpdateError | undefined, TgBotClientError | HandleUpdateError, TgBotApiToken>;
83
-
84
- declare const FetchUpdatesError_base: new <A extends Record<string, any> = {}>(args: effect_Types.Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => effect_Cause.YieldableError & {
85
- readonly _tag: "FetchUpdatesError";
86
- } & Readonly<A>;
87
- declare class FetchUpdatesError extends FetchUpdatesError_base<{
88
- name: "TooManyEmptyResponses" | "NoUpdatesToCommit";
89
- }> {
90
- }
91
-
92
- type BotInstance = Micro.Micro.Success<ReturnType<typeof launchBot>>;
93
- declare const launchBot: (input: RunBotInput) => Micro.Micro<{
94
- readonly reload: (mode: BotMode) => Promise<void>;
95
- readonly fiber: () => Micro.MicroFiber<BatchUpdateResult, TgBotClientError | FetchUpdatesError> | undefined;
96
- }, never, never>;
97
-
98
- declare const BotRunService_base: Context.ReferenceClass<BotRunService, "BotRunService", {
99
- readonly runBotInBackground: Micro.Micro<void, never, TgBotApiToken | BotUpdateHandlersTag>;
100
- readonly getFiber: () => Micro.MicroFiber<BatchUpdateResult, TgBotClientError | FetchUpdatesError> | undefined;
101
- }>;
102
- declare class BotRunService extends BotRunService_base {
103
- }
104
-
105
- declare const runTgChatBot: (input: RunBotInput) => Promise<{
106
- readonly reload: (mode: BotMode) => Promise<void>;
107
- readonly fiber: () => Micro.MicroFiber<BatchUpdateResult, TgBotClientError | FetchUpdatesError> | undefined;
108
- }>;
109
- declare const defineBot: (input: BotUpdatesHandlers) => BotUpdatesHandlers;
110
-
111
- export { type AvailableUpdateTypes, BatchUpdateResult, type BotBatchMode, type BotInstance, type BotMode, BotPollSettings, BotPollSettingsTag, BotResponse, BotRunService, type BotSingleMode, BotUpdateHandlersTag, type BotUpdatesHandlers, type ExtractedUpdate, type HandleBatchUpdateFunction, HandleUpdateError, type HandleUpdateFunction, type PollSettings, type RunBotInput, defineBot, extractUpdate, handleEntireBatch, handleOneByOne, handleOneUpdate, handleUpdates, launchBot, runTgChatBot };