@vbotma/sdk 3.3.9 → 4.0.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.
@@ -26,7 +26,7 @@ export interface InitOptions {
26
26
  * VBot Mini Apps version supported by the VBot client.
27
27
  * @default Will be calculated based on the launch parameters' vbWebAppVersion field.
28
28
  */
29
- version?: Version | undefined;
29
+ version?: Version;
30
30
  }
31
31
  /**
32
32
  * Initializes the SDK allowing it to properly handle events, sent from the native VBot
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var cr=Object.defineProperty;var ur=(i,e,s)=>e in i?cr(i,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[e]=s;var t=(i,e,s)=>ur(i,typeof e!="symbol"?e+"":e,s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("@vbotma/signals"),o=require("@vbotma/bridge"),A=require("@vbotma/toolkit"),He=require("better-promises"),I=require("@vbotma/transformers"),n=require("fp-ts"),O=require("error-kid"),E=require("valibot");function L(i){return typeof i=="function"?i():i}class re{constructor({onMounted:e,restoreState:s,initialState:r,onUnmounted:a,isPageReload:c}){t(this,"_isMounted",_.signal(!1));t(this,"isMounted",_.computed(this._isMounted));t(this,"mount");t(this,"unmount");this.mount=()=>{if(this.isMounted())return n.either.right(void 0);const p=L(c)?s():void 0,u=p?n.either.right(p):typeof r=="function"?r():n.either.right(r);return n.function.pipe(u,n.either.map(d=>{_.batch(()=>{this._isMounted.set(!0),e==null||e(d)})}))},this.unmount=()=>{this._isMounted()&&_.batch(()=>{this._isMounted.set(!1),a==null||a()})}}}function le(i){const e={};for(const s in i){const r=i[s];r!==void 0&&(e[s]=r)}return e}function pe(i,e){const s=Object.keys(i),r=Object.keys(e);return s.length!==r.length?!1:s.every(a=>Object.prototype.hasOwnProperty.call(e,a)&&i[a]===e[a])}class N{constructor({initialState:e,onChange:s}){t(this,"_state");t(this,"state");t(this,"setState",e=>{const s={...this.state(),...le(e)};pe(s,this.state())||this._state.set(s)});this._state=_.signal(e,{equals:pe}),this.state=_.computed(this._state),this.state.sub(s)}getter(e){return _.computed(()=>this._state()[e])}hasDiff(e){return!pe({...this.state(),...le(e)},this.state())}}function U(i,e){return _.computed(()=>o.supports(i,L(e)))}function h(i){return Object.assign(A.throwifyFpFn(i),{ifAvailable(...e){return n.function.pipe(i.ifAvailable(...e),n.option.match(()=>({ok:!1}),s=>({ok:!0,data:A.throwifyAnyEither(s)})))}})}function Y(i){return[i]}class ee extends O.errorClassWithData("ValidationError",(e,s)=>({input:e,issues:s}),"Validation error"){}class oe extends O.errorClass("CSSVarsBoundError","CSS variables are already bound"){}class Pe extends O.errorClassWithData("DeviceStorageMethodError",e=>({error:e}),e=>[e]){}class Ae extends O.errorClassWithData("SecureStorageMethodError",e=>({error:e}),e=>[e]){}class Me extends O.errorClass("NotAvailableError",Y){}class pr extends O.errorClass("InvalidEnvError",Y){}class Re extends O.errorClass("FunctionNotAvailableError",Y){}class G extends O.errorClass("InvalidArgumentsError",(e,s)=>[e,{cause:s}]){}class ae extends O.errorClass("ConcurrentCallError",Y){}class xe extends O.errorClass("SetEmojiStatusError",e=>[`Failed to set emoji status: ${e}`]){}class fe extends O.errorClass("AccessDeniedError",Y){}class Te extends O.errorClass("FullscreenFailedError",Y){}class Ve extends O.errorClass("ShareMessageError",Y){}class Le extends O.errorClass("UnknownThemeParamsKeyError",e=>[`Unknown theme params key passed: ${e}`]){}function q(i,e){const s=_.computed(()=>L(e.version)||"100"),r=_.computed(()=>L(e.isVBma)),{requires:a,returns:c}=e,p=a?typeof a=="object"?a:{every:[a]}:void 0,u=f=>{if(!e.supports)return!0;const m=e.supports[f];return o.supports(m.method,m.param,s())},d=()=>{if(!p)return;const[f,m]="every"in p?["every",p.every]:["some",p.some];for(let g=0;g<m.length;g++){const H=m[g],x=typeof H=="function"?H():o.supports(H,s())?void 0:`it is unsupported in Mini Apps version ${s()}`;if(x&&(f==="every"||g===m.length-1))return x}},l=(...f)=>{for(const m in e.supports)if(e.supports[m].shouldCheck(...f)&&!u(m))return`option ${m} is not supported in Mini Apps version ${s()}`},w=_.computed(()=>!d()),b=_.computed(()=>s()!=="0.0"),C=_.computed(()=>e.isMounted?e.isMounted():!0),F=_.computed(()=>r()&&b()&&w()&&C()),v=f=>{const m=new Re(f);return["task","promise"].includes(e.returns)?n.taskEither.left(m):n.either.left(m)},B=(...f)=>c==="plain"?n.either.tryCatch(()=>i(...f),m=>m):c==="promise"?n.taskEither.tryCatch(()=>i(...f),m=>m):i(...f);return Object.assign((...f)=>{var x;const m="Unable to call function:";if(!r())return v(`${m} it can't be called outside Mini Apps`);if(!b())return v(`${m} the SDK was not initialized. Use the SDK init() function`);const g=d();if(g)return v(`${m} ${g}`);const H=l(...f);if(H)return v(`${m} ${H}`);if(!C()){const M=(x=e.isMounting)!=null&&x.call(e)?"mounting. Wait for the mount completion":"unmounted. Use the mount() method";return v(`${m} the component is ${M}`)}return B(...f)},i,{isAvailable:F,ifAvailable(...f){return F()?n.option.some(B(...f)):n.option.none}},p?{isSupported:w}:{},e.supports?{supports:u}:{})}function y(i){return e=>q(e,i)}class ce{constructor({isVBma:e,storage:s,onClick:r,offClick:a,initialState:c,isPageReload:p,postEvent:u,payload:d,method:l,version:w}){t(this,"isMounted");t(this,"isSupported");t(this,"state");t(this,"stateSetters");t(this,"stateBoolSetters");t(this,"setStateFp");t(this,"setState");t(this,"onClickFp");t(this,"onClick");t(this,"offClickFp");t(this,"offClick");t(this,"mountFp");t(this,"mount");t(this,"unmount");const b=new N({initialState:c,onChange(f){s.set(f)}}),C=new re({initialState:c,isPageReload:p,onMounted:b.setState,restoreState:s.get}),F={version:w,requires:l,isVBma:e},v=y({...F,returns:"plain"}),B=y({...F,returns:"either",isMounted:C.isMounted});this.isMounted=C.isMounted,this.isSupported=U(l,w),this.state=b.state,this.setStateFp=B(f=>{const m={...this.state(),...le(f)};return b.hasDiff(m)?n.function.pipe(u(l,d(m)),n.either.map(()=>{b.setState(m)})):n.either.right(void 0)}),this.setState=h(this.setStateFp),this.onClickFp=v(r),this.onClick=h(this.onClickFp),this.offClickFp=v(a),this.offClick=h(this.offClickFp),this.mountFp=v(()=>{const f=()=>{};return n.function.pipe(C.mount(),n.either.match(f,f))}),this.mount=h(this.mountFp),this.unmount=C.unmount,this.stateSetters=f=>{const m=B(g=>this.setStateFp({[f]:g}));return[h(m),m]},this.stateBoolSetters=f=>{const[,m]=this.stateSetters(f),g=B(()=>m(!1)),H=B(()=>m(!0));return[[h(g),g],[h(H),H]]}}stateGetter(e){return _.computed(()=>this.state()[e])}}class Oe{constructor(e){t(this,"isVisible");t(this,"isMounted");t(this,"isSupported");t(this,"hideFp");t(this,"hide");t(this,"showFp");t(this,"show");t(this,"onClickFp");t(this,"onClick");t(this,"offClickFp");t(this,"offClick");t(this,"mountFp");t(this,"mount");t(this,"unmount");const s=new ce({...e,method:"web_app_setup_back_button",payload:r=>({is_visible:r.isVisible}),initialState:{isVisible:!1}});this.isVisible=s.stateGetter("isVisible"),this.isMounted=s.isMounted,this.isSupported=s.isSupported,[[this.hide,this.hideFp],[this.show,this.showFp]]=s.stateBoolSetters("isVisible"),this.onClick=s.onClick,this.onClickFp=s.onClickFp,this.offClick=s.offClick,this.offClickFp=s.offClickFp,this.mount=s.mount,this.mountFp=s.mountFp,this.unmount=s.unmount}}function S(){return{isVBma:_.computed(()=>o.isVBmaFp())}}function X(i){return e=>({...e,...L(i)})}function se(i,e){return _.signal(i,e)}const je=se(o.postEventFp),Z=(...i)=>je()(...i),De=(...i)=>A.throwifyAnyEither(Z(...i)),R=X({postEvent:Z});function dr(i){return{get:()=>A.getStorageValue(i),set(e){A.setStorageValue(i,e)}}}function hr(){return performance.getEntriesByType("navigation")[0]}function lr(){const i=hr();return!!i&&i.type==="reload"}function z(i){return X({storage:dr(i),isPageReload:lr})}const Ge=se("0.0"),k=X({version:Ge});function _e(i,e){return{...n.function.pipe(S(),R,k,z(i)),onClick(s,r){return o.on(e,s,r)},offClick(s,r){o.off(e,s,r)}}}const gr=new Oe(_e("backButton","back_button_pressed"));class me{constructor({initialState:e,onMounted:s,restoreState:r,onUnmounted:a,isPageReload:c}){t(this,"_isMounted",_.signal(!1));t(this,"isMounted",_.computed(this._isMounted));t(this,"mount");t(this,"unmount");this.mount=p=>{if(this._isMounted())return n.taskEither.right(void 0);const u=L(c)?r():void 0;return n.function.pipe(u?n.taskEither.right(u):e(p),n.taskEither.map(d=>{this._isMounted()||_.batch(()=>{this._isMounted.set(!0),s==null||s(d)})}))},this.unmount=()=>{this._isMounted()&&_.batch(()=>{this._isMounted.set(!1),a==null||a()})}}}function Ie(){return new Me("Biometry is not available")}function de(i){let e=!1,s=!1,r="",a=!1,c="",p=!1;return i.available&&(e=!0,s=i.token_saved,r=i.device_id,a=i.access_requested,c=i.type,p=i.access_granted),{available:e,tokenSaved:s,deviceId:r,type:c,accessGranted:p,accessRequested:a}}class Ue{constructor({version:e,request:s,postEvent:r,storage:a,onInfoReceived:c,offInfoReceived:p,isVBma:u,isPageReload:d}){t(this,"isAvailable");t(this,"isSupported");t(this,"isMounted");t(this,"state");t(this,"authenticateFp");t(this,"authenticate");t(this,"openSettingsFp");t(this,"openSettings");t(this,"requestAccessFp");t(this,"requestAccess");t(this,"updateTokenFp");t(this,"updateToken");t(this,"mountFp");t(this,"mount");t(this,"unmount");const l=f=>{w.setState(de(f))},w=new N({initialState:{available:!1,type:"unknown",accessGranted:!1,accessRequested:!1,deviceId:"",tokenSaved:!1},onChange:a.set}),b=new me({initialState(f){return n.function.pipe(s("web_app_biometry_get_info","biometry_info_received",f),n.taskEither.map(de))},isPageReload:d,onMounted(f){w.setState(f),c(l)},onUnmounted(){p(l)},restoreState:a.get}),C={version:e,requires:"web_app_biometry_request_auth",isVBma:u},F=y({...C,returns:"either"}),v=y({...C,returns:"task"}),B=y({...C,isMounted:b.isMounted,returns:"task"});this.isAvailable=w.getter("available"),this.isMounted=b.isMounted,this.isSupported=U("web_app_biometry_request_auth",e),this.state=w.state,this.unmount=b.unmount,this.mountFp=v(b.mount),this.authenticateFp=B(f=>this.isAvailable()?n.function.pipe(s("web_app_biometry_request_auth","biometry_auth_requested",{...f,params:{reason:((f||{}).reason||"").trim()}}),n.taskEither.map(m=>(w.setState({token:m.token}),m))):n.taskEither.left(Ie())),this.openSettingsFp=F(()=>r("web_app_biometry_open_settings")),this.requestAccessFp=B(f=>n.function.pipe(s("web_app_biometry_request_access","biometry_info_received",{...f,params:{reason:((f||{}).reason||"").trim()}}),n.taskEither.chain(m=>{const g=de(m);return g.available?(w.setState(g),n.taskEither.right(g.accessRequested)):n.taskEither.left(Ie())}))),this.updateTokenFp=B((f={})=>{var m;return n.function.pipe(s("web_app_biometry_update_token","biometry_token_updated",{...f,params:{token:f.token||"",reason:(m=f.reason)==null?void 0:m.trim()}}),n.taskEither.map(g=>g.status))}),this.authenticate=h(this.authenticateFp),this.openSettings=h(this.openSettingsFp),this.requestAccess=h(this.requestAccessFp),this.updateToken=h(this.updateTokenFp),this.mount=h(this.mountFp)}}const We=(i,e,s)=>o.requestFp(i,e,{postEvent:Z,...s}),we=(i,e,s)=>o.request2Fp(i,e,{postEvent:Z,...s}),br=(...i)=>He.BetterPromise.fn(()=>We(...i)()),fr=(...i)=>He.BetterPromise.fn(()=>we(...i)()),T=X({request:we});function _r(){return new Ue({...n.function.pipe(S(),R,k,T,z("biometry")),offInfoReceived(i){o.off("biometry_info_received",i)},onInfoReceived(i){return o.on("biometry_info_received",i)}})}const mr=_r();class Qe{constructor({postEvent:e,storage:s,isVBma:r,isPageReload:a}){t(this,"isConfirmationEnabled");t(this,"isMounted");t(this,"mountFp");t(this,"mount");t(this,"unmount");t(this,"disableConfirmationFp");t(this,"disableConfirmation");t(this,"enableConfirmationFp");t(this,"enableConfirmation");const c=new N({initialState:{isConfirmationEnabled:!1},onChange(b){s.set(b)}}),p=new re({onMounted:c.setState,restoreState:s.get,initialState:{isConfirmationEnabled:!1},isPageReload:a}),u={requires:"web_app_setup_closing_behavior",isVBma:r},d=y({...u,returns:"plain"}),l=y({...u,returns:"either",isMounted:p.isMounted}),w=b=>b===this.isConfirmationEnabled()?n.either.right(void 0):(c.setState({isConfirmationEnabled:b}),e("web_app_setup_closing_behavior",{need_confirmation:b}));this.isConfirmationEnabled=c.getter("isConfirmationEnabled"),this.isMounted=p.isMounted,this.disableConfirmationFp=l(()=>w(!1)),this.enableConfirmationFp=l(()=>w(!0)),this.mountFp=d(()=>{const b=()=>{};return n.function.pipe(p.mount(),n.either.match(b,b))}),this.unmount=p.unmount,this.disableConfirmation=h(this.disableConfirmationFp),this.enableConfirmation=h(this.enableConfirmationFp),this.mount=h(this.mountFp)}}function wr(){return new Qe(n.function.pipe(S(),z("closingBehavior"),R))}const Fr=wr();class Ke{constructor({version:e,isVBma:s,invokeCustomMethod:r}){t(this,"isSupported");t(this,"deleteItemFp");t(this,"deleteItem");t(this,"getItemFp");t(this,"getItem");t(this,"getItemsFp");t(this,"getItems");t(this,"getKeysFp");t(this,"getKeys");t(this,"setItemFp");t(this,"setItem");t(this,"clearFp");t(this,"clear");const a=y({version:e,requires:"web_app_invoke_custom_method",isVBma:s,returns:"task"});this.isSupported=U("web_app_invoke_custom_method",e),this.deleteItemFp=a((c,p)=>{const u=Array.isArray(c)?c:[c];return n.function.pipe(u.length?r("deleteStorageValues",{keys:u},p):n.taskEither.right(void 0),n.taskEither.map(()=>{}))}),this.getItemFp=a((c,p)=>n.function.pipe(this.getItemsFp([c],p),n.taskEither.map(u=>u[c]||""))),this.getItemsFp=a((c,p)=>n.function.pipe(c.length?r("getStorageValues",{keys:c},p):n.taskEither.right({}),n.taskEither.map(u=>({...c.reduce((d,l)=>(d[l]="",d),{}),...E.parse(E.record(E.string(),E.string()),u)})))),this.getKeysFp=a(c=>n.function.pipe(r("getStorageKeys",{},c),n.taskEither.map(p=>E.parse(E.array(E.string()),p)))),this.setItemFp=a((c,p,u)=>n.function.pipe(r("saveStorageValue",{key:c,value:p},u),n.taskEither.map(()=>{}))),this.clearFp=a(c=>n.function.pipe(this.getKeysFp(c),n.taskEither.chain(this.deleteItemFp))),this.deleteItem=h(this.deleteItemFp),this.getItem=h(this.getItemFp),this.getItems=h(this.getItemsFp),this.getKeys=h(this.getKeysFp),this.setItem=h(this.setItemFp),this.clear=h(this.clearFp)}}const he=se(0);function ue(){return he.set(he()+1),he().toString()}function Ne(i,e,s){return o.invokeCustomMethodFp(i,e,ue(),{...s||{},postEvent:Z})}const Fe=X({invokeCustomMethod:Ne});function Sr(){return new Ke(n.function.pipe(S(),k,Fe))}const Cr=Sr();class ze{constructor({isVBma:e,request:s,version:r,createRequestId:a}){t(this,"getItemFp");t(this,"getItem");t(this,"setItemFp");t(this,"setItem");t(this,"deleteItemFp");t(this,"deleteItem");t(this,"clearFp");t(this,"clear");const c=y({version:r,requires:"web_app_device_storage_get_key",isVBma:e,returns:"task"}),p=(u,d,l)=>{const w=a();return n.function.pipe(s(u,["device_storage_failed",d],{params:{...l,req_id:w},capture:(b=>"payload"in b?b.payload.req_id===w:!0)}),n.taskEither.chain(b=>b.event==="device_storage_failed"?n.taskEither.left(new Pe(b.payload.error||"UNKNOWN_ERROR")):n.taskEither.right(b.payload)))};this.getItemFp=c(u=>n.function.pipe(p("web_app_device_storage_get_key","device_storage_key_received",{key:u}),n.taskEither.map(d=>d.value))),this.setItemFp=c((u,d)=>n.function.pipe(p("web_app_device_storage_save_key","device_storage_key_saved",{key:u,value:d}),n.taskEither.map(()=>{}))),this.deleteItemFp=c(u=>this.setItemFp(u,null)),this.clearFp=c(()=>n.function.pipe(p("web_app_device_storage_clear","device_storage_cleared",{}),n.taskEither.map(()=>{}))),this.getItem=h(this.getItemFp),this.setItem=h(this.setItemFp),this.deleteItem=h(this.deleteItemFp),this.clear=h(this.clearFp)}}const Je=X({createRequestId:ue});function kr(){return new ze(n.function.pipe(S(),k,T,Je))}const vr=kr();function Br({request:i,...e}){return q(s=>n.function.pipe(i("web_app_request_emoji_status_access","emoji_status_access_requested",s),n.taskEither.map(r=>r.status)),{...e,requires:"web_app_request_emoji_status_access",returns:"task"})}function Er(){return Br(n.function.pipe(S(),k,T))}const Ye=Er(),yr=h(Ye);function $r({request:i,...e}){return q((s,r)=>n.function.pipe(i("web_app_set_emoji_status",["emoji_status_set","emoji_status_failed"],{params:{custom_emoji_id:s,duration:(r||{}).duration},...r}),n.taskEither.chainW(a=>a.event==="emoji_status_failed"?n.taskEither.left(new xe(a.payload.error)):n.taskEither.right(void 0))),{...e,requires:"web_app_set_emoji_status",returns:"task"})}function qr(){return $r(n.function.pipe(S(),T,k))}const Ze=qr(),Ir=h(Ze);class Xe{constructor({postEvent:e,isVBma:s,version:r}){t(this,"isSupported");t(this,"impactOccurredFp");t(this,"impactOccurred");t(this,"notificationOccurredFp");t(this,"notificationOccurred");t(this,"selectionChangedFp");t(this,"selectionChanged");const a="web_app_trigger_haptic_feedback",c=y({requires:a,isVBma:s,version:r,returns:"plain"});this.isSupported=U(a,r),this.impactOccurredFp=c(p=>e(a,{type:"impact",impact_style:p})),this.notificationOccurredFp=c(p=>e(a,{type:"notification",notification_type:p})),this.selectionChangedFp=c(()=>e(a,{type:"selection_change"})),this.impactOccurred=h(this.impactOccurredFp),this.notificationOccurred=h(this.notificationOccurredFp),this.selectionChanged=h(this.selectionChangedFp)}}function Hr(){return new Xe(n.function.pipe(S(),R,k))}const Pr=Hr();function Ar({postEvent:i,...e}){return q(()=>i("web_app_add_to_home_screen"),{...e,requires:"web_app_add_to_home_screen",returns:"either"})}function Mr(){return Ar(n.function.pipe(S(),k,R))}const et=Mr(),Rr=h(et);function xr({request:i,...e}){return q(s=>n.function.pipe(i("web_app_check_home_screen","home_screen_checked",s),n.taskEither.map(r=>r.status||"unknown")),{...e,requires:"web_app_check_home_screen",returns:"task"})}function Tr(){return xr(n.function.pipe(S(),k,T))}const tt=Tr(),Vr=h(tt);class rt{constructor({retrieveInitData:e}){t(this,"_state",_.signal());t(this,"_raw",_.signal());t(this,"state",_.computed(this._state));t(this,"authDate",this.fromState("auth_date"));t(this,"canSendAfter",this.fromState("can_send_after"));t(this,"canSendAfterDate",_.computed(()=>{const e=this.authDate(),s=this.canSendAfter();return s&&e?new Date(e.getTime()+s*1e3):void 0}));t(this,"chat",this.fromState("chat"));t(this,"chatType",this.fromState("chat_type"));t(this,"chatInstance",this.fromState("chat_instance"));t(this,"hash",this.fromState("hash"));t(this,"queryId",this.fromState("query_id"));t(this,"raw",_.computed(this._raw));t(this,"receiver",this.fromState("receiver"));t(this,"signature",this.fromState("signature"));t(this,"startParam",this.fromState("start_param"));t(this,"auth",this.fromState("auth"));t(this,"user",this.fromState("user"));t(this,"restoreFp");t(this,"restore");this.restoreFp=()=>n.function.pipe(e(),n.either.map(n.option.match(()=>{},({raw:s,obj:r})=>{this._state.set(r),this._raw.set(s)}))),this.restore=A.throwifyFpFn(this.restoreFp)}fromState(e){return _.computed(()=>{const s=this._state();return s?s[e]:void 0})}}function Lr(){return new rt({retrieveInitData(){return n.function.pipe(n.either.Do,n.either.bindW("obj",()=>n.function.pipe(o.retrieveLaunchParamsFp(),n.either.map(({vbWebAppData:i})=>i?n.option.some(i):n.option.none))),n.either.bindW("raw",o.retrieveRawInitDataFp),n.either.map(({obj:i,raw:e})=>n.function.pipe(n.option.Do,n.option.bind("obj",()=>i),n.option.bind("raw",()=>e))))}})}const Or=Lr();class st{constructor({version:e,request:s,isVBma:r}){t(this,"isOpened");t(this,"isSupported");t(this,"openSlugFp");t(this,"openSlug");t(this,"openUrlFp");t(this,"openUrl");const a=y({version:e,isVBma:r,requires:"web_app_open_invoice",returns:"task"}),c=_.signal(!1),p=()=>{c.set(!1)};this.isSupported=U("web_app_open_invoice",e),this.isOpened=_.computed(c),this.openSlugFp=a((u,d)=>n.function.pipe(this.isOpened()?n.taskEither.left(new ae("Invoice is already opened")):n.taskEither.right(void 0),n.taskEither.chain(()=>(c.set(!0),s("web_app_open_invoice","invoice_closed",{...d,params:{slug:u},capture:l=>u===l.slug}))),n.taskEither.mapBoth(l=>(p(),l),l=>(p(),l.status)))),this.openUrlFp=a((u,d)=>{const{hostname:l,pathname:w}=new URL(u,window.location.href);if(l!=="vbot.vn")return n.taskEither.left(new G(`Link has unexpected hostname: ${l}`));const b=w.match(/^\/(\$|invoice\/)([A-Za-z0-9\-_=]+)$/);return b?this.openSlugFp(b[2],d):n.taskEither.left(new G('Expected to receive a link with a pathname in format "/invoice/{slug}" or "/${slug}"'))}),this.openUrl=h(this.openUrlFp),this.openSlug=h(this.openSlugFp)}}function jr(){return new st(n.function.pipe(S(),T,k))}const Dr=jr();function Gr({postEvent:i,...e}){return q((s,r={})=>{if(typeof s=="string")try{s=new URL(s)}catch(a){return n.either.left(new G(`"${s.toString()}" is invalid URL`,a))}return i("web_app_open_link",{url:s.toString(),try_browser:r.tryBrowser,try_instant_view:r.tryInstantView})},{...e,returns:"either"})}function Ur(){return Gr(n.function.pipe(S(),R))}const nt=Ur(),Wr=h(nt);function Qr({postEvent:i,version:e,...s}){return q(r=>{const a=r.toString();return a.match(/^https:\/\/vbot\.vn\/.+/)?o.supports("web_app_open_vb_link",L(e))?(r=new URL(r),i("web_app_open_vb_link",{path_full:r.pathname+r.search})):(window.location.href=a,n.either.right(void 0)):n.either.left(new G(`"${a}" is invalid URL`))},{...s,returns:"either"})}function Kr(){return Qr(n.function.pipe(S(),R,k))}const Se=Kr(),Nr=h(Se);function zr({openVbotLink:i,...e}){return q((s,r)=>i("https://vbot.vn/share/url?"+new URLSearchParams({url:s,text:r||""}).toString().replace(/\+/g,"%20")),{...e,returns:"either"})}function Jr(){return zr({...S(),openVbotLink:Se})}const it=Jr(),Yr=h(it);function Zr(i){let e=!1,s,r;return i.available&&(e=!0,s=i.access_requested,r=i.access_granted),{available:e,accessGranted:r||!1,accessRequested:s||!1}}class ot{constructor({version:e,request:s,postEvent:r,storage:a,isVBma:c,isPageReload:p}){t(this,"state");t(this,"isAvailable");t(this,"isAccessGranted");t(this,"isAccessRequested");t(this,"isMounted");t(this,"isSupported");t(this,"openSettingsFp");t(this,"openSettings");t(this,"requestLocationFp");t(this,"requestLocation");t(this,"mountFp");t(this,"mount");t(this,"unmount");const u=new N({initialState:{available:!1,accessGranted:!1,accessRequested:!1},onChange:a.set}),d=new me({isPageReload:p,restoreState:a.get,onMounted:u.setState,initialState(F){return n.function.pipe(s("web_app_check_location","location_checked",F),n.taskEither.map(Zr))}}),l={version:e,requires:"web_app_check_location",isVBma:c},w=y({...l,returns:"either"}),b=y({...l,returns:"task"}),C=y({...l,returns:"task",isMounted:d.isMounted});this.isAvailable=u.getter("available"),this.isAccessRequested=u.getter("accessRequested"),this.isAccessGranted=u.getter("accessGranted"),this.isSupported=U("web_app_check_location",e),this.isMounted=d.isMounted,this.state=u.state,this.unmount=d.unmount,this.mountFp=b(d.mount),this.openSettingsFp=w(()=>r("web_app_open_location_settings")),this.requestLocationFp=C(F=>n.function.pipe(s("web_app_request_location","location_requested",F),n.taskEither.map(v=>{if(!v.available)return u.setState({available:!1}),null;const{available:B,...f}=v;return f}))),this.mount=h(this.mountFp),this.openSettings=h(this.openSettingsFp),this.requestLocation=h(this.requestLocationFp)}}function Xr(){return new ot(n.function.pipe(S(),R,k,T,z("locationManager")))}const es=Xr();class at{constructor({defaults:e,...s}){t(this,"bgColor");t(this,"hasShineEffect");t(this,"isEnabled");t(this,"isLoaderVisible");t(this,"isVisible");t(this,"isMounted");t(this,"state");t(this,"text");t(this,"textColor");t(this,"showFp");t(this,"show");t(this,"hideFp");t(this,"hide");t(this,"enableFp");t(this,"enable");t(this,"enableShineEffectFp");t(this,"enableShineEffect");t(this,"disableFp");t(this,"disable");t(this,"disableShineEffectFp");t(this,"disableShineEffect");t(this,"setBgColorFp");t(this,"setBgColor");t(this,"setTextColorFp");t(this,"setTextColor");t(this,"setTextFp");t(this,"setText");t(this,"showLoaderFp");t(this,"showLoader");t(this,"hideLoaderFp");t(this,"hideLoader");t(this,"setParamsFp");t(this,"setParams");t(this,"mountFp");t(this,"mount");t(this,"unmount");t(this,"onClickFp");t(this,"onClick");t(this,"offClickFp");t(this,"offClick");const r=new ce({...s,version:"100",initialState:{hasShineEffect:!1,isEnabled:!0,isLoaderVisible:!1,isVisible:!1,text:"Continue"},method:"web_app_setup_main_button",payload:c=>({has_shine_effect:c.hasShineEffect,is_visible:c.isVisible,is_active:c.isEnabled,is_progress_visible:c.isLoaderVisible,text:c.text,color:c.bgColor,text_color:c.textColor})}),a=(c,p)=>{const u=r.stateGetter(c);return _.computed(()=>u()||L(p))};this.bgColor=a("bgColor",e.bgColor),this.textColor=a("textColor",e.textColor),this.hasShineEffect=r.stateGetter("hasShineEffect"),this.isEnabled=r.stateGetter("isEnabled"),this.isLoaderVisible=r.stateGetter("isLoaderVisible"),this.text=r.stateGetter("text"),this.isVisible=r.stateGetter("isVisible"),this.isMounted=r.isMounted,this.state=r.state,[this.setBgColor,this.setBgColorFp]=r.stateSetters("bgColor"),[this.setTextColor,this.setTextColorFp]=r.stateSetters("textColor"),[[this.disableShineEffect,this.disableShineEffectFp],[this.enableShineEffect,this.enableShineEffectFp]]=r.stateBoolSetters("hasShineEffect"),[[this.disable,this.disableFp],[this.enable,this.enableFp]]=r.stateBoolSetters("isEnabled"),[[this.hideLoader,this.hideLoaderFp],[this.showLoader,this.showLoaderFp]]=r.stateBoolSetters("isLoaderVisible"),[this.setText,this.setTextFp]=r.stateSetters("text"),[[this.hide,this.hideFp],[this.show,this.showFp]]=r.stateBoolSetters("isVisible"),this.setParams=r.setState,this.setParamsFp=r.setStateFp,this.onClick=r.onClick,this.onClickFp=r.onClickFp,this.offClick=r.offClick,this.offClickFp=r.offClickFp,this.mount=r.mount,this.mountFp=r.mountFp,this.unmount=r.unmount}}function Ce(i,e){document.documentElement.style.setProperty(i,e)}function ke(i){document.documentElement.style.removeProperty(i)}function ct(i){return n.function.pipe(I.toRGBFullFp(i),n.either.map(e=>Math.sqrt([.299,.587,.114].reduce((s,r,a)=>{const c=parseInt(e.slice(1+a*2,1+(a+1)*2),16);return s+c*c*r},0))<120))}const ve=A.throwifyFpFn(ct);class ut{constructor({initialState:e,onChange:s,offChange:r,isVBma:a,storage:c,isPageReload:p}){t(this,"accentTextColor");t(this,"bgColor");t(this,"buttonColor");t(this,"buttonTextColor");t(this,"bottomBarBgColor");t(this,"destructiveTextColor");t(this,"headerBgColor");t(this,"hintColor");t(this,"linkColor");t(this,"secondaryBgColor");t(this,"sectionBgColor");t(this,"sectionHeaderTextColor");t(this,"sectionSeparatorColor");t(this,"subtitleTextColor");t(this,"textColor");t(this,"_isCssVarsBound",_.signal(!1));t(this,"isCssVarsBound",_.computed(this._isCssVarsBound));t(this,"bindCssVarsFp");t(this,"bindCssVars");t(this,"state");t(this,"isDark",_.computed(()=>{const e=this.bgColor();return!e||ve(e)}));t(this,"isMounted");t(this,"mountFp");t(this,"mount");t(this,"unmount");const u=new N({initialState:{},onChange:c.set}),d=F=>{u.setState(F.theme_params)},l=new re({initialState:()=>n.either.right(L(e)),isPageReload:p,onMounted(F){u.setState(F),s(d)},onUnmounted(){r(d)},restoreState:c.get}),w={isVBma:a,returns:"either"},b=y(w),C=y({...w,isMounted:l.isMounted});this.accentTextColor=u.getter("accent_text_color"),this.bgColor=u.getter("bg_color"),this.buttonColor=u.getter("button_color"),this.buttonTextColor=u.getter("button_text_color"),this.bottomBarBgColor=u.getter("bottom_bar_bg_color"),this.destructiveTextColor=u.getter("destructive_text_color"),this.headerBgColor=u.getter("header_bg_color"),this.hintColor=u.getter("hint_color"),this.linkColor=u.getter("link_color"),this.secondaryBgColor=u.getter("secondary_bg_color"),this.sectionBgColor=u.getter("section_bg_color"),this.sectionHeaderTextColor=u.getter("section_header_text_color"),this.sectionSeparatorColor=u.getter("section_separator_color"),this.subtitleTextColor=u.getter("subtitle_text_color"),this.textColor=u.getter("text_color"),this.state=u.state,this.isMounted=l.isMounted,this.bindCssVarsFp=C(F=>{if(this._isCssVarsBound())return n.either.left(new oe);F||(F=f=>`--vb-theme-${A.snakeToKebab(f)}`);const v=f=>{Object.entries(u.state()).forEach(([m,g])=>{g&&f(m,g)})},B=()=>{v((f,m)=>{Ce(F(f),m)})};return B(),u.state.sub(B),this._isCssVarsBound.set(!0),n.either.right(()=>{v(ke),u.state.unsub(B),this._isCssVarsBound.set(!1)})}),this.mountFp=b(l.mount),this.unmount=l.unmount,this.bindCssVars=h(this.bindCssVarsFp),this.mount=h(this.mountFp)}}const ge=se({});function ts(){return new ut({...n.function.pipe(S(),z("themeParams")),offChange(i){o.off("theme_changed",i)},onChange(i){o.on("theme_changed",i)},initialState:ge})}const te=ts();function pt(i,e,s){return n.function.pipe(_e(i,e),r=>({...r,defaults:s}))}const rs=new at(pt("mainButton","main_button_pressed",{bgColor:_.computed(()=>te.buttonColor()||"#2481cc"),textColor:_.computed(()=>te.buttonTextColor()||"#ffffff")}));class dt{constructor({storage:e,isPageReload:s,version:r,postEvent:a,isVBma:c,theme:p,onVisibilityChanged:u,offVisibilityChanged:d}){t(this,"isSupported");t(this,"isDark",_.computed(()=>{const e=this.bgColorRgb();return e?ve(e):!1}));t(this,"isActive");t(this,"state");t(this,"isCssVarsBound");t(this,"bindCssVarsFp");t(this,"bindCssVars");t(this,"isMounted");t(this,"mountFp");t(this,"mount");t(this,"unmount");t(this,"bgColor");t(this,"bgColorRgb");t(this,"setBgColorFp");t(this,"setBgColor");t(this,"headerColor");t(this,"headerColorRgb");t(this,"setHeaderColorFp");t(this,"setHeaderColor");t(this,"bottomBarColor");t(this,"bottomBarColorRgb");t(this,"setBottomBarColorFp");t(this,"setBottomBarColor");t(this,"closeFp");t(this,"close");t(this,"readyFp");t(this,"ready");const l=g=>{C.setState({isActive:g.is_visible})},w=g=>{[[this.headerColor,"web_app_set_header_color"],[this.bgColor,"web_app_set_background_color"],[this.bottomBarColor,"web_app_set_bottom_bar_color"]].forEach(([H,x])=>{const M=H();if(!I.isRGB(M)&&(x!=="web_app_set_header_color"||!["bg_color","secondary_bg_color"].includes(M))){const j=g[M];j&&a(x,{color:j})}})},b=new re({initialState(){return n.either.right({bgColor:"bg_color",headerColor:"header_bg_color",bottomBarColor:"bottom_bar_bg_color",isActive:!0})},isPageReload:s,onMounted:g=>{u(l),p.sub(w),C.setState(g)},onUnmounted(){d(l),p.unsub(w)},restoreState:e.get});this.isMounted=b.isMounted,this.mountFp=q(()=>{const g=()=>{};return n.function.pipe(b.mount(),n.either.match(g,g))},{isVBma:c,returns:"plain"}),this.mount=h(this.mountFp),this.unmount=b.unmount;const C=new N({initialState:{bgColor:"bg_color",bottomBarColor:"bottom_bar_bg_color",headerColor:"bg_color",isActive:!1},onChange:e.set});this.state=C.state;const F=g=>I.isRGB(g)?g:L(p)[g],v=g=>_.computed(()=>F(g()));this.isActive=C.getter("isActive"),this.isSupported=_.computed(()=>["web_app_set_header_color","web_app_set_background_color","web_app_set_bottom_bar_color"].some(g=>o.supports(g,L(r))));const B=_.signal(!1);this.isCssVarsBound=_.computed(B),this.bindCssVarsFp=q(g=>{if(B())return n.either.left(new oe);const[H,x]=A.createCbCollector(()=>{B.set(!1)}),M=(j,V)=>{const W=()=>{Ce(j,V()||null)};W(),H(V.sub(W),ke.bind(null,j))};return g||(g=j=>`--tg-${A.camelToKebab(j)}`),M(g("bgColor"),this.bgColorRgb),M(g("bottomBarColor"),this.bottomBarColorRgb),M(g("headerColor"),this.headerColorRgb),B.set(!0),n.either.right(x)},{isVBma:c,returns:"either",isMounted:this.isMounted}),this.bindCssVars=h(this.bindCssVarsFp);const f=g=>{const H=C.getter(g),x=v(H),M={headerColor:"web_app_set_header_color",bgColor:"web_app_set_background_color",bottomBarColor:"web_app_set_bottom_bar_color"}[g],j=q(V=>{if(V===H())return n.either.right(void 0);if(M==="web_app_set_header_color"&&(V==="bg_color"||V==="secondary_bg_color"))return n.function.pipe(a("web_app_set_header_color",{color_key:V}),n.either.map(()=>{C.setState({[g]:V})}));const W=F(V);return n.function.pipe(W?a(M,{color:W}):n.either.left(new Le(V)),n.either.map(()=>{C.setState({[g]:V})}))},{isVBma:c,version:r,requires:M,isMounted:this.isMounted,returns:"either",supports:g==="headerColor"?{rgb:{method:"web_app_set_header_color",param:"color",shouldCheck:I.isRGB}}:void 0});return[H,x,h(j),j]};[this.bgColor,this.bgColorRgb,this.setBgColor,this.setBgColorFp]=f("bgColor"),[this.headerColor,this.headerColorRgb,this.setHeaderColor,this.setHeaderColorFp]=f("headerColor"),[this.bottomBarColor,this.bottomBarColorRgb,this.setBottomBarColor,this.setBottomBarColorFp]=f("bottomBarColor");const m=y({isVBma:c,returns:"either"});this.closeFp=m(g=>a("web_app_close",{return_back:g})),this.close=h(this.closeFp),this.readyFp=m(()=>a("web_app_ready")),this.ready=h(this.readyFp)}}function ss(){return new dt({...n.function.pipe(S(),R,k,z("miniApp")),offVisibilityChanged(i){o.off("visibility_changed",i)},onVisibilityChanged(i){o.on("visibility_changed",i)},theme:te.state})}const ht=ss();function ns(){const i=Date.now(),e=Math.random().toString(36).substring(2,9);return`notif_${i}_${e}`}class lt{constructor({version:e,isVBma:s}){t(this,"isSupported");t(this,"sendFp");t(this,"send");const r=y({version:e,isVBma:s,requires:"web_app_send_notification",returns:"task"});this.isSupported=U("web_app_send_notification",e),this.sendFp=r(a=>n.function.pipe(n.taskEither.fromEither(o.postEventFp("web_app_send_notification",{id:ns(),message:a.message,title:a.title,type:a.type??"default"})),n.taskEither.map(()=>{}))),this.send=a=>this.sendFp(a)().then(p=>{if(p._tag==="Left")throw p.left;return p.right})}}function is(){return new lt(k(S()))}const os=is();function as(i){const e=i.message.trim(),s=(i.title||"").trim(),r=i.buttons||[];if(s.length>64)return n.either.left(new G(`Invalid title: ${s}`));if(!e||e.length>256)return n.either.left(new G(`Invalid message: ${e}`));if(r.length>3)return n.either.left(new G(`Invalid buttons count: ${r.length}`));const a=[];if(!r.length)a.push({type:"close",id:""});else for(let c=0;c<r.length;c++){const p=r[c],u=p.id||"";if(u.length>64)return n.either.left(new G(`Button with index ${c} has invalid id: ${u}`));if(!p.type||p.type==="default"||p.type==="destructive"){const d=p.text.trim();if(!d||d.length>64)return n.either.left(new G(`Button with index ${c} has invalid text: ${d}`));a.push({type:p.type,text:d,id:u})}else a.push({type:p.type,id:u})}return n.either.right({title:s,message:e,buttons:a})}class gt{constructor({version:e,isVBma:s,request:r}){t(this,"isOpened");t(this,"isSupported");t(this,"showFp");t(this,"show");const a=_.signal(!1),c=()=>{a.set(!1)},p=y({version:e,isVBma:s,requires:"web_app_open_popup",returns:"task"});this.isSupported=U("web_app_open_popup",e),this.isOpened=_.computed(a),this.showFp=p(u=>n.function.pipe(this.isOpened()?n.taskEither.left(new ae("A popup is already opened")):n.taskEither.right(void 0),n.taskEither.chainW(()=>n.taskEither.fromEither(as(u))),n.taskEither.chain(d=>(a.set(!0),r("web_app_open_popup","popup_closed",{...u,params:d}))),n.taskEither.mapBoth(d=>(c(),d),d=>(c(),d.button_id)))),this.show=h(this.showFp)}}function cs(){return new gt(n.function.pipe(S(),T,k))}const us=cs();function ps({request:i,...e}){return q(s=>n.function.pipe(i("web_app_request_phone","phone_requested",s),n.taskEither.map(r=>r.status)),{...e,requires:"web_app_request_phone",returns:"task"})}function ds(){return ps(n.function.pipe(S(),k,T))}const Be=ds(),hs=h(Be);function ls({invokeCustomMethod:i,requestPhoneAccess:e,...s}){const r=p=>n.function.pipe(i("getRequestedContact",{},{...p,timeout:(p||{}).timeout||5e3}),n.taskEither.chainW(u=>{const d=E.safeParse(E.string(),u);if(!d.success)return n.taskEither.left(new ee(u,d.issues));if(!d.output)return n.taskEither.right(void 0);const l=E.safeParse(I.pipeQueryToSchema(E.looseObject({contact:I.pipeJsonToSchema(E.looseObject({user_id:E.number(),phone_number:E.string(),first_name:E.string(),last_name:E.optional(E.string())})),auth_date:E.pipe(E.string(),E.transform(w=>new Date(Number(w)*1e3)),E.date()),hash:E.string()})),d.output);return l.success?n.taskEither.right({raw:d.output,parsed:l.output}):n.taskEither.left(new ee(d.output,l.issues))})),a=p=>n.function.pipe(r(p),n.taskEither.match(u=>ee.is(u)?n.either.left(u):n.either.right(void 0),u=>n.either.right(u))),c=p=>A.BetterTaskEither(async(u,d,l)=>{let w=50;for(;!l.isRejected;){const b=await a(l)();if(b._tag==="Left")return d(b.left);if(b.right)return u(b.right);await new Promise(C=>setTimeout(C,w)),w+=50}},p);return q(p=>A.BetterTaskEither.fn(u=>n.function.pipe(a(u),n.taskEither.chain(d=>d?n.taskEither.right(d):n.function.pipe(e(u),n.taskEither.chainW(l=>l==="sent"?c(u):n.taskEither.left(new fe("User denied access")))))),p),{...s,returns:"task",requires:"web_app_request_phone"})}function gs(){return ls({...n.function.pipe(S(),Fe,k),requestPhoneAccess:Be})}function bs({requestContact:i,...e}){return q(i,{...e,returns:"task",requires:"web_app_request_phone"})}function fs(){return bs({...n.function.pipe(S(),k),requestContact(i){return n.function.pipe(Ee(i),n.taskEither.map(e=>e.parsed))}})}const Ee=gs(),_s=h(Ee),bt=fs(),ms=h(bt);function ws({request:i,...e}){return q(s=>n.function.pipe(i("web_app_request_write_access","write_access_requested",s),n.taskEither.map(r=>r.status)),{...e,requires:"web_app_request_write_access",returns:"task"})}function Fs(){return ws(n.function.pipe(S(),k,T))}const ft=Fs(),Ss=h(ft);class _t{constructor({version:e,onClosed:s,onTextReceived:r,isVBma:a,postEvent:c}){t(this,"isOpened");t(this,"isSupported");t(this,"captureFp");t(this,"capture");t(this,"closeFp");t(this,"close");t(this,"openFp");t(this,"open");const p={version:e,requires:"web_app_open_scan_qr_popup",isVBma:a},u=y({...p,returns:"either"}),d=y({...p,returns:"task"}),l=_.signal(!1),w=()=>{l.set(!1)};this.isSupported=U("web_app_open_scan_qr_popup",e),this.isOpened=_.computed(l),this.captureFp=d(b=>{let C;return n.function.pipe(this.openFp({...b,onCaptured:F=>{b.capture(F)&&(C=F,this.close())}}),n.taskEither.map(()=>C))}),this.closeFp=u(()=>n.function.pipe(c("web_app_close_scan_qr_popup"),n.either.map(w))),this.openFp=d(b=>n.function.pipe(l()?n.taskEither.left(new ae("The QR Scanner is already opened")):async()=>c("web_app_open_scan_qr_popup",{text:b.text}),n.taskEither.chainW(()=>{l.set(!0);const[C,F]=A.createCbCollector(),v=B=>(F(),l.set(!1),B);return n.function.pipe(A.BetterTaskEither(B=>{C(s(B),l.sub(f=>{f||B()}),r(b.onCaptured))},b),n.taskEither.mapBoth(v,v))}))),this.open=h(this.openFp),this.capture=h(this.captureFp),this.close=h(this.closeFp)}}function Cs(){return new _t({...n.function.pipe(S(),R,k),onClosed(i){return o.on("scan_qr_popup_closed",i)},onTextReceived(i){return o.on("qr_text_received",e=>{i(e.data)})}})}const ks=Cs();class mt{constructor({}){t(this,"isRefreshing");t(this,"finishRefreshFp");t(this,"finishRefresh");t(this,"onRefreshRequest");const e=_.signal(!1);o.on("refresh_requested",()=>{e.set(!0)}),this.isRefreshing=_.computed(e),this.finishRefreshFp=()=>n.function.pipe(n.taskEither.fromEither(o.postEventFp("web_app_finish_refresh")),n.taskEither.map(()=>{e.set(!1)})),this.finishRefresh=()=>this.finishRefreshFp()().then(r=>{if(r._tag==="Left")throw r.left;return r.right}),this.onRefreshRequest=s=>{const r=()=>{s()};return o.on("refresh_requested",r)}}}function vs(){return new mt(n.function.pipe(S()))}const Bs=vs();class wt{constructor({defaults:e,...s}){t(this,"isSupported");t(this,"position");t(this,"bgColor");t(this,"hasShineEffect");t(this,"isEnabled");t(this,"isLoaderVisible");t(this,"isVisible");t(this,"isMounted");t(this,"state");t(this,"text");t(this,"textColor");t(this,"showFp");t(this,"show");t(this,"hideFp");t(this,"hide");t(this,"enableFp");t(this,"enable");t(this,"enableShineEffectFp");t(this,"enableShineEffect");t(this,"disableFp");t(this,"disable");t(this,"disableShineEffectFp");t(this,"disableShineEffect");t(this,"setBgColorFp");t(this,"setBgColor");t(this,"setTextColorFp");t(this,"setTextColor");t(this,"setTextFp");t(this,"setText");t(this,"setPositionFp");t(this,"setPosition");t(this,"showLoaderFp");t(this,"showLoader");t(this,"hideLoaderFp");t(this,"hideLoader");t(this,"setParamsFp");t(this,"setParams");t(this,"mountFp");t(this,"mount");t(this,"unmount");t(this,"onClickFp");t(this,"onClick");t(this,"offClickFp");t(this,"offClick");const r=new ce({...s,initialState:{hasShineEffect:!1,isEnabled:!0,isLoaderVisible:!1,isVisible:!1,text:"Cancel",position:"left"},method:"web_app_setup_secondary_button",payload:c=>({has_shine_effect:c.hasShineEffect,is_visible:c.isVisible,is_active:c.isEnabled,is_progress_visible:c.isLoaderVisible,text:c.text,color:c.bgColor,text_color:c.textColor,position:c.position})}),a=(c,p)=>{const u=r.stateGetter(c);return _.computed(()=>u()||L(p))};this.isSupported=U("web_app_setup_secondary_button",s.version),this.bgColor=a("bgColor",e.bgColor),this.textColor=a("textColor",e.textColor),this.position=r.stateGetter("position"),this.hasShineEffect=r.stateGetter("hasShineEffect"),this.isEnabled=r.stateGetter("isEnabled"),this.isLoaderVisible=r.stateGetter("isLoaderVisible"),this.text=r.stateGetter("text"),this.isVisible=r.stateGetter("isVisible"),this.isMounted=r.isMounted,this.state=r.state,[this.setPosition,this.setPositionFp]=r.stateSetters("position"),[this.setBgColor,this.setBgColorFp]=r.stateSetters("bgColor"),[this.setTextColor,this.setTextColorFp]=r.stateSetters("textColor"),[[this.disableShineEffect,this.disableShineEffectFp],[this.enableShineEffect,this.enableShineEffectFp]]=r.stateBoolSetters("hasShineEffect"),[[this.disable,this.disableFp],[this.enable,this.enableFp]]=r.stateBoolSetters("isEnabled"),[[this.hideLoader,this.hideLoaderFp],[this.showLoader,this.showLoaderFp]]=r.stateBoolSetters("isLoaderVisible"),[this.setText,this.setTextFp]=r.stateSetters("text"),[[this.hide,this.hideFp],[this.show,this.showFp]]=r.stateBoolSetters("isVisible"),this.setParams=r.setState,this.setParamsFp=r.setStateFp,this.onClick=r.onClick,this.onClickFp=r.onClickFp,this.offClick=r.offClick,this.offClickFp=r.offClickFp,this.mount=r.mount,this.mountFp=r.mountFp,this.unmount=r.unmount}}function Es(){return new wt(pt("secondaryButton","secondary_button_pressed",{bgColor:_.computed(()=>ht.bottomBarColorRgb()||"#000000"),textColor:_.computed(()=>te.buttonColor()||"#2481cc")}))}const ys=Es();class Ft{constructor({isVBma:e,request:s,version:r,createRequestId:a}){t(this,"getItemFp");t(this,"getItem");t(this,"restoreItemFp");t(this,"restoreItem");t(this,"setItemFp");t(this,"setItem");t(this,"deleteItemFp");t(this,"deleteItem");t(this,"clearFp");t(this,"clear");const c=y({version:r,requires:"web_app_secure_storage_get_key",isVBma:e,returns:"task"}),p=(u,d,l)=>{const w=a();return n.function.pipe(s(u,["secure_storage_failed",d],{params:{...l,req_id:w},capture:(b=>"payload"in b?b.payload.req_id===w:!0)}),n.taskEither.chain(b=>b.event==="secure_storage_failed"?n.taskEither.left(new Ae(b.payload.error||"UNKNOWN_ERROR")):n.taskEither.right(b.payload)))};this.getItemFp=c(u=>n.function.pipe(p("web_app_secure_storage_get_key","secure_storage_key_received",{key:u}),n.taskEither.map(d=>({value:d.value,canRestore:!!d.can_restore})))),this.setItemFp=c((u,d)=>n.function.pipe(p("web_app_secure_storage_save_key","secure_storage_key_saved",{key:u,value:d}),n.taskEither.map(()=>{}))),this.deleteItemFp=c(u=>this.setItemFp(u,null)),this.clearFp=c(()=>n.function.pipe(p("web_app_secure_storage_clear","secure_storage_cleared",{}),n.taskEither.map(()=>{}))),this.restoreItemFp=c(u=>n.function.pipe(p("web_app_secure_storage_restore_key","secure_storage_key_restored",{key:u}),n.taskEither.map(d=>d.value))),this.getItem=h(this.getItemFp),this.setItem=h(this.setItemFp),this.deleteItem=h(this.deleteItemFp),this.clear=h(this.clearFp),this.restoreItem=h(this.restoreItemFp)}}function $s(){return new Ft(n.function.pipe(S(),k,T,Je))}const qs=$s();class St{constructor(e){t(this,"isVisible");t(this,"isMounted");t(this,"isSupported");t(this,"hideFp");t(this,"hide");t(this,"showFp");t(this,"show");t(this,"onClickFp");t(this,"onClick");t(this,"offClickFp");t(this,"offClick");t(this,"mountFp");t(this,"mount");t(this,"unmount");const s=new ce({...e,method:"web_app_setup_settings_button",payload:r=>({is_visible:r.isVisible}),initialState:{isVisible:!1}});this.isVisible=s.stateGetter("isVisible"),this.isMounted=s.isMounted,this.isSupported=s.isSupported,[[this.hide,this.hideFp],[this.show,this.showFp]]=s.stateBoolSetters("isVisible"),this.onClick=s.onClick,this.onClickFp=s.onClickFp,this.offClick=s.offClick,this.offClickFp=s.offClickFp,this.mount=s.mount,this.mountFp=s.mountFp,this.unmount=s.unmount}}const Is=new St(_e("settingsButton","settings_button_pressed"));class Ct{constructor({postEvent:e,storage:s,isVBma:r,isPageReload:a,version:c}){t(this,"isSupported");t(this,"isVerticalEnabled");t(this,"isMounted");t(this,"mountFp");t(this,"mount");t(this,"unmount");t(this,"disableVerticalFp");t(this,"disableVertical");t(this,"enableVerticalFp");t(this,"enableVertical");const p={isVerticalEnabled:!0},u=new N({initialState:p,onChange(F){s.set(F)}}),d=new re({initialState:p,isPageReload:a,onMounted:u.setState,restoreState:s.get}),l={requires:"web_app_setup_swipe_behavior",isVBma:r,version:c},w=y({...l,returns:"plain"}),b=y({...l,isMounted:d.isMounted,returns:"either"}),C=F=>{const v={isVerticalEnabled:F};return u.hasDiff(v)?n.function.pipe(e("web_app_setup_swipe_behavior",{allow_vertical_swipe:F}),n.either.map(()=>{u.setState(v)})):n.either.right(void 0)};this.isSupported=U("web_app_setup_swipe_behavior",c),this.isVerticalEnabled=u.getter("isVerticalEnabled"),this.isMounted=d.isMounted,this.disableVerticalFp=b(()=>C(!1)),this.enableVerticalFp=b(()=>C(!0)),this.mountFp=w(()=>{const F=()=>{};return n.function.pipe(d.mount(),n.either.match(F,F))}),this.unmount=d.unmount,this.disableVertical=h(this.disableVerticalFp),this.enableVertical=h(this.enableVerticalFp),this.mount=h(this.mountFp)}}function Hs(){return new Ct(n.function.pipe(S(),R,k,z("swipeBehavior")))}const Ps=Hs();async function As(i){try{const{clipboard:s}=navigator;if(s)return await s.writeText(i)}catch{}const e=document.createElement("textarea");e.value=i,e.style.top="0",e.style.left="0",e.style.position="fixed",document.body.appendChild(e),e.focus(),e.select();try{document.execCommand("copy")}finally{document.body.removeChild(e)}}function Ms({request:i,...e}){return q((s,r,a)=>n.function.pipe(i("web_app_request_file_download","file_download_requested",{...a,params:{url:s,file_name:r}}),n.taskEither.chain(c=>c.status==="downloading"?n.taskEither.right(void 0):n.taskEither.left(new fe("User denied the action")))),{...e,requires:"web_app_request_file_download",returns:"task"})}function Rs(){return Ms(n.function.pipe(S(),T,k))}const kt=Rs(),xs=h(kt);function Ts({invokeCustomMethod:i,...e}){return q(s=>n.function.pipe(i("getCurrentTime",{},s),n.taskEither.chain(r=>{const a=E.safeParse(E.pipe(E.number(),E.integer(),E.transform(c=>new Date(c*1e3)),E.date()),r);return a.success?n.taskEither.right(a.output):n.taskEither.left(new ee(r,a.issues))})),{...e,requires:"web_app_invoke_custom_method",returns:"task"})}function Vs(){return Ts(n.function.pipe(S(),Fe,k))}const vt=Vs(),Ls=h(vt);function Os({postEvent:i,...e}){return q(()=>i("web_app_hide_keyboard"),{...e,returns:"either",requires:"web_app_hide_keyboard"})}function js(){return Os(n.function.pipe(S(),R,k))}const Bt=js(),Ds=h(Bt);function Gs({request:i,createRequestId:e,...s}){return q(r=>{const a=e();return n.function.pipe(i("web_app_read_text_from_clipboard","clipboard_text_received",{...r,params:{req_id:a},capture:o.captureSameReq(a)}),n.taskEither.map(({data:c=null})=>c))},{...s,requires:"web_app_read_text_from_clipboard",returns:"task"})}function Us(){return Gs({...n.function.pipe(S(),k,T),createRequestId:ue})}const Et=Us(),Ws=h(Et);function yt(i){const e={},s=i.match(/VBot-Android(?:\/([^ ]+))?(?: (\([^)]+\))?|$)/);if(s){const[,r,a]=s;r&&(e.appVersion=r),a&&a.slice(1,a.length-1).split(";").forEach(c=>{const[p,u]=c.trim().split(" ");if(p==="Android")e.androidVersion=u;else if(p==="SDK"){const d=parseInt(u,10);d&&(e.sdkVersion=d)}else u?(e.manufacturer=p,e.model=u):e.performanceClass=p})}return e}function Qs(){return yt(navigator.userAgent)}function Ks({postEvent:i,...e}){return q(s=>{const{size:r}=new Blob([s]);return!r||r>4096?n.either.left(new G(r?"Maximum size of data to send is 4096 bytes":"Attempted to send empty data")):i("web_app_data_send",{data:s})},{...e,returns:"either"})}function Ns(){return Ks(n.function.pipe(S(),R))}const $t=Ns(),zs=h($t);function Js({request:i,...e}){return q((s,r)=>n.function.pipe(i("web_app_send_prepared_message",["prepared_message_failed","prepared_message_sent"],{...r,params:{id:s}}),n.taskEither.chain(a=>a.event==="prepared_message_failed"?n.taskEither.left(new Ve(a.payload.error)):n.taskEither.right(void 0))),{...e,requires:"web_app_send_prepared_message",returns:"task"})}function Ys(){return Js(n.function.pipe(S(),T,k))}const qt=Ys(),Zs=h(qt);function Xs({postEvent:i,...e}){return q((s,r={})=>i("web_app_share_to_story",{text:r.text,media_url:s,widget_link:r.widgetLink}),{...e,requires:"web_app_share_to_story",returns:"either"})}function en(){return Xs(n.function.pipe(S(),R,k))}const It=en(),tn=h(It),be=se(!1);function rn({isInlineMode:i,postEvent:e,...s}){return q((r,a)=>e("web_app_switch_inline_query",{query:r,chat_types:a||[]}),{...s,requires:{every:["web_app_switch_inline_query",()=>L(i)?void 0:"The application must be launched in the inline mode"]},returns:"either"})}function sn(){return rn({...n.function.pipe(S(),R,k),isInlineMode:be})}const Ht=sn(),nn=h(Ht);class Pt{constructor({storage:e,isPageReload:s,onContentSafeAreaInsetsChanged:r,onSafeAreaInsetsChanged:a,onViewportChanged:c,onFullscreenChanged:p,offContentSafeAreaInsetsChanged:u,offFullscreenChanged:d,offSafeAreaInsetsChanged:l,offViewportChanged:w,request:b,isViewportStable:C,isFullscreen:F,isVBma:v,version:B,postEvent:f}){t(this,"state");t(this,"height");t(this,"stableHeight");t(this,"width");t(this,"isExpanded");t(this,"isStable",_.computed(()=>this.height()===this.stableHeight()));t(this,"contentSafeAreaInsets");t(this,"contentSafeAreaInsetTop");t(this,"contentSafeAreaInsetLeft");t(this,"contentSafeAreaInsetRight");t(this,"contentSafeAreaInsetBottom");t(this,"safeAreaInsets");t(this,"safeAreaInsetTop");t(this,"safeAreaInsetLeft");t(this,"safeAreaInsetRight");t(this,"safeAreaInsetBottom");t(this,"isFullscreen");t(this,"requestFullscreenFp");t(this,"requestFullscreen");t(this,"exitFullscreenFp");t(this,"exitFullscreen");t(this,"isCssVarsBound");t(this,"bindCssVarsFp");t(this,"bindCssVars");t(this,"isMounted");t(this,"mountFp");t(this,"mount");t(this,"expandFp");t(this,"expand");const m={top:0,right:0,left:0,bottom:0},g=new N({initialState:{contentSafeAreaInsets:m,height:0,isExpanded:!1,isFullscreen:!1,safeAreaInsets:m,stableHeight:0,width:0},onChange:e.set}),H=$=>{g.setState({isExpanded:$.is_expanded,height:$.height,width:$.width,stableHeight:$.is_state_stable?$.height:void 0})},x=$=>{g.setState({isFullscreen:$.is_fullscreen})},M=$=>{g.setState({safeAreaInsets:$})},j=$=>{g.setState({contentSafeAreaInsets:$})},V=new me({initialState($){const J=Q=>()=>{const[K,D]=Q==="safe-area"?["web_app_request_safe_area","safe_area_changed"]:["web_app_request_content_safe_area","content_safe_area_changed"];return o.supports(K,L(B))?b(K,D,$):n.taskEither.right({top:0,left:0,right:0,bottom:0})},P=Q=>()=>typeof Q=="boolean"?n.taskEither.right(Q):n.taskEither.fromEither(Q());return n.function.pipe(n.taskEither.Do,n.taskEither.bindW("safeAreaInsets",J("safe-area")),n.taskEither.bindW("contentSafeAreaInsets",J("content-safe-area")),n.taskEither.bindW("isFullscreen",P(F)),n.taskEither.bindW("isViewportStable",P(C)),n.taskEither.chainW(({isViewportStable:Q,...K})=>Q?n.taskEither.right({...K,height:window.innerHeight,isExpanded:!0,stableHeight:window.innerHeight,width:window.innerWidth}):n.function.pipe(b("web_app_request_viewport","viewport_changed",$),n.taskEither.map(D=>({...K,height:D.height,isExpanded:D.is_expanded,stableHeight:D.is_state_stable?D.height:0,width:D.width})))))},isPageReload:s,onMounted($){c(H),p(x),a(M),r(j),g.setState($)},onUnmounted(){w(H),d(x),l(M),u(j)},restoreState:e.get}),W=$=>_.computed(()=>this.safeAreaInsets()[$]),ne=$=>_.computed(()=>this.contentSafeAreaInsets()[$]);this.state=g.state,this.height=g.getter("height"),this.stableHeight=g.getter("stableHeight"),this.width=g.getter("width"),this.isExpanded=g.getter("isExpanded"),this.safeAreaInsets=g.getter("safeAreaInsets"),this.safeAreaInsetTop=W("top"),this.safeAreaInsetBottom=W("bottom"),this.safeAreaInsetLeft=W("left"),this.safeAreaInsetRight=W("right"),this.contentSafeAreaInsets=g.getter("contentSafeAreaInsets"),this.contentSafeAreaInsetTop=ne("top"),this.contentSafeAreaInsetBottom=ne("bottom"),this.contentSafeAreaInsetLeft=ne("left"),this.contentSafeAreaInsetRight=ne("right");const or=y({isVBma:v,returns:"task"}),ye=y({isVBma:v,returns:"either"}),ar=y({isVBma:v,requires:"web_app_request_fullscreen",version:B,returns:"task"}),$e=$=>ar(J=>n.function.pipe(b($?"web_app_request_fullscreen":"web_app_exit_fullscreen",["fullscreen_changed","fullscreen_failed"],J),n.taskEither.chain(P=>P.event==="fullscreen_failed"&&P.payload.error!=="ALREADY_FULLSCREEN"?n.taskEither.left(new Te(P.payload.error)):(g.setState({isFullscreen:"is_fullscreen"in P.payload?P.payload.is_fullscreen:!0}),n.taskEither.right(void 0)))));this.isMounted=V.isMounted,this.mountFp=or(V.mount),this.mount=h(this.mountFp),this.isFullscreen=g.getter("isFullscreen"),this.requestFullscreenFp=$e(!0),this.requestFullscreen=h(this.requestFullscreenFp),this.exitFullscreenFp=$e(!1),this.exitFullscreen=h(this.exitFullscreenFp);const ie=_.signal(!1);this.isCssVarsBound=_.computed(ie),this.bindCssVarsFp=ye($=>{if(ie())return n.either.left(new oe);$||($=P=>`--vb-viewport-${A.camelToKebab(P)}`);const J=[["height",this.height],["stableHeight",this.stableHeight],["width",this.width],["safeAreaInsetTop",this.safeAreaInsetTop],["safeAreaInsetBottom",this.safeAreaInsetBottom],["safeAreaInsetLeft",this.safeAreaInsetLeft],["safeAreaInsetRight",this.safeAreaInsetRight],["contentSafeAreaInsetTop",this.contentSafeAreaInsetTop],["contentSafeAreaInsetBottom",this.contentSafeAreaInsetBottom],["contentSafeAreaInsetLeft",this.contentSafeAreaInsetLeft],["contentSafeAreaInsetRight",this.contentSafeAreaInsetRight]].reduce((P,[Q,K])=>{const D=$(Q);if(D){const qe=()=>{Ce(D,`${K()}px`)};P.push({update:qe,removeListener:K.sub(qe),cssVar:D})}return P},[]);return J.forEach(P=>{P.update()}),ie.set(!0),n.either.right(()=>{J.forEach(P=>{P.removeListener(),ke(P.cssVar)}),ie.set(!1)})}),this.bindCssVars=h(this.bindCssVarsFp),this.expandFp=ye(()=>f("web_app_expand")),this.expand=h(this.expandFp)}}function on(){const i=c=>({on:p=>{o.on(c,p)},off:p=>{o.off(c,p)}}),e=i("viewport_changed"),s=i("fullscreen_changed"),r=i("safe_area_changed"),a=i("content_safe_area_changed");return new Pt({...n.function.pipe(S(),z("viewport"),k,R,T),isFullscreen(){return n.function.pipe(o.retrieveLaunchParamsFp(),n.either.map(c=>!!c.vbWebAppFullscreen))},isViewportStable(){return n.function.pipe(o.retrieveLaunchParamsFp(),n.either.map(c=>["macos","tdesktop","unigram","webk","weba","web"].includes(c.vbWebAppPlatform)))},offContentSafeAreaInsetsChanged:a.off,offFullscreenChanged:s.off,offSafeAreaInsetsChanged:r.off,offViewportChanged:e.off,onContentSafeAreaInsetsChanged:a.on,onFullscreenChanged:s.on,onSafeAreaInsetsChanged:r.on,onViewportChanged:e.on})}const an=on();class At{constructor({request:e}){t(this,"requestAccessFp");t(this,"requestAccess");t(this,"selectFile");t(this,"selectFiles");t(this,"selectFolder");this.requestAccessFp=s=>n.function.pipe(e("web_app_request_storage_access","storage_access_granted",{params:{access_type:s.accessType,multiple:s.multiple,accept:s.accept,max_file_size:s.maxFileSize,read_content:s.readContent}}),n.taskEither.map(r=>({accessType:r.access_type,items:r.items.map(a=>({name:a.name,path:a.path,size:a.size,type:a.type,content:a.content,lastModified:a.last_modified}))}))),this.requestAccess=s=>this.requestAccessFp(s)().then(a=>{if(a._tag==="Left")throw a.left;return a.right}),this.selectFile=s=>this.requestAccess({accessType:"file",multiple:!1,...s}),this.selectFiles=s=>this.requestAccess({accessType:"file",multiple:!0,...s}),this.selectFolder=()=>this.requestAccess({accessType:"folder"})}}function cn(){return new At({request:o.request2Fp})}const un=cn();class Mt{onSetup(e){return o.getHostBridge().on("web_app_setup_back_button",r=>{r&&typeof r.is_visible=="boolean"&&e(r.is_visible)})}press(){o.getHostBridge().send("back_button_pressed")}}const pn=new Mt;class Rt{onSetup(e){return o.getHostBridge().on("web_app_setup_main_button",r=>{r&&e(r)})}press(){o.getHostBridge().send("main_button_pressed")}}const dn=new Rt;class xt{onSetup(e){return o.getHostBridge().on("web_app_setup_secondary_button",r=>{r&&e(r)})}press(){o.getHostBridge().send("secondary_button_pressed")}}const hn=new xt;class Tt{onSetup(e){return o.getHostBridge().on("web_app_setup_settings_button",r=>{r&&e(r)})}press(){o.getHostBridge().send("settings_button_pressed")}}const ln=new Tt;class Vt{onOpen(e){return o.getHostBridge().on("web_app_open_popup",r=>{r&&e(r)})}close(e){o.getHostBridge().send("popup_closed",{button_id:e})}}const gn=new Vt;class Lt{onExpand(e){return o.getHostBridge().on("web_app_expand",()=>{e()})}onRequestContentSafeArea(e){return o.getHostBridge().on("web_app_request_content_safe_area",()=>{e()})}onRequestSafeArea(e){return o.getHostBridge().on("web_app_request_safe_area",()=>{e()})}onRequestViewport(e){return o.getHostBridge().on("web_app_request_viewport",()=>{e()})}onToggleOrientationLock(e){return o.getHostBridge().on("web_app_toggle_orientation_lock",r=>{r&&typeof r.locked=="boolean"&&e(r.locked)})}onRequestFullscreen(e){return o.getHostBridge().on("web_app_request_fullscreen",()=>{e()})}setFullscreen(e){o.getHostBridge().send("fullscreen_changed",{is_fullscreen:e})}setFullscreenFailed(e){o.getHostBridge().send("fullscreen_failed",{error:e})}onExitFullscreen(e){return o.getHostBridge().on("web_app_exit_fullscreen",()=>{e()})}setContentSafeArea(e){o.getHostBridge().send("content_safe_area_changed",e)}setSafeArea(e){o.getHostBridge().send("safe_area_changed",e)}setViewport(e){o.getHostBridge().send("viewport_changed",e)}}const bn=new Lt;class Ot{onIframeReady(e){return o.getHostBridge().on("iframe_ready",r=>{e(r||{})})}onIframeWillReload(e){return o.getHostBridge().on("iframe_will_reload",()=>{e()})}onClose(e){return o.getHostBridge().on("web_app_close",()=>{e()})}onHideKeyboard(e){return o.getHostBridge().on("web_app_hide_keyboard",()=>{e()})}onReady(e){return o.getHostBridge().on("web_app_ready",()=>{e()})}onRequestTheme(e){return o.getHostBridge().on("web_app_request_theme",()=>{e()})}onBackgroundColorChange(e){return o.getHostBridge().on("web_app_set_background_color",r=>{r&&typeof r.color=="string"&&e(r.color)})}onBottomBarColorChange(e){return o.getHostBridge().on("web_app_set_bottom_bar_color",r=>{r&&r.color&&e(r.color)})}onHeaderColorChange(e){return o.getHostBridge().on("web_app_set_header_color",r=>{r&&("color_key"in r&&r.color_key?e(r.color_key):"color"in r&&r.color&&e(r.color))})}reloadIframe(){o.getHostBridge().send("reload_iframe")}setCustomStyle(e){o.getHostBridge().send("set_custom_style",e)}setVisibility(e){o.getHostBridge().send("visibility_changed",{is_visible:e})}}const fn=new Ot;class jt{onHapticFeedback(e){return o.getHostBridge().on("web_app_trigger_haptic_feedback",r=>{r&&e(r)})}}const _n=new jt;class Dt{onGetInfo(e){return o.getHostBridge().on("web_app_biometry_get_info",()=>{e()})}onOpenSettings(e){return o.getHostBridge().on("web_app_biometry_open_settings",()=>{e()})}onRequestAccess(e){return o.getHostBridge().on("web_app_biometry_request_access",r=>{e(r||{})})}onRequestAuth(e){return o.getHostBridge().on("web_app_biometry_request_auth",r=>{e(r||{})})}onUpdateToken(e){return o.getHostBridge().on("web_app_biometry_update_token",r=>{r&&e(r)})}setInfoReceived(e){o.getHostBridge().send("biometry_info_received",e)}setAuthRequested(e){o.getHostBridge().send("biometry_auth_requested",e)}setTokenUpdated(e){o.getHostBridge().send("biometry_token_updated",e)}}const mn=new Dt;class Gt{onOpenInvoice(e){return o.getHostBridge().on("web_app_open_invoice",r=>{r&&e(r)})}setInvoiceClosed(e){o.getHostBridge().send("invoice_closed",e)}}const wn=new Gt;class Ut{onOpenPopup(e){return o.getHostBridge().on("web_app_open_scan_qr_popup",r=>{e(r||{})})}onClosePopup(e){return o.getHostBridge().on("web_app_close_scan_qr_popup",()=>{e()})}sendQrTextReceived(e){o.getHostBridge().send("qr_text_received",e)}closePopup(){o.getHostBridge().send("scan_qr_popup_closed")}}const Fn=new Ut;class Wt{onCheckLocation(e){return o.getHostBridge().on("web_app_check_location",()=>{e()})}onOpenLocationSettings(e){return o.getHostBridge().on("web_app_open_location_settings",()=>{e()})}onRequestLocation(e){return o.getHostBridge().on("web_app_request_location",()=>{e()})}setLocationChecked(e){o.getHostBridge().send("location_checked",e)}setLocationRequested(e){o.getHostBridge().send("location_requested",e)}}const Sn=new Wt;class Qt{onOpenLink(e){return o.getHostBridge().on("web_app_open_link",r=>{r&&e(r)})}onOpenTgLink(e){return o.getHostBridge().on("web_app_open_vb_link",r=>{r&&e(r)})}}const Cn=new Qt;class Kt{onRequestAccess(e){return o.getHostBridge().on("web_app_request_emoji_status_access",()=>{e()})}onSetEmojiStatus(e){return o.getHostBridge().on("web_app_set_emoji_status",r=>{r&&e(r)})}setAccessRequested(e){o.getHostBridge().send("emoji_status_access_requested",e)}setEmojiStatusSet(e){o.getHostBridge().send("emoji_status_set",e)}setEmojiStatusFailed(e){o.getHostBridge().send("emoji_status_failed",e)}}const kn=new Kt;class Nt{onAddToHomeScreen(e){return o.getHostBridge().on("web_app_add_to_home_screen",()=>{e()})}onCheckHomeScreen(e){return o.getHostBridge().on("web_app_check_home_screen",()=>{e()})}setHomeScreenChecked(e){o.getHostBridge().send("home_screen_checked",e)}setHomeScreenAdded(){o.getHostBridge().send("home_screen_added")}setHomeScreenFailed(e){o.getHostBridge().send("home_screen_failed",e)}}const vn=new Nt;class zt{onRequestPhone(e){return o.getHostBridge().on("web_app_request_phone",()=>{e()})}onRequestWriteAccess(e){return o.getHostBridge().on("web_app_request_write_access",()=>{e()})}setPhoneRequested(e){o.getHostBridge().send("phone_requested",e)}setWriteAccessRequested(e){o.getHostBridge().send("write_access_requested",e)}}const Bn=new zt;class Jt{onSetupClosingBehavior(e){return o.getHostBridge().on("web_app_setup_closing_behavior",r=>{r&&e(r)})}}const En=new Jt;class Yt{onSetupSwipeBehavior(e){return o.getHostBridge().on("web_app_setup_swipe_behavior",r=>{r&&e(r)})}}const yn=new Yt;class Zt{onReadText(e){return o.getHostBridge().on("web_app_read_text_from_clipboard",r=>{r&&e(r)})}sendTextReceived(e){o.getHostBridge().send("clipboard_text_received",e)}}const $n=new Zt;class Xt{onRequestFileDownload(e){return o.getHostBridge().on("web_app_request_file_download",r=>{e(r||{})})}setFileDownloadRequested(e){o.getHostBridge().send("file_download_requested",e)}}const qn=new Xt;class er{onSendPreparedMessage(e){return o.getHostBridge().on("web_app_send_prepared_message",r=>{r&&e(r)})}onShareToStory(e){return o.getHostBridge().on("web_app_share_to_story",r=>{e(r||{})})}setPreparedMessageFailed(e){o.getHostBridge().send("prepared_message_failed",e)}setPreparedMessageSent(){o.getHostBridge().send("prepared_message_sent")}}const In=new er;class tr{onDataSend(e){return o.getHostBridge().on("web_app_data_send",r=>{r&&e(r)})}onSwitchInlineQuery(e){return o.getHostBridge().on("web_app_switch_inline_query",r=>{r&&e(r)})}}const Hn=new tr;class rr{onInvokeCustomMethod(e){return o.getHostBridge().on("web_app_invoke_custom_method",r=>{r&&e(r)})}setCustomMethodInvoked(e){o.getHostBridge().send("custom_method_invoked",e)}}const Pn=new rr;class sr{onSend(e){return o.getHostBridge().on("web_app_send_notification",r=>{r&&e(r)})}}const An=new sr;class nr{setTheme(e){o.getHostBridge().send("theme_changed",{theme_params:e})}onRequestTheme(e){return o.getHostBridge().on("web_app_request_theme",()=>{e()})}}const Mn=new nr;function ir(i={}){const{version:e,isInlineMode:s,themeParams:r}=i;let a="0.0";if(e&&typeof s=="boolean"&&r)a=e,be.set(s),ge.set(r);else{const d=n.function.pipe(o.retrieveLaunchParamsFp(),n.either.matchW(l=>l,l=>{a=e||l.vbWebAppVersion||(l.vbWebAppPlatform==="web"?o.LATEST_VERSION:"0.0"),be.set(typeof s=="boolean"?s:!!l.vbWebAppBotInline),ge.set(r||l.vbWebAppThemeParams)}));if(d)return n.either.left(d)}o.compareVersions(a,o.LATEST_VERSION)===1&&o.logger().warn(`The VBot Mini Apps version ${a} is higher than the maximum supported by this SDK version. The latest supported version is ${o.LATEST_VERSION}. Some features might not work as expected. Please consider updating the SDK.`),Ge.set(a),i.postEvent&&je.set(i.postEvent);const[c,p]=A.createCbCollector(o.on("reload_iframe",()=>{o.logger().log("Received a request to reload the page"),De("iframe_will_reload"),window.location.reload()})),{acceptCustomStyles:u=!0}=i;if(u){const d=document.createElement("style");d.id="vbot-custom-styles",document.head.appendChild(d),c(o.on("set_custom_style",l=>{d.innerHTML=l}),()=>{document.head.removeChild(d)})}return n.function.pipe(Z("iframe_ready",{reload_supported:!0}),n.either.map(()=>(o.logger().log("The package was initialized"),p)))}const Rn=A.throwifyFpFn(ir);Object.defineProperty(exports,"CancelledError",{enumerable:!0,get:()=>o.CancelledError});Object.defineProperty(exports,"InvalidLaunchParamsError",{enumerable:!0,get:()=>o.InvalidLaunchParamsError});Object.defineProperty(exports,"InvokeCustomMethodFailedError",{enumerable:!0,get:()=>o.InvokeCustomMethodFailedError});Object.defineProperty(exports,"LaunchParamsRetrieveError",{enumerable:!0,get:()=>o.LaunchParamsRetrieveError});Object.defineProperty(exports,"MethodParameterUnsupportedError",{enumerable:!0,get:()=>o.MethodParameterUnsupportedError});Object.defineProperty(exports,"MethodUnsupportedError",{enumerable:!0,get:()=>o.MethodUnsupportedError});Object.defineProperty(exports,"TimeoutError",{enumerable:!0,get:()=>o.TimeoutError});Object.defineProperty(exports,"UnknownEnvError",{enumerable:!0,get:()=>o.UnknownEnvError});Object.defineProperty(exports,"applyPolyfills",{enumerable:!0,get:()=>o.applyPolyfills});Object.defineProperty(exports,"createLogger",{enumerable:!0,get:()=>o.createLogger});Object.defineProperty(exports,"createPostEvent",{enumerable:!0,get:()=>o.createPostEvent});Object.defineProperty(exports,"createStartParam",{enumerable:!0,get:()=>o.createStartParam});Object.defineProperty(exports,"createStartParamFp",{enumerable:!0,get:()=>o.createStartParamFp});Object.defineProperty(exports,"debug",{enumerable:!0,get:()=>o.debug});Object.defineProperty(exports,"decodeBase64Url",{enumerable:!0,get:()=>o.decodeBase64Url});Object.defineProperty(exports,"decodeBase64UrlFp",{enumerable:!0,get:()=>o.decodeBase64UrlFp});Object.defineProperty(exports,"decodeStartParam",{enumerable:!0,get:()=>o.decodeStartParam});Object.defineProperty(exports,"decodeStartParamFp",{enumerable:!0,get:()=>o.decodeStartParamFp});Object.defineProperty(exports,"deepSnakeToCamelObjKeys",{enumerable:!0,get:()=>o.deepSnakeToCamelObjKeys});Object.defineProperty(exports,"defineHostBridge",{enumerable:!0,get:()=>o.defineHostBridge});Object.defineProperty(exports,"defineWebComponentBridge",{enumerable:!0,get:()=>o.defineWebComponentBridge});Object.defineProperty(exports,"emitEvent",{enumerable:!0,get:()=>o.emitEvent});Object.defineProperty(exports,"encodeBase64Url",{enumerable:!0,get:()=>o.encodeBase64Url});Object.defineProperty(exports,"getHostBridge",{enumerable:!0,get:()=>o.getHostBridge});Object.defineProperty(exports,"getReleaseVersion",{enumerable:!0,get:()=>o.getReleaseVersion});Object.defineProperty(exports,"isSafeToCreateStartParam",{enumerable:!0,get:()=>o.isSafeToCreateStartParam});Object.defineProperty(exports,"isVBma",{enumerable:!0,get:()=>o.isVBma});Object.defineProperty(exports,"isVBmaFp",{enumerable:!0,get:()=>o.isVBmaFp});Object.defineProperty(exports,"logger",{enumerable:!0,get:()=>o.logger});Object.defineProperty(exports,"mockVBotEnv",{enumerable:!0,get:()=>o.mockVBotEnv});Object.defineProperty(exports,"off",{enumerable:!0,get:()=>o.off});Object.defineProperty(exports,"offAll",{enumerable:!0,get:()=>o.offAll});Object.defineProperty(exports,"on",{enumerable:!0,get:()=>o.on});Object.defineProperty(exports,"retrieveLaunchParams",{enumerable:!0,get:()=>o.retrieveLaunchParams});Object.defineProperty(exports,"retrieveLaunchParamsFp",{enumerable:!0,get:()=>o.retrieveLaunchParamsFp});Object.defineProperty(exports,"retrieveRawInitData",{enumerable:!0,get:()=>o.retrieveRawInitData});Object.defineProperty(exports,"retrieveRawInitDataFp",{enumerable:!0,get:()=>o.retrieveRawInitDataFp});Object.defineProperty(exports,"retrieveRawLaunchParams",{enumerable:!0,get:()=>o.retrieveRawLaunchParams});Object.defineProperty(exports,"retrieveRawLaunchParamsFp",{enumerable:!0,get:()=>o.retrieveRawLaunchParamsFp});Object.defineProperty(exports,"setDebug",{enumerable:!0,get:()=>o.setDebug});Object.defineProperty(exports,"setLaunchParams",{enumerable:!0,get:()=>o.setLaunchParams});Object.defineProperty(exports,"setTargetOrigin",{enumerable:!0,get:()=>o.setTargetOrigin});Object.defineProperty(exports,"supports",{enumerable:!0,get:()=>o.supports});Object.defineProperty(exports,"targetOrigin",{enumerable:!0,get:()=>o.targetOrigin});Object.defineProperty(exports,"isAnyRGB",{enumerable:!0,get:()=>I.isAnyRGB});Object.defineProperty(exports,"isRGB",{enumerable:!0,get:()=>I.isRGB});Object.defineProperty(exports,"isRGBA",{enumerable:!0,get:()=>I.isRGBA});Object.defineProperty(exports,"isRGBAShort",{enumerable:!0,get:()=>I.isRGBAShort});Object.defineProperty(exports,"isRGBShort",{enumerable:!0,get:()=>I.isRGBShort});Object.defineProperty(exports,"parseInitDataQuery",{enumerable:!0,get:()=>I.parseInitDataQuery});Object.defineProperty(exports,"parseInitDataQueryFp",{enumerable:!0,get:()=>I.parseInitDataQueryFp});Object.defineProperty(exports,"parseLaunchParamsQuery",{enumerable:!0,get:()=>I.parseLaunchParamsQuery});Object.defineProperty(exports,"parseLaunchParamsQueryFp",{enumerable:!0,get:()=>I.parseLaunchParamsQueryFp});Object.defineProperty(exports,"serializeInitDataQuery",{enumerable:!0,get:()=>I.serializeInitDataQuery});Object.defineProperty(exports,"serializeLaunchParamsQuery",{enumerable:!0,get:()=>I.serializeLaunchParamsQuery});Object.defineProperty(exports,"toRGB",{enumerable:!0,get:()=>I.toRGB});Object.defineProperty(exports,"toRGBFp",{enumerable:!0,get:()=>I.toRGBFp});Object.defineProperty(exports,"toRGBFull",{enumerable:!0,get:()=>I.toRGBFull});Object.defineProperty(exports,"toRGBFullFp",{enumerable:!0,get:()=>I.toRGBFullFp});exports.AccessDeniedError=fe;exports.BackButton=Oe;exports.Biometry=Ue;exports.CSSVarsBoundError=oe;exports.ClosingBehavior=Qe;exports.CloudStorage=Ke;exports.ConcurrentCallError=ae;exports.DeviceStorage=ze;exports.DeviceStorageMethodError=Pe;exports.FullscreenFailedError=Te;exports.FunctionUnavailableError=Re;exports.HapticFeedback=Xe;exports.HostBackButton=Mt;exports.HostBiometry=Dt;exports.HostChat=tr;exports.HostClipboard=Zt;exports.HostClosingBehavior=Jt;exports.HostCustomMethod=rr;exports.HostEmojiStatus=Kt;exports.HostFiles=Xt;exports.HostHapticFeedback=jt;exports.HostHomeScreen=Nt;exports.HostInvoice=Gt;exports.HostLink=Qt;exports.HostLocationManager=Wt;exports.HostMainButton=Rt;exports.HostMiniApp=Ot;exports.HostNotification=sr;exports.HostPopup=Vt;exports.HostPrivacy=zt;exports.HostQrScanner=Ut;exports.HostSecondaryButton=xt;exports.HostSettingsButton=Tt;exports.HostSharing=er;exports.HostSwipeBehavior=Yt;exports.HostThemeParams=nr;exports.HostViewport=Lt;exports.InitData=rt;exports.InvalidArgumentsError=G;exports.InvalidEnvError=pr;exports.Invoice=st;exports.LocationManager=ot;exports.MainButton=at;exports.MiniApp=dt;exports.NotAvailableError=Me;exports.Notification=lt;exports.Popup=gt;exports.QrScanner=_t;exports.Refresh=mt;exports.SecondaryButton=wt;exports.SecureStorage=Ft;exports.SecureStorageMethodError=Ae;exports.SetEmojiStatusError=xe;exports.SettingsButton=St;exports.ShareMessageError=Ve;exports.StoragePermission=At;exports.SwipeBehavior=Ct;exports.ThemeParams=ut;exports.UnknownThemeParamsKeyError=Le;exports.ValidationError=ee;exports.Viewport=Pt;exports.addToHomeScreen=Rr;exports.addToHomeScreenFp=et;exports.backButton=gr;exports.biometry=mr;exports.checkHomeScreenStatus=Vr;exports.checkHomeScreenStatusFp=tt;exports.closingBehavior=Fr;exports.cloudStorage=Cr;exports.copyTextToClipboard=As;exports.createRequestId=ue;exports.deviceStorage=vr;exports.downloadFile=xs;exports.downloadFileFp=kt;exports.getCurrentTime=Ls;exports.getCurrentTimeFp=vt;exports.hapticFeedback=Pr;exports.hideKeyboard=Ds;exports.hideKeyboardFp=Bt;exports.hostBackButton=pn;exports.hostBiometry=mn;exports.hostChat=Hn;exports.hostClipboard=$n;exports.hostClosingBehavior=En;exports.hostCustomMethod=Pn;exports.hostEmojiStatus=kn;exports.hostFiles=qn;exports.hostHapticFeedback=_n;exports.hostHomeScreen=vn;exports.hostInvoice=wn;exports.hostLink=Cn;exports.hostLocationManager=Sn;exports.hostMainButton=dn;exports.hostMiniApp=fn;exports.hostNotification=An;exports.hostPopup=gn;exports.hostPrivacy=Bn;exports.hostQrScanner=Fn;exports.hostSecondaryButton=hn;exports.hostSettingsButton=ln;exports.hostSharing=In;exports.hostSwipeBehavior=yn;exports.hostThemeParams=Mn;exports.hostViewport=bn;exports.init=Rn;exports.initData=Or;exports.initFp=ir;exports.invoice=Dr;exports.invokeCustomMethod=Ne;exports.isColorDark=ve;exports.isColorDarkFp=ct;exports.locationManager=es;exports.mainButton=rs;exports.miniApp=ht;exports.notification=os;exports.openLink=Wr;exports.openLinkFp=nt;exports.openVBotLink=Nr;exports.openVBotLinkFp=Se;exports.popup=us;exports.postEvent=De;exports.postEventFp=Z;exports.qrScanner=ks;exports.readTextFromClipboard=Ws;exports.readTextFromClipboardFp=Et;exports.refresh=Bs;exports.request=br;exports.request2=fr;exports.request2Fp=we;exports.requestContact=ms;exports.requestContactComplete=_s;exports.requestContactCompleteFp=Ee;exports.requestContactFp=bt;exports.requestEmojiStatusAccess=yr;exports.requestEmojiStatusAccessFp=Ye;exports.requestFp=We;exports.requestPhoneAccess=hs;exports.requestPhoneAccessFp=Be;exports.requestWriteAccess=Ss;exports.requestWriteAccessFp=ft;exports.retrieveAndroidDeviceData=Qs;exports.retrieveAndroidDeviceDataFrom=yt;exports.secondaryButton=ys;exports.secureStorage=qs;exports.sendData=zs;exports.sendDataFp=$t;exports.setEmojiStatus=Ir;exports.setEmojiStatusFp=Ze;exports.settingsButton=Is;exports.shareMessage=Zs;exports.shareMessageFp=qt;exports.shareStory=tn;exports.shareStoryFp=It;exports.shareURL=Yr;exports.shareURLFp=it;exports.storagePermission=un;exports.swipeBehavior=Ps;exports.switchInlineQuery=nn;exports.switchInlineQueryFp=Ht;exports.themeParams=te;exports.viewport=an;
1
+ "use strict";var cr=Object.defineProperty;var ur=(i,e,s)=>e in i?cr(i,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[e]=s;var t=(i,e,s)=>ur(i,typeof e!="symbol"?e+"":e,s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("@vbotma/signals"),o=require("@vbotma/bridge"),A=require("@vbotma/toolkit"),Pe=require("better-promises"),I=require("@vbotma/transformers"),n=require("fp-ts"),O=require("error-kid"),E=require("valibot");function V(i){return typeof i=="function"?i():i}class re{constructor({onMounted:e,restoreState:s,initialState:r,onUnmounted:a,isPageReload:c}){t(this,"_isMounted",_.signal(!1));t(this,"isMounted",_.computed(this._isMounted));t(this,"mount");t(this,"unmount");this.mount=()=>{if(this.isMounted())return n.either.right(void 0);const p=V(c)?s():void 0,u=p?n.either.right(p):typeof r=="function"?r():n.either.right(r);return n.function.pipe(u,n.either.map(d=>{_.batch(()=>{this._isMounted.set(!0),e==null||e(d)})}))},this.unmount=()=>{this._isMounted()&&_.batch(()=>{this._isMounted.set(!1),a==null||a()})}}}function le(i){const e={};for(const s in i){const r=i[s];r!==void 0&&(e[s]=r)}return e}function pe(i,e){const s=Object.keys(i),r=Object.keys(e);return s.length!==r.length?!1:s.every(a=>Object.prototype.hasOwnProperty.call(e,a)&&i[a]===e[a])}class N{constructor({initialState:e,onChange:s}){t(this,"_state");t(this,"state");t(this,"setState",e=>{const s={...this.state(),...le(e)};pe(s,this.state())||this._state.set(s)});this._state=_.signal(e,{equals:pe}),this.state=_.computed(this._state),this.state.sub(s)}getter(e){return _.computed(()=>this._state()[e])}hasDiff(e){return!pe({...this.state(),...le(e)},this.state())}}function U(i,e){return _.computed(()=>o.supports(i,V(e)))}function h(i){return Object.assign(A.throwifyFpFn(i),{ifAvailable(...e){return n.function.pipe(i.ifAvailable(...e),n.option.match(()=>({ok:!1}),s=>({ok:!0,data:A.throwifyAnyEither(s)})))}})}function Y(i){return[i]}class ee extends O.errorClassWithData("ValidationError",(e,s)=>({input:e,issues:s}),"Validation error"){}class oe extends O.errorClass("CSSVarsBoundError","CSS variables are already bound"){}class Ae extends O.errorClassWithData("DeviceStorageMethodError",e=>({error:e}),e=>[e]){}class Me extends O.errorClassWithData("SecureStorageMethodError",e=>({error:e}),e=>[e]){}class Re extends O.errorClass("NotAvailableError",Y){}class pr extends O.errorClass("InvalidEnvError",Y){}class xe extends O.errorClass("FunctionNotAvailableError",Y){}class G extends O.errorClass("InvalidArgumentsError",(e,s)=>[e,{cause:s}]){}class ae extends O.errorClass("ConcurrentCallError",Y){}class Te extends O.errorClass("SetEmojiStatusError",e=>[`Failed to set emoji status: ${e}`]){}class _e extends O.errorClass("AccessDeniedError",Y){}class Le extends O.errorClass("FullscreenFailedError",Y){}class Ve extends O.errorClass("ShareMessageError",Y){}class Oe extends O.errorClass("UnknownThemeParamsKeyError",e=>[`Unknown theme params key passed: ${e}`]){}function q(i,e){const s=_.computed(()=>V(e.version)||"100"),r=_.computed(()=>V(e.isVBma)),{requires:a,returns:c}=e,p=a?typeof a=="object"?a:{every:[a]}:void 0,u=f=>{if(!e.supports)return!0;const m=e.supports[f];return o.supports(m.method,m.param,s())},d=()=>{if(!p)return;const[f,m]="every"in p?["every",p.every]:["some",p.some];for(let l=0;l<m.length;l++){const H=m[l],x=typeof H=="function"?H():o.supports(H,s())?void 0:`it is unsupported in Mini Apps version ${s()}`;if(x&&(f==="every"||l===m.length-1))return x}},b=(...f)=>{for(const m in e.supports)if(e.supports[m].shouldCheck(...f)&&!u(m))return`option ${m} is not supported in Mini Apps version ${s()}`},w=_.computed(()=>!d()),g=_.computed(()=>s()!=="0.0"),C=_.computed(()=>e.isMounted?e.isMounted():!0),F=_.computed(()=>r()&&g()&&w()&&C()),v=f=>{const m=new xe(f);return["task","promise"].includes(e.returns)?n.taskEither.left(m):n.either.left(m)},B=(...f)=>c==="plain"?n.either.tryCatch(()=>i(...f),m=>m):c==="promise"?n.taskEither.tryCatch(()=>i(...f),m=>m):i(...f);return Object.assign((...f)=>{var x;const m="Unable to call function:";if(!r())return v(`${m} it can't be called outside Mini Apps`);if(!g())return v(`${m} the SDK was not initialized. Use the SDK init() function`);const l=d();if(l)return v(`${m} ${l}`);const H=b(...f);if(H)return v(`${m} ${H}`);if(!C()){const M=(x=e.isMounting)!=null&&x.call(e)?"mounting. Wait for the mount completion":"unmounted. Use the mount() method";return v(`${m} the component is ${M}`)}return B(...f)},i,{isAvailable:F,ifAvailable(...f){return F()?n.option.some(B(...f)):n.option.none}},p?{isSupported:w}:{},e.supports?{supports:u}:{})}function y(i){return e=>q(e,i)}class ce{constructor({isVBma:e,storage:s,onClick:r,offClick:a,initialState:c,isPageReload:p,postEvent:u,payload:d,method:b,version:w}){t(this,"isMounted");t(this,"isSupported");t(this,"state");t(this,"stateSetters");t(this,"stateBoolSetters");t(this,"setStateFp");t(this,"setState");t(this,"onClickFp");t(this,"onClick");t(this,"offClickFp");t(this,"offClick");t(this,"mountFp");t(this,"mount");t(this,"unmount");const g=new N({initialState:c,onChange(f){s.set(f)}}),C=new re({initialState:c,isPageReload:p,onMounted:g.setState,restoreState:s.get}),F={version:w,requires:b,isVBma:e},v=y({...F,returns:"plain"}),B=y({...F,returns:"either",isMounted:C.isMounted});this.isMounted=C.isMounted,this.isSupported=U(b,w),this.state=g.state,this.setStateFp=B(f=>{const m={...this.state(),...le(f)};return g.hasDiff(m)?n.function.pipe(u(b,d(m)),n.either.map(()=>{g.setState(m)})):n.either.right(void 0)}),this.setState=h(this.setStateFp),this.onClickFp=v(r),this.onClick=h(this.onClickFp),this.offClickFp=v(a),this.offClick=h(this.offClickFp),this.mountFp=v(()=>{const f=()=>{};return n.function.pipe(C.mount(),n.either.match(f,f))}),this.mount=h(this.mountFp),this.unmount=C.unmount,this.stateSetters=f=>{const m=B(l=>this.setStateFp({[f]:l}));return[h(m),m]},this.stateBoolSetters=f=>{const[,m]=this.stateSetters(f),l=B(()=>m(!1)),H=B(()=>m(!0));return[[h(l),l],[h(H),H]]}}stateGetter(e){return _.computed(()=>this.state()[e])}}class je{constructor(e){t(this,"isVisible");t(this,"isMounted");t(this,"isSupported");t(this,"hideFp");t(this,"hide");t(this,"showFp");t(this,"show");t(this,"onClickFp");t(this,"onClick");t(this,"offClickFp");t(this,"offClick");t(this,"mountFp");t(this,"mount");t(this,"unmount");const s=new ce({...e,method:"web_app_setup_back_button",payload:r=>({is_visible:r.isVisible}),initialState:{isVisible:!1}});this.isVisible=s.stateGetter("isVisible"),this.isMounted=s.isMounted,this.isSupported=s.isSupported,[[this.hide,this.hideFp],[this.show,this.showFp]]=s.stateBoolSetters("isVisible"),this.onClick=s.onClick,this.onClickFp=s.onClickFp,this.offClick=s.offClick,this.offClickFp=s.offClickFp,this.mount=s.mount,this.mountFp=s.mountFp,this.unmount=s.unmount}}function S(){return{isVBma:_.computed(()=>o.isVBmaFp())}}function X(i){return e=>({...e,...V(i)})}function se(i,e){return _.signal(i,e)}const De=se(o.postEventFp),Z=(...i)=>De()(...i),Ge=(...i)=>A.throwifyAnyEither(Z(...i)),R=X({postEvent:Z});function dr(i){return{get:()=>A.getStorageValue(i),set(e){A.setStorageValue(i,e)}}}function hr(){return performance.getEntriesByType("navigation")[0]}function lr(){const i=hr();return!!i&&i.type==="reload"}function z(i){return X({storage:dr(i),isPageReload:lr})}const ge=se("0.0"),k=X({version:ge});function me(i,e){return{...n.function.pipe(S(),R,k,z(i)),onClick(s,r){return o.on(e,s,r)},offClick(s,r){o.off(e,s,r)}}}const gr=new je(me("backButton","back_button_pressed"));class we{constructor({initialState:e,onMounted:s,restoreState:r,onUnmounted:a,isPageReload:c}){t(this,"_isMounted",_.signal(!1));t(this,"isMounted",_.computed(this._isMounted));t(this,"mount");t(this,"unmount");this.mount=p=>{if(this._isMounted())return n.taskEither.right(void 0);const u=V(c)?r():void 0;return n.function.pipe(u?n.taskEither.right(u):e(p),n.taskEither.map(d=>{this._isMounted()||_.batch(()=>{this._isMounted.set(!0),s==null||s(d)})}))},this.unmount=()=>{this._isMounted()&&_.batch(()=>{this._isMounted.set(!1),a==null||a()})}}}function He(){return new Re("Biometry is not available")}function de(i){let e=!1,s=!1,r="",a=!1,c="",p=!1;return i.available&&(e=!0,s=i.token_saved,r=i.device_id,a=i.access_requested,c=i.type,p=i.access_granted),{available:e,tokenSaved:s,deviceId:r,type:c,accessGranted:p,accessRequested:a}}class Ue{constructor({version:e,request:s,postEvent:r,storage:a,onInfoReceived:c,offInfoReceived:p,isVBma:u,isPageReload:d}){t(this,"isAvailable");t(this,"isSupported");t(this,"isMounted");t(this,"state");t(this,"authenticateFp");t(this,"authenticate");t(this,"openSettingsFp");t(this,"openSettings");t(this,"requestAccessFp");t(this,"requestAccess");t(this,"updateTokenFp");t(this,"updateToken");t(this,"mountFp");t(this,"mount");t(this,"unmount");const b=f=>{w.setState(de(f))},w=new N({initialState:{available:!1,type:"unknown",accessGranted:!1,accessRequested:!1,deviceId:"",tokenSaved:!1},onChange:a.set}),g=new we({initialState(f){return n.function.pipe(s("web_app_biometry_get_info","biometry_info_received",f),n.taskEither.map(de))},isPageReload:d,onMounted(f){w.setState(f),c(b)},onUnmounted(){p(b)},restoreState:a.get}),C={version:e,requires:"web_app_biometry_request_auth",isVBma:u},F=y({...C,returns:"either"}),v=y({...C,returns:"task"}),B=y({...C,isMounted:g.isMounted,returns:"task"});this.isAvailable=w.getter("available"),this.isMounted=g.isMounted,this.isSupported=U("web_app_biometry_request_auth",e),this.state=w.state,this.unmount=g.unmount,this.mountFp=v(g.mount),this.authenticateFp=B(f=>this.isAvailable()?n.function.pipe(s("web_app_biometry_request_auth","biometry_auth_requested",{...f,params:{reason:((f||{}).reason||"").trim()}}),n.taskEither.map(m=>(w.setState({token:m.token}),m))):n.taskEither.left(He())),this.openSettingsFp=F(()=>r("web_app_biometry_open_settings")),this.requestAccessFp=B(f=>n.function.pipe(s("web_app_biometry_request_access","biometry_info_received",{...f,params:{reason:((f||{}).reason||"").trim()}}),n.taskEither.chain(m=>{const l=de(m);return l.available?(w.setState(l),n.taskEither.right(l.accessRequested)):n.taskEither.left(He())}))),this.updateTokenFp=B((f={})=>{var m;return n.function.pipe(s("web_app_biometry_update_token","biometry_token_updated",{...f,params:{token:f.token||"",reason:(m=f.reason)==null?void 0:m.trim()}}),n.taskEither.map(l=>l.status))}),this.authenticate=h(this.authenticateFp),this.openSettings=h(this.openSettingsFp),this.requestAccess=h(this.requestAccessFp),this.updateToken=h(this.updateTokenFp),this.mount=h(this.mountFp)}}const We=(i,e,s)=>o.requestFp(i,e,{postEvent:Z,...s}),Fe=(i,e,s)=>o.request2Fp(i,e,{postEvent:Z,...s}),br=(...i)=>Pe.BetterPromise.fn(()=>We(...i)()),fr=(...i)=>Pe.BetterPromise.fn(()=>Fe(...i)()),T=X({request:Fe});function _r(){return new Ue({...n.function.pipe(S(),R,k,T,z("biometry")),offInfoReceived(i){o.off("biometry_info_received",i)},onInfoReceived(i){return o.on("biometry_info_received",i)}})}const mr=_r();class Qe{constructor({postEvent:e,storage:s,isVBma:r,isPageReload:a}){t(this,"isConfirmationEnabled");t(this,"isMounted");t(this,"mountFp");t(this,"mount");t(this,"unmount");t(this,"disableConfirmationFp");t(this,"disableConfirmation");t(this,"enableConfirmationFp");t(this,"enableConfirmation");const c=new N({initialState:{isConfirmationEnabled:!1},onChange(g){s.set(g)}}),p=new re({onMounted:c.setState,restoreState:s.get,initialState:{isConfirmationEnabled:!1},isPageReload:a}),u={requires:"web_app_setup_closing_behavior",isVBma:r},d=y({...u,returns:"plain"}),b=y({...u,returns:"either",isMounted:p.isMounted}),w=g=>g===this.isConfirmationEnabled()?n.either.right(void 0):(c.setState({isConfirmationEnabled:g}),e("web_app_setup_closing_behavior",{need_confirmation:g}));this.isConfirmationEnabled=c.getter("isConfirmationEnabled"),this.isMounted=p.isMounted,this.disableConfirmationFp=b(()=>w(!1)),this.enableConfirmationFp=b(()=>w(!0)),this.mountFp=d(()=>{const g=()=>{};return n.function.pipe(p.mount(),n.either.match(g,g))}),this.unmount=p.unmount,this.disableConfirmation=h(this.disableConfirmationFp),this.enableConfirmation=h(this.enableConfirmationFp),this.mount=h(this.mountFp)}}function wr(){return new Qe(n.function.pipe(S(),z("closingBehavior"),R))}const Fr=wr();class Ke{constructor({version:e,isVBma:s,invokeCustomMethod:r}){t(this,"isSupported");t(this,"deleteItemFp");t(this,"deleteItem");t(this,"getItemFp");t(this,"getItem");t(this,"getItemsFp");t(this,"getItems");t(this,"getKeysFp");t(this,"getKeys");t(this,"setItemFp");t(this,"setItem");t(this,"clearFp");t(this,"clear");const a=y({version:e,requires:"web_app_invoke_custom_method",isVBma:s,returns:"task"});this.isSupported=U("web_app_invoke_custom_method",e),this.deleteItemFp=a((c,p)=>{const u=Array.isArray(c)?c:[c];return n.function.pipe(u.length?r("deleteStorageValues",{keys:u},p):n.taskEither.right(void 0),n.taskEither.map(()=>{}))}),this.getItemFp=a((c,p)=>n.function.pipe(this.getItemsFp([c],p),n.taskEither.map(u=>u[c]||""))),this.getItemsFp=a((c,p)=>n.function.pipe(c.length?r("getStorageValues",{keys:c},p):n.taskEither.right({}),n.taskEither.map(u=>({...c.reduce((d,b)=>(d[b]="",d),{}),...E.parse(E.record(E.string(),E.string()),u)})))),this.getKeysFp=a(c=>n.function.pipe(r("getStorageKeys",{},c),n.taskEither.map(p=>E.parse(E.array(E.string()),p)))),this.setItemFp=a((c,p,u)=>n.function.pipe(r("saveStorageValue",{key:c,value:p},u),n.taskEither.map(()=>{}))),this.clearFp=a(c=>n.function.pipe(this.getKeysFp(c),n.taskEither.chain(this.deleteItemFp))),this.deleteItem=h(this.deleteItemFp),this.getItem=h(this.getItemFp),this.getItems=h(this.getItemsFp),this.getKeys=h(this.getKeysFp),this.setItem=h(this.setItemFp),this.clear=h(this.clearFp)}}const he=se(0);function ue(){return he.set(he()+1),he().toString()}function Ne(i,e,s){return o.invokeCustomMethodFp(i,e,ue(),{...s||{},postEvent:Z})}const Se=X({invokeCustomMethod:Ne});function Sr(){return new Ke(n.function.pipe(S(),k,Se))}const Cr=Sr();class ze{constructor({isVBma:e,request:s,version:r,createRequestId:a}){t(this,"getItemFp");t(this,"getItem");t(this,"setItemFp");t(this,"setItem");t(this,"deleteItemFp");t(this,"deleteItem");t(this,"clearFp");t(this,"clear");const c=y({version:r,requires:"web_app_device_storage_get_key",isVBma:e,returns:"task"}),p=(u,d,b)=>{const w=a();return n.function.pipe(s(u,["device_storage_failed",d],{params:{...b,req_id:w},capture:(g=>"payload"in g?g.payload.req_id===w:!0)}),n.taskEither.chain(g=>g.event==="device_storage_failed"?n.taskEither.left(new Ae(g.payload.error||"UNKNOWN_ERROR")):n.taskEither.right(g.payload)))};this.getItemFp=c(u=>n.function.pipe(p("web_app_device_storage_get_key","device_storage_key_received",{key:u}),n.taskEither.map(d=>d.value))),this.setItemFp=c((u,d)=>n.function.pipe(p("web_app_device_storage_save_key","device_storage_key_saved",{key:u,value:d}),n.taskEither.map(()=>{}))),this.deleteItemFp=c(u=>this.setItemFp(u,null)),this.clearFp=c(()=>n.function.pipe(p("web_app_device_storage_clear","device_storage_cleared",{}),n.taskEither.map(()=>{}))),this.getItem=h(this.getItemFp),this.setItem=h(this.setItemFp),this.deleteItem=h(this.deleteItemFp),this.clear=h(this.clearFp)}}const Je=X({createRequestId:ue});function kr(){return new ze(n.function.pipe(S(),k,T,Je))}const vr=kr();function Br({request:i,...e}){return q(s=>n.function.pipe(i("web_app_request_emoji_status_access","emoji_status_access_requested",s),n.taskEither.map(r=>r.status)),{...e,requires:"web_app_request_emoji_status_access",returns:"task"})}function Er(){return Br(n.function.pipe(S(),k,T))}const Ye=Er(),yr=h(Ye);function $r({request:i,...e}){return q((s,r)=>n.function.pipe(i("web_app_set_emoji_status",["emoji_status_set","emoji_status_failed"],{params:{custom_emoji_id:s,duration:(r||{}).duration},...r}),n.taskEither.chainW(a=>a.event==="emoji_status_failed"?n.taskEither.left(new Te(a.payload.error)):n.taskEither.right(void 0))),{...e,requires:"web_app_set_emoji_status",returns:"task"})}function qr(){return $r(n.function.pipe(S(),T,k))}const Ze=qr(),Ir=h(Ze);class Xe{constructor({postEvent:e,isVBma:s,version:r}){t(this,"isSupported");t(this,"impactOccurredFp");t(this,"impactOccurred");t(this,"notificationOccurredFp");t(this,"notificationOccurred");t(this,"selectionChangedFp");t(this,"selectionChanged");const a="web_app_trigger_haptic_feedback",c=y({requires:a,isVBma:s,version:r,returns:"plain"});this.isSupported=U(a,r),this.impactOccurredFp=c(p=>e(a,{type:"impact",impact_style:p})),this.notificationOccurredFp=c(p=>e(a,{type:"notification",notification_type:p})),this.selectionChangedFp=c(()=>e(a,{type:"selection_change"})),this.impactOccurred=h(this.impactOccurredFp),this.notificationOccurred=h(this.notificationOccurredFp),this.selectionChanged=h(this.selectionChangedFp)}}function Hr(){return new Xe(n.function.pipe(S(),R,k))}const Pr=Hr();function Ar({postEvent:i,...e}){return q(()=>i("web_app_add_to_home_screen"),{...e,requires:"web_app_add_to_home_screen",returns:"either"})}function Mr(){return Ar(n.function.pipe(S(),k,R))}const et=Mr(),Rr=h(et);function xr({request:i,...e}){return q(s=>n.function.pipe(i("web_app_check_home_screen","home_screen_checked",s),n.taskEither.map(r=>r.status||"unknown")),{...e,requires:"web_app_check_home_screen",returns:"task"})}function Tr(){return xr(n.function.pipe(S(),k,T))}const tt=Tr(),Lr=h(tt);class rt{constructor({retrieveInitData:e}){t(this,"_state",_.signal());t(this,"_raw",_.signal());t(this,"state",_.computed(this._state));t(this,"authDate",this.fromState("auth_date"));t(this,"canSendAfter",this.fromState("can_send_after"));t(this,"canSendAfterDate",_.computed(()=>{const e=this.authDate(),s=this.canSendAfter();return s&&e?new Date(e.getTime()+s*1e3):void 0}));t(this,"chat",this.fromState("chat"));t(this,"chatType",this.fromState("chat_type"));t(this,"chatInstance",this.fromState("chat_instance"));t(this,"hash",this.fromState("hash"));t(this,"queryId",this.fromState("query_id"));t(this,"raw",_.computed(this._raw));t(this,"receiver",this.fromState("receiver"));t(this,"signature",this.fromState("signature"));t(this,"startParam",this.fromState("start_param"));t(this,"auth",this.fromState("auth"));t(this,"user",this.fromState("user"));t(this,"restoreFp");t(this,"restore");this.restoreFp=()=>n.function.pipe(e(),n.either.map(n.option.match(()=>{},({raw:s,obj:r})=>{this._state.set(r),this._raw.set(s)}))),this.restore=A.throwifyFpFn(this.restoreFp)}fromState(e){return _.computed(()=>{const s=this._state();return s?s[e]:void 0})}}function Vr(){return new rt({retrieveInitData(){return n.function.pipe(n.either.Do,n.either.bindW("obj",()=>n.function.pipe(o.retrieveLaunchParamsFp(),n.either.map(({vbWebAppData:i})=>i?n.option.some(i):n.option.none))),n.either.bindW("raw",o.retrieveRawInitDataFp),n.either.map(({obj:i,raw:e})=>n.function.pipe(n.option.Do,n.option.bind("obj",()=>i),n.option.bind("raw",()=>e))))}})}const Or=Vr();class st{constructor({version:e,request:s,isVBma:r}){t(this,"isOpened");t(this,"isSupported");t(this,"openSlugFp");t(this,"openSlug");t(this,"openUrlFp");t(this,"openUrl");const a=y({version:e,isVBma:r,requires:"web_app_open_invoice",returns:"task"}),c=_.signal(!1),p=()=>{c.set(!1)};this.isSupported=U("web_app_open_invoice",e),this.isOpened=_.computed(c),this.openSlugFp=a((u,d)=>n.function.pipe(this.isOpened()?n.taskEither.left(new ae("Invoice is already opened")):n.taskEither.right(void 0),n.taskEither.chain(()=>(c.set(!0),s("web_app_open_invoice","invoice_closed",{...d,params:{slug:u},capture:b=>u===b.slug}))),n.taskEither.mapBoth(b=>(p(),b),b=>(p(),b.status)))),this.openUrlFp=a((u,d)=>{const{hostname:b,pathname:w}=new URL(u,window.location.href);if(b!=="vbot.vn")return n.taskEither.left(new G(`Link has unexpected hostname: ${b}`));const g=w.match(/^\/(\$|invoice\/)([A-Za-z0-9\-_=]+)$/);return g?this.openSlugFp(g[2],d):n.taskEither.left(new G('Expected to receive a link with a pathname in format "/invoice/{slug}" or "/${slug}"'))}),this.openUrl=h(this.openUrlFp),this.openSlug=h(this.openSlugFp)}}function jr(){return new st(n.function.pipe(S(),T,k))}const Dr=jr();function Gr({postEvent:i,...e}){return q((s,r={})=>{if(typeof s=="string")try{s=new URL(s)}catch(a){return n.either.left(new G(`"${s.toString()}" is invalid URL`,a))}return i("web_app_open_link",{url:s.toString(),try_browser:r.tryBrowser,try_instant_view:r.tryInstantView})},{...e,returns:"either"})}function Ur(){return Gr(n.function.pipe(S(),R))}const nt=Ur(),Wr=h(nt);function Qr({postEvent:i,version:e,...s}){return q(r=>{const a=r.toString();return a.match(/^https:\/\/vbot\.vn\/.+/)?o.supports("web_app_open_vb_link",V(e))?(r=new URL(r),i("web_app_open_vb_link",{path_full:r.pathname+r.search})):(window.location.href=a,n.either.right(void 0)):n.either.left(new G(`"${a}" is invalid URL`))},{...s,returns:"either"})}function Kr(){return Qr(n.function.pipe(S(),R,k))}const Ce=Kr(),Nr=h(Ce);function zr({openVbotLink:i,...e}){return q((s,r)=>i("https://vbot.vn/share/url?"+new URLSearchParams({url:s,text:r||""}).toString().replace(/\+/g,"%20")),{...e,returns:"either"})}function Jr(){return zr({...S(),openVbotLink:Ce})}const it=Jr(),Yr=h(it);function Zr(i){let e=!1,s,r;return i.available&&(e=!0,s=i.access_requested,r=i.access_granted),{available:e,accessGranted:r||!1,accessRequested:s||!1}}class ot{constructor({version:e,request:s,postEvent:r,storage:a,isVBma:c,isPageReload:p}){t(this,"state");t(this,"isAvailable");t(this,"isAccessGranted");t(this,"isAccessRequested");t(this,"isMounted");t(this,"isSupported");t(this,"openSettingsFp");t(this,"openSettings");t(this,"requestLocationFp");t(this,"requestLocation");t(this,"mountFp");t(this,"mount");t(this,"unmount");const u=new N({initialState:{available:!1,accessGranted:!1,accessRequested:!1},onChange:a.set}),d=new we({isPageReload:p,restoreState:a.get,onMounted:u.setState,initialState(F){return n.function.pipe(s("web_app_check_location","location_checked",F),n.taskEither.map(Zr))}}),b={version:e,requires:"web_app_check_location",isVBma:c},w=y({...b,returns:"either"}),g=y({...b,returns:"task"}),C=y({...b,returns:"task",isMounted:d.isMounted});this.isAvailable=u.getter("available"),this.isAccessRequested=u.getter("accessRequested"),this.isAccessGranted=u.getter("accessGranted"),this.isSupported=U("web_app_check_location",e),this.isMounted=d.isMounted,this.state=u.state,this.unmount=d.unmount,this.mountFp=g(d.mount),this.openSettingsFp=w(()=>r("web_app_open_location_settings")),this.requestLocationFp=C(F=>n.function.pipe(s("web_app_request_location","location_requested",F),n.taskEither.map(v=>{if(!v.available)return u.setState({available:!1}),null;const{available:B,...f}=v;return f}))),this.mount=h(this.mountFp),this.openSettings=h(this.openSettingsFp),this.requestLocation=h(this.requestLocationFp)}}function Xr(){return new ot(n.function.pipe(S(),R,k,T,z("locationManager")))}const es=Xr();class at{constructor({defaults:e,...s}){t(this,"bgColor");t(this,"hasShineEffect");t(this,"isEnabled");t(this,"isLoaderVisible");t(this,"isVisible");t(this,"isMounted");t(this,"state");t(this,"text");t(this,"textColor");t(this,"showFp");t(this,"show");t(this,"hideFp");t(this,"hide");t(this,"enableFp");t(this,"enable");t(this,"enableShineEffectFp");t(this,"enableShineEffect");t(this,"disableFp");t(this,"disable");t(this,"disableShineEffectFp");t(this,"disableShineEffect");t(this,"setBgColorFp");t(this,"setBgColor");t(this,"setTextColorFp");t(this,"setTextColor");t(this,"setTextFp");t(this,"setText");t(this,"showLoaderFp");t(this,"showLoader");t(this,"hideLoaderFp");t(this,"hideLoader");t(this,"setParamsFp");t(this,"setParams");t(this,"mountFp");t(this,"mount");t(this,"unmount");t(this,"onClickFp");t(this,"onClick");t(this,"offClickFp");t(this,"offClick");const r=new ce({...s,version:"100",initialState:{hasShineEffect:!1,isEnabled:!0,isLoaderVisible:!1,isVisible:!1,text:"Continue"},method:"web_app_setup_main_button",payload:c=>({has_shine_effect:c.hasShineEffect,is_visible:c.isVisible,is_active:c.isEnabled,is_progress_visible:c.isLoaderVisible,text:c.text,color:c.bgColor,text_color:c.textColor})}),a=(c,p)=>{const u=r.stateGetter(c);return _.computed(()=>u()||V(p))};this.bgColor=a("bgColor",e.bgColor),this.textColor=a("textColor",e.textColor),this.hasShineEffect=r.stateGetter("hasShineEffect"),this.isEnabled=r.stateGetter("isEnabled"),this.isLoaderVisible=r.stateGetter("isLoaderVisible"),this.text=r.stateGetter("text"),this.isVisible=r.stateGetter("isVisible"),this.isMounted=r.isMounted,this.state=r.state,[this.setBgColor,this.setBgColorFp]=r.stateSetters("bgColor"),[this.setTextColor,this.setTextColorFp]=r.stateSetters("textColor"),[[this.disableShineEffect,this.disableShineEffectFp],[this.enableShineEffect,this.enableShineEffectFp]]=r.stateBoolSetters("hasShineEffect"),[[this.disable,this.disableFp],[this.enable,this.enableFp]]=r.stateBoolSetters("isEnabled"),[[this.hideLoader,this.hideLoaderFp],[this.showLoader,this.showLoaderFp]]=r.stateBoolSetters("isLoaderVisible"),[this.setText,this.setTextFp]=r.stateSetters("text"),[[this.hide,this.hideFp],[this.show,this.showFp]]=r.stateBoolSetters("isVisible"),this.setParams=r.setState,this.setParamsFp=r.setStateFp,this.onClick=r.onClick,this.onClickFp=r.onClickFp,this.offClick=r.offClick,this.offClickFp=r.offClickFp,this.mount=r.mount,this.mountFp=r.mountFp,this.unmount=r.unmount}}function ke(i,e){document.documentElement.style.setProperty(i,e)}function ve(i){document.documentElement.style.removeProperty(i)}function ct(i){return n.function.pipe(I.toRGBFullFp(i),n.either.map(e=>Math.sqrt([.299,.587,.114].reduce((s,r,a)=>{const c=parseInt(e.slice(1+a*2,1+(a+1)*2),16);return s+c*c*r},0))<120))}const Be=A.throwifyFpFn(ct);class ut{constructor({initialState:e,onChange:s,offChange:r,isVBma:a,storage:c,isPageReload:p}){t(this,"accentTextColor");t(this,"bgColor");t(this,"buttonColor");t(this,"buttonTextColor");t(this,"bottomBarBgColor");t(this,"destructiveTextColor");t(this,"headerBgColor");t(this,"hintColor");t(this,"linkColor");t(this,"secondaryBgColor");t(this,"sectionBgColor");t(this,"sectionHeaderTextColor");t(this,"sectionSeparatorColor");t(this,"subtitleTextColor");t(this,"textColor");t(this,"_isCssVarsBound",_.signal(!1));t(this,"isCssVarsBound",_.computed(this._isCssVarsBound));t(this,"bindCssVarsFp");t(this,"bindCssVars");t(this,"state");t(this,"isDark",_.computed(()=>{const e=this.bgColor();return!e||Be(e)}));t(this,"isMounted");t(this,"mountFp");t(this,"mount");t(this,"unmount");const u=new N({initialState:{},onChange:c.set}),d=F=>{u.setState(F.theme_params)},b=new re({initialState:()=>n.either.right(V(e)),isPageReload:p,onMounted(F){u.setState(F),s(d)},onUnmounted(){r(d)},restoreState:c.get}),w={isVBma:a,returns:"either"},g=y(w),C=y({...w,isMounted:b.isMounted});this.accentTextColor=u.getter("accent_text_color"),this.bgColor=u.getter("bg_color"),this.buttonColor=u.getter("button_color"),this.buttonTextColor=u.getter("button_text_color"),this.bottomBarBgColor=u.getter("bottom_bar_bg_color"),this.destructiveTextColor=u.getter("destructive_text_color"),this.headerBgColor=u.getter("header_bg_color"),this.hintColor=u.getter("hint_color"),this.linkColor=u.getter("link_color"),this.secondaryBgColor=u.getter("secondary_bg_color"),this.sectionBgColor=u.getter("section_bg_color"),this.sectionHeaderTextColor=u.getter("section_header_text_color"),this.sectionSeparatorColor=u.getter("section_separator_color"),this.subtitleTextColor=u.getter("subtitle_text_color"),this.textColor=u.getter("text_color"),this.state=u.state,this.isMounted=b.isMounted,this.bindCssVarsFp=C(F=>{if(this._isCssVarsBound())return n.either.left(new oe);F||(F=f=>`--vb-theme-${A.snakeToKebab(f)}`);const v=f=>{Object.entries(u.state()).forEach(([m,l])=>{l&&f(m,l)})},B=()=>{v((f,m)=>{ke(F(f),m)})};return B(),u.state.sub(B),this._isCssVarsBound.set(!0),n.either.right(()=>{v(ve),u.state.unsub(B),this._isCssVarsBound.set(!1)})}),this.mountFp=g(b.mount),this.unmount=b.unmount,this.bindCssVars=h(this.bindCssVarsFp),this.mount=h(this.mountFp)}}const be=se({});function ts(){return new ut({...n.function.pipe(S(),z("themeParams")),offChange(i){o.off("theme_changed",i)},onChange(i){o.on("theme_changed",i)},initialState:be})}const te=ts();function pt(i,e,s){return n.function.pipe(me(i,e),r=>({...r,defaults:s}))}const rs=new at(pt("mainButton","main_button_pressed",{bgColor:_.computed(()=>te.buttonColor()||"#2481cc"),textColor:_.computed(()=>te.buttonTextColor()||"#ffffff")}));class dt{constructor({storage:e,isPageReload:s,version:r,postEvent:a,isVBma:c,theme:p,onVisibilityChanged:u,offVisibilityChanged:d}){t(this,"isSupported");t(this,"isDark",_.computed(()=>{const e=this.bgColorRgb();return e?Be(e):!1}));t(this,"isActive");t(this,"state");t(this,"isCssVarsBound");t(this,"bindCssVarsFp");t(this,"bindCssVars");t(this,"isMounted");t(this,"mountFp");t(this,"mount");t(this,"unmount");t(this,"bgColor");t(this,"bgColorRgb");t(this,"setBgColorFp");t(this,"setBgColor");t(this,"headerColor");t(this,"headerColorRgb");t(this,"setHeaderColorFp");t(this,"setHeaderColor");t(this,"bottomBarColor");t(this,"bottomBarColorRgb");t(this,"setBottomBarColorFp");t(this,"setBottomBarColor");t(this,"closeFp");t(this,"close");t(this,"readyFp");t(this,"ready");const b=l=>{C.setState({isActive:l.is_visible})},w=l=>{[[this.headerColor,"web_app_set_header_color"],[this.bgColor,"web_app_set_background_color"],[this.bottomBarColor,"web_app_set_bottom_bar_color"]].forEach(([H,x])=>{const M=H();if(!I.isRGB(M)&&(x!=="web_app_set_header_color"||!["bg_color","secondary_bg_color"].includes(M))){const j=l[M];j&&a(x,{color:j})}})},g=new re({initialState(){return n.either.right({bgColor:"bg_color",headerColor:"header_bg_color",bottomBarColor:"bottom_bar_bg_color",isActive:!0})},isPageReload:s,onMounted:l=>{u(b),p.sub(w),C.setState(l)},onUnmounted(){d(b),p.unsub(w)},restoreState:e.get});this.isMounted=g.isMounted,this.mountFp=q(()=>{const l=()=>{};return n.function.pipe(g.mount(),n.either.match(l,l))},{isVBma:c,returns:"plain"}),this.mount=h(this.mountFp),this.unmount=g.unmount;const C=new N({initialState:{bgColor:"bg_color",bottomBarColor:"bottom_bar_bg_color",headerColor:"bg_color",isActive:!1},onChange:e.set});this.state=C.state;const F=l=>I.isRGB(l)?l:V(p)[l],v=l=>_.computed(()=>F(l()));this.isActive=C.getter("isActive"),this.isSupported=_.computed(()=>["web_app_set_header_color","web_app_set_background_color","web_app_set_bottom_bar_color"].some(l=>o.supports(l,V(r))));const B=_.signal(!1);this.isCssVarsBound=_.computed(B),this.bindCssVarsFp=q(l=>{if(B())return n.either.left(new oe);const[H,x]=A.createCbCollector(()=>{B.set(!1)}),M=(j,L)=>{const W=()=>{ke(j,L()||null)};W(),H(L.sub(W),ve.bind(null,j))};return l||(l=j=>`--tg-${A.camelToKebab(j)}`),M(l("bgColor"),this.bgColorRgb),M(l("bottomBarColor"),this.bottomBarColorRgb),M(l("headerColor"),this.headerColorRgb),B.set(!0),n.either.right(x)},{isVBma:c,returns:"either",isMounted:this.isMounted}),this.bindCssVars=h(this.bindCssVarsFp);const f=l=>{const H=C.getter(l),x=v(H),M={headerColor:"web_app_set_header_color",bgColor:"web_app_set_background_color",bottomBarColor:"web_app_set_bottom_bar_color"}[l],j=q(L=>{if(L===H())return n.either.right(void 0);if(M==="web_app_set_header_color"&&(L==="bg_color"||L==="secondary_bg_color"))return n.function.pipe(a("web_app_set_header_color",{color_key:L}),n.either.map(()=>{C.setState({[l]:L})}));const W=F(L);return n.function.pipe(W?a(M,{color:W}):n.either.left(new Oe(L)),n.either.map(()=>{C.setState({[l]:L})}))},{isVBma:c,version:r,requires:M,isMounted:this.isMounted,returns:"either",supports:l==="headerColor"?{rgb:{method:"web_app_set_header_color",param:"color",shouldCheck:I.isRGB}}:void 0});return[H,x,h(j),j]};[this.bgColor,this.bgColorRgb,this.setBgColor,this.setBgColorFp]=f("bgColor"),[this.headerColor,this.headerColorRgb,this.setHeaderColor,this.setHeaderColorFp]=f("headerColor"),[this.bottomBarColor,this.bottomBarColorRgb,this.setBottomBarColor,this.setBottomBarColorFp]=f("bottomBarColor");const m=y({isVBma:c,returns:"either"});this.closeFp=m(l=>a("web_app_close",{return_back:l})),this.close=h(this.closeFp),this.readyFp=m(()=>a("web_app_ready")),this.ready=h(this.readyFp)}}function ss(){return new dt({...n.function.pipe(S(),R,k,z("miniApp")),offVisibilityChanged(i){o.off("visibility_changed",i)},onVisibilityChanged(i){o.on("visibility_changed",i)},theme:te.state})}const ht=ss();function ns(){const i=Date.now(),e=Math.random().toString(36).substring(2,9);return`notif_${i}_${e}`}class lt{constructor({version:e,isVBma:s}){t(this,"isSupported");t(this,"sendFp");t(this,"send");const r=y({version:e,isVBma:s,requires:"web_app_send_notification",returns:"task"});this.isSupported=U("web_app_send_notification",e),this.sendFp=r(a=>n.function.pipe(n.taskEither.fromEither(o.postEventFp("web_app_send_notification",{id:ns(),message:a.message,title:a.title,type:a.type??"default"})),n.taskEither.map(()=>{}))),this.send=a=>this.sendFp(a)().then(p=>{if(p._tag==="Left")throw p.left;return p.right})}}function is(){return new lt(k(S()))}const os=is();function as(i){const e=i.message.trim(),s=(i.title||"").trim(),r=i.buttons||[];if(s.length>64)return n.either.left(new G(`Invalid title: ${s}`));if(!e||e.length>256)return n.either.left(new G(`Invalid message: ${e}`));if(r.length>3)return n.either.left(new G(`Invalid buttons count: ${r.length}`));const a=[];if(!r.length)a.push({type:"close",id:""});else for(let c=0;c<r.length;c++){const p=r[c],u=p.id||"";if(u.length>64)return n.either.left(new G(`Button with index ${c} has invalid id: ${u}`));if(!p.type||p.type==="default"||p.type==="destructive"){const d=p.text.trim();if(!d||d.length>64)return n.either.left(new G(`Button with index ${c} has invalid text: ${d}`));a.push({type:p.type,text:d,id:u})}else a.push({type:p.type,id:u})}return n.either.right({title:s,message:e,buttons:a})}class gt{constructor({version:e,isVBma:s,request:r}){t(this,"isOpened");t(this,"isSupported");t(this,"showFp");t(this,"show");const a=_.signal(!1),c=()=>{a.set(!1)},p=y({version:e,isVBma:s,requires:"web_app_open_popup",returns:"task"});this.isSupported=U("web_app_open_popup",e),this.isOpened=_.computed(a),this.showFp=p(u=>n.function.pipe(this.isOpened()?n.taskEither.left(new ae("A popup is already opened")):n.taskEither.right(void 0),n.taskEither.chainW(()=>n.taskEither.fromEither(as(u))),n.taskEither.chain(d=>(a.set(!0),r("web_app_open_popup","popup_closed",{...u,params:d}))),n.taskEither.mapBoth(d=>(c(),d),d=>(c(),d.button_id)))),this.show=h(this.showFp)}}function cs(){return new gt(n.function.pipe(S(),T,k))}const us=cs();function ps({request:i,...e}){return q(s=>n.function.pipe(i("web_app_request_phone","phone_requested",s),n.taskEither.map(r=>r.status)),{...e,requires:"web_app_request_phone",returns:"task"})}function ds(){return ps(n.function.pipe(S(),k,T))}const Ee=ds(),hs=h(Ee);function ls({invokeCustomMethod:i,requestPhoneAccess:e,...s}){const r=p=>n.function.pipe(i("getRequestedContact",{},{...p,timeout:(p||{}).timeout||5e3}),n.taskEither.chainW(u=>{const d=E.safeParse(E.string(),u);if(!d.success)return n.taskEither.left(new ee(u,d.issues));if(!d.output)return n.taskEither.right(void 0);const b=E.safeParse(I.pipeQueryToSchema(E.looseObject({contact:I.pipeJsonToSchema(E.looseObject({user_id:E.number(),phone_number:E.string(),first_name:E.string(),last_name:E.optional(E.string())})),auth_date:E.pipe(E.string(),E.transform(w=>new Date(Number(w)*1e3)),E.date()),hash:E.string()})),d.output);return b.success?n.taskEither.right({raw:d.output,parsed:b.output}):n.taskEither.left(new ee(d.output,b.issues))})),a=p=>n.function.pipe(r(p),n.taskEither.match(u=>ee.is(u)?n.either.left(u):n.either.right(void 0),u=>n.either.right(u))),c=p=>A.BetterTaskEither(async(u,d,b)=>{let w=50;for(;!b.isRejected;){const g=await a(b)();if(g._tag==="Left")return d(g.left);if(g.right)return u(g.right);await new Promise(C=>setTimeout(C,w)),w+=50}},p);return q(p=>A.BetterTaskEither.fn(u=>n.function.pipe(a(u),n.taskEither.chain(d=>d?n.taskEither.right(d):n.function.pipe(e(u),n.taskEither.chainW(b=>b==="sent"?c(u):n.taskEither.left(new _e("User denied access")))))),p),{...s,returns:"task",requires:"web_app_request_phone"})}function gs(){return ls({...n.function.pipe(S(),Se,k),requestPhoneAccess:Ee})}function bs({requestContact:i,...e}){return q(i,{...e,returns:"task",requires:"web_app_request_phone"})}function fs(){return bs({...n.function.pipe(S(),k),requestContact(i){return n.function.pipe(ye(i),n.taskEither.map(e=>e.parsed))}})}const ye=gs(),_s=h(ye),bt=fs(),ms=h(bt);function ws({request:i,...e}){return q(s=>n.function.pipe(i("web_app_request_write_access","write_access_requested",s),n.taskEither.map(r=>r.status)),{...e,requires:"web_app_request_write_access",returns:"task"})}function Fs(){return ws(n.function.pipe(S(),k,T))}const ft=Fs(),Ss=h(ft);class _t{constructor({version:e,onClosed:s,onTextReceived:r,isVBma:a,postEvent:c}){t(this,"isOpened");t(this,"isSupported");t(this,"captureFp");t(this,"capture");t(this,"closeFp");t(this,"close");t(this,"openFp");t(this,"open");const p={version:e,requires:"web_app_open_scan_qr_popup",isVBma:a},u=y({...p,returns:"either"}),d=y({...p,returns:"task"}),b=_.signal(!1),w=()=>{b.set(!1)};this.isSupported=U("web_app_open_scan_qr_popup",e),this.isOpened=_.computed(b),this.captureFp=d(g=>{let C;return n.function.pipe(this.openFp({...g,onCaptured:F=>{g.capture(F)&&(C=F,this.close())}}),n.taskEither.map(()=>C))}),this.closeFp=u(()=>n.function.pipe(c("web_app_close_scan_qr_popup"),n.either.map(w))),this.openFp=d(g=>n.function.pipe(b()?n.taskEither.left(new ae("The QR Scanner is already opened")):async()=>c("web_app_open_scan_qr_popup",{text:g.text}),n.taskEither.chainW(()=>{b.set(!0);const[C,F]=A.createCbCollector(),v=B=>(F(),b.set(!1),B);return n.function.pipe(A.BetterTaskEither(B=>{C(s(B),b.sub(f=>{f||B()}),r(g.onCaptured))},g),n.taskEither.mapBoth(v,v))}))),this.open=h(this.openFp),this.capture=h(this.captureFp),this.close=h(this.closeFp)}}function Cs(){return new _t({...n.function.pipe(S(),R,k),onClosed(i){return o.on("scan_qr_popup_closed",i)},onTextReceived(i){return o.on("qr_text_received",e=>{i(e.data)})}})}const ks=Cs();class mt{constructor({}){t(this,"isRefreshing");t(this,"finishRefreshFp");t(this,"finishRefresh");t(this,"onRefreshRequest");const e=_.signal(!1);o.on("refresh_requested",()=>{e.set(!0)}),this.isRefreshing=_.computed(e),this.finishRefreshFp=()=>n.function.pipe(n.taskEither.fromEither(o.postEventFp("web_app_finish_refresh")),n.taskEither.map(()=>{e.set(!1)})),this.finishRefresh=()=>this.finishRefreshFp()().then(r=>{if(r._tag==="Left")throw r.left;return r.right}),this.onRefreshRequest=s=>{const r=()=>{s()};return o.on("refresh_requested",r)}}}function vs(){return new mt(n.function.pipe(S()))}const Bs=vs();class wt{constructor({defaults:e,...s}){t(this,"isSupported");t(this,"position");t(this,"bgColor");t(this,"hasShineEffect");t(this,"isEnabled");t(this,"isLoaderVisible");t(this,"isVisible");t(this,"isMounted");t(this,"state");t(this,"text");t(this,"textColor");t(this,"showFp");t(this,"show");t(this,"hideFp");t(this,"hide");t(this,"enableFp");t(this,"enable");t(this,"enableShineEffectFp");t(this,"enableShineEffect");t(this,"disableFp");t(this,"disable");t(this,"disableShineEffectFp");t(this,"disableShineEffect");t(this,"setBgColorFp");t(this,"setBgColor");t(this,"setTextColorFp");t(this,"setTextColor");t(this,"setTextFp");t(this,"setText");t(this,"setPositionFp");t(this,"setPosition");t(this,"showLoaderFp");t(this,"showLoader");t(this,"hideLoaderFp");t(this,"hideLoader");t(this,"setParamsFp");t(this,"setParams");t(this,"mountFp");t(this,"mount");t(this,"unmount");t(this,"onClickFp");t(this,"onClick");t(this,"offClickFp");t(this,"offClick");const r=new ce({...s,initialState:{hasShineEffect:!1,isEnabled:!0,isLoaderVisible:!1,isVisible:!1,text:"Cancel",position:"left"},method:"web_app_setup_secondary_button",payload:c=>({has_shine_effect:c.hasShineEffect,is_visible:c.isVisible,is_active:c.isEnabled,is_progress_visible:c.isLoaderVisible,text:c.text,color:c.bgColor,text_color:c.textColor,position:c.position})}),a=(c,p)=>{const u=r.stateGetter(c);return _.computed(()=>u()||V(p))};this.isSupported=U("web_app_setup_secondary_button",s.version),this.bgColor=a("bgColor",e.bgColor),this.textColor=a("textColor",e.textColor),this.position=r.stateGetter("position"),this.hasShineEffect=r.stateGetter("hasShineEffect"),this.isEnabled=r.stateGetter("isEnabled"),this.isLoaderVisible=r.stateGetter("isLoaderVisible"),this.text=r.stateGetter("text"),this.isVisible=r.stateGetter("isVisible"),this.isMounted=r.isMounted,this.state=r.state,[this.setPosition,this.setPositionFp]=r.stateSetters("position"),[this.setBgColor,this.setBgColorFp]=r.stateSetters("bgColor"),[this.setTextColor,this.setTextColorFp]=r.stateSetters("textColor"),[[this.disableShineEffect,this.disableShineEffectFp],[this.enableShineEffect,this.enableShineEffectFp]]=r.stateBoolSetters("hasShineEffect"),[[this.disable,this.disableFp],[this.enable,this.enableFp]]=r.stateBoolSetters("isEnabled"),[[this.hideLoader,this.hideLoaderFp],[this.showLoader,this.showLoaderFp]]=r.stateBoolSetters("isLoaderVisible"),[this.setText,this.setTextFp]=r.stateSetters("text"),[[this.hide,this.hideFp],[this.show,this.showFp]]=r.stateBoolSetters("isVisible"),this.setParams=r.setState,this.setParamsFp=r.setStateFp,this.onClick=r.onClick,this.onClickFp=r.onClickFp,this.offClick=r.offClick,this.offClickFp=r.offClickFp,this.mount=r.mount,this.mountFp=r.mountFp,this.unmount=r.unmount}}function Es(){return new wt(pt("secondaryButton","secondary_button_pressed",{bgColor:_.computed(()=>ht.bottomBarColorRgb()||"#000000"),textColor:_.computed(()=>te.buttonColor()||"#2481cc")}))}const ys=Es();class Ft{constructor({isVBma:e,request:s,version:r,createRequestId:a}){t(this,"getItemFp");t(this,"getItem");t(this,"restoreItemFp");t(this,"restoreItem");t(this,"setItemFp");t(this,"setItem");t(this,"deleteItemFp");t(this,"deleteItem");t(this,"clearFp");t(this,"clear");const c=y({version:r,requires:"web_app_secure_storage_get_key",isVBma:e,returns:"task"}),p=(u,d,b)=>{const w=a();return n.function.pipe(s(u,["secure_storage_failed",d],{params:{...b,req_id:w},capture:(g=>"payload"in g?g.payload.req_id===w:!0)}),n.taskEither.chain(g=>g.event==="secure_storage_failed"?n.taskEither.left(new Me(g.payload.error||"UNKNOWN_ERROR")):n.taskEither.right(g.payload)))};this.getItemFp=c(u=>n.function.pipe(p("web_app_secure_storage_get_key","secure_storage_key_received",{key:u}),n.taskEither.map(d=>({value:d.value,canRestore:!!d.can_restore})))),this.setItemFp=c((u,d)=>n.function.pipe(p("web_app_secure_storage_save_key","secure_storage_key_saved",{key:u,value:d}),n.taskEither.map(()=>{}))),this.deleteItemFp=c(u=>this.setItemFp(u,null)),this.clearFp=c(()=>n.function.pipe(p("web_app_secure_storage_clear","secure_storage_cleared",{}),n.taskEither.map(()=>{}))),this.restoreItemFp=c(u=>n.function.pipe(p("web_app_secure_storage_restore_key","secure_storage_key_restored",{key:u}),n.taskEither.map(d=>d.value))),this.getItem=h(this.getItemFp),this.setItem=h(this.setItemFp),this.deleteItem=h(this.deleteItemFp),this.clear=h(this.clearFp),this.restoreItem=h(this.restoreItemFp)}}function $s(){return new Ft(n.function.pipe(S(),k,T,Je))}const qs=$s();class St{constructor(e){t(this,"isVisible");t(this,"isMounted");t(this,"isSupported");t(this,"hideFp");t(this,"hide");t(this,"showFp");t(this,"show");t(this,"onClickFp");t(this,"onClick");t(this,"offClickFp");t(this,"offClick");t(this,"mountFp");t(this,"mount");t(this,"unmount");const s=new ce({...e,method:"web_app_setup_settings_button",payload:r=>({is_visible:r.isVisible}),initialState:{isVisible:!1}});this.isVisible=s.stateGetter("isVisible"),this.isMounted=s.isMounted,this.isSupported=s.isSupported,[[this.hide,this.hideFp],[this.show,this.showFp]]=s.stateBoolSetters("isVisible"),this.onClick=s.onClick,this.onClickFp=s.onClickFp,this.offClick=s.offClick,this.offClickFp=s.offClickFp,this.mount=s.mount,this.mountFp=s.mountFp,this.unmount=s.unmount}}const Is=new St(me("settingsButton","settings_button_pressed"));class Ct{constructor({postEvent:e,storage:s,isVBma:r,isPageReload:a,version:c}){t(this,"isSupported");t(this,"isVerticalEnabled");t(this,"isMounted");t(this,"mountFp");t(this,"mount");t(this,"unmount");t(this,"disableVerticalFp");t(this,"disableVertical");t(this,"enableVerticalFp");t(this,"enableVertical");const p={isVerticalEnabled:!0},u=new N({initialState:p,onChange(F){s.set(F)}}),d=new re({initialState:p,isPageReload:a,onMounted:u.setState,restoreState:s.get}),b={requires:"web_app_setup_swipe_behavior",isVBma:r,version:c},w=y({...b,returns:"plain"}),g=y({...b,isMounted:d.isMounted,returns:"either"}),C=F=>{const v={isVerticalEnabled:F};return u.hasDiff(v)?n.function.pipe(e("web_app_setup_swipe_behavior",{allow_vertical_swipe:F}),n.either.map(()=>{u.setState(v)})):n.either.right(void 0)};this.isSupported=U("web_app_setup_swipe_behavior",c),this.isVerticalEnabled=u.getter("isVerticalEnabled"),this.isMounted=d.isMounted,this.disableVerticalFp=g(()=>C(!1)),this.enableVerticalFp=g(()=>C(!0)),this.mountFp=w(()=>{const F=()=>{};return n.function.pipe(d.mount(),n.either.match(F,F))}),this.unmount=d.unmount,this.disableVertical=h(this.disableVerticalFp),this.enableVertical=h(this.enableVerticalFp),this.mount=h(this.mountFp)}}function Hs(){return new Ct(n.function.pipe(S(),R,k,z("swipeBehavior")))}const Ps=Hs();async function As(i){try{const{clipboard:s}=navigator;if(s)return await s.writeText(i)}catch{}const e=document.createElement("textarea");e.value=i,e.style.top="0",e.style.left="0",e.style.position="fixed",document.body.appendChild(e),e.focus(),e.select();try{document.execCommand("copy")}finally{document.body.removeChild(e)}}function Ms({request:i,...e}){return q((s,r,a)=>n.function.pipe(i("web_app_request_file_download","file_download_requested",{...a,params:{url:s,file_name:r}}),n.taskEither.chain(c=>c.status==="downloading"?n.taskEither.right(void 0):n.taskEither.left(new _e("User denied the action")))),{...e,requires:"web_app_request_file_download",returns:"task"})}function Rs(){return Ms(n.function.pipe(S(),T,k))}const kt=Rs(),xs=h(kt);function Ts({invokeCustomMethod:i,...e}){return q(s=>n.function.pipe(i("getCurrentTime",{},s),n.taskEither.chain(r=>{const a=E.safeParse(E.pipe(E.number(),E.integer(),E.transform(c=>new Date(c*1e3)),E.date()),r);return a.success?n.taskEither.right(a.output):n.taskEither.left(new ee(r,a.issues))})),{...e,requires:"web_app_invoke_custom_method",returns:"task"})}function Ls(){return Ts(n.function.pipe(S(),Se,k))}const vt=Ls(),Vs=h(vt);function Os({postEvent:i,...e}){return q(()=>i("web_app_hide_keyboard"),{...e,returns:"either",requires:"web_app_hide_keyboard"})}function js(){return Os(n.function.pipe(S(),R,k))}const Bt=js(),Ds=h(Bt);function Gs({request:i,createRequestId:e,...s}){return q(r=>{const a=e();return n.function.pipe(i("web_app_read_text_from_clipboard","clipboard_text_received",{...r,params:{req_id:a},capture:o.captureSameReq(a)}),n.taskEither.map(({data:c=null})=>c))},{...s,requires:"web_app_read_text_from_clipboard",returns:"task"})}function Us(){return Gs({...n.function.pipe(S(),k,T),createRequestId:ue})}const Et=Us(),Ws=h(Et);function yt(i){const e={},s=i.match(/VBot-Android(?:\/([^ ]+))?(?: (\([^)]+\))?|$)/);if(s){const[,r,a]=s;r&&(e.appVersion=r),a&&a.slice(1,a.length-1).split(";").forEach(c=>{const[p,u]=c.trim().split(" ");if(p==="Android")e.androidVersion=u;else if(p==="SDK"){const d=parseInt(u,10);d&&(e.sdkVersion=d)}else u?(e.manufacturer=p,e.model=u):e.performanceClass=p})}return e}function Qs(){return yt(navigator.userAgent)}function Ks({postEvent:i,...e}){return q(s=>{const{size:r}=new Blob([s]);return!r||r>4096?n.either.left(new G(r?"Maximum size of data to send is 4096 bytes":"Attempted to send empty data")):i("web_app_data_send",{data:s})},{...e,returns:"either"})}function Ns(){return Ks(n.function.pipe(S(),R))}const $t=Ns(),zs=h($t);function Js({request:i,...e}){return q((s,r)=>n.function.pipe(i("web_app_send_prepared_message",["prepared_message_failed","prepared_message_sent"],{...r,params:{id:s}}),n.taskEither.chain(a=>a.event==="prepared_message_failed"?n.taskEither.left(new Ve(a.payload.error)):n.taskEither.right(void 0))),{...e,requires:"web_app_send_prepared_message",returns:"task"})}function Ys(){return Js(n.function.pipe(S(),T,k))}const qt=Ys(),Zs=h(qt);function Xs({postEvent:i,...e}){return q((s,r={})=>i("web_app_share_to_story",{text:r.text,media_url:s,widget_link:r.widgetLink}),{...e,requires:"web_app_share_to_story",returns:"either"})}function en(){return Xs(n.function.pipe(S(),R,k))}const It=en(),tn=h(It),fe=se(!1);function rn({isInlineMode:i,postEvent:e,...s}){return q((r,a)=>e("web_app_switch_inline_query",{query:r,chat_types:a||[]}),{...s,requires:{every:["web_app_switch_inline_query",()=>V(i)?void 0:"The application must be launched in the inline mode"]},returns:"either"})}function sn(){return rn({...n.function.pipe(S(),R,k),isInlineMode:fe})}const Ht=sn(),nn=h(Ht);class Pt{constructor({storage:e,isPageReload:s,onContentSafeAreaInsetsChanged:r,onSafeAreaInsetsChanged:a,onViewportChanged:c,onFullscreenChanged:p,offContentSafeAreaInsetsChanged:u,offFullscreenChanged:d,offSafeAreaInsetsChanged:b,offViewportChanged:w,request:g,isViewportStable:C,isFullscreen:F,isVBma:v,version:B,postEvent:f}){t(this,"state");t(this,"height");t(this,"stableHeight");t(this,"width");t(this,"isExpanded");t(this,"isStable",_.computed(()=>this.height()===this.stableHeight()));t(this,"contentSafeAreaInsets");t(this,"contentSafeAreaInsetTop");t(this,"contentSafeAreaInsetLeft");t(this,"contentSafeAreaInsetRight");t(this,"contentSafeAreaInsetBottom");t(this,"safeAreaInsets");t(this,"safeAreaInsetTop");t(this,"safeAreaInsetLeft");t(this,"safeAreaInsetRight");t(this,"safeAreaInsetBottom");t(this,"isFullscreen");t(this,"requestFullscreenFp");t(this,"requestFullscreen");t(this,"exitFullscreenFp");t(this,"exitFullscreen");t(this,"isCssVarsBound");t(this,"bindCssVarsFp");t(this,"bindCssVars");t(this,"isMounted");t(this,"mountFp");t(this,"mount");t(this,"expandFp");t(this,"expand");const m={top:0,right:0,left:0,bottom:0},l=new N({initialState:{contentSafeAreaInsets:m,height:0,isExpanded:!1,isFullscreen:!1,safeAreaInsets:m,stableHeight:0,width:0},onChange:e.set}),H=$=>{l.setState({isExpanded:$.is_expanded,height:$.height,width:$.width,stableHeight:$.is_state_stable?$.height:void 0})},x=$=>{l.setState({isFullscreen:$.is_fullscreen})},M=$=>{l.setState({safeAreaInsets:$})},j=$=>{l.setState({contentSafeAreaInsets:$})},L=new we({initialState($){const J=Q=>()=>{const[K,D]=Q==="safe-area"?["web_app_request_safe_area","safe_area_changed"]:["web_app_request_content_safe_area","content_safe_area_changed"];return o.supports(K,V(B))?g(K,D,$):n.taskEither.right({top:0,left:0,right:0,bottom:0})},P=Q=>()=>typeof Q=="boolean"?n.taskEither.right(Q):n.taskEither.fromEither(Q());return n.function.pipe(n.taskEither.Do,n.taskEither.bindW("safeAreaInsets",J("safe-area")),n.taskEither.bindW("contentSafeAreaInsets",J("content-safe-area")),n.taskEither.bindW("isFullscreen",P(F)),n.taskEither.bindW("isViewportStable",P(C)),n.taskEither.chainW(({isViewportStable:Q,...K})=>Q?n.taskEither.right({...K,height:window.innerHeight,isExpanded:!0,stableHeight:window.innerHeight,width:window.innerWidth}):n.function.pipe(g("web_app_request_viewport","viewport_changed",$),n.taskEither.map(D=>({...K,height:D.height,isExpanded:D.is_expanded,stableHeight:D.is_state_stable?D.height:0,width:D.width})))))},isPageReload:s,onMounted($){c(H),p(x),a(M),r(j),l.setState($)},onUnmounted(){w(H),d(x),b(M),u(j)},restoreState:e.get}),W=$=>_.computed(()=>this.safeAreaInsets()[$]),ne=$=>_.computed(()=>this.contentSafeAreaInsets()[$]);this.state=l.state,this.height=l.getter("height"),this.stableHeight=l.getter("stableHeight"),this.width=l.getter("width"),this.isExpanded=l.getter("isExpanded"),this.safeAreaInsets=l.getter("safeAreaInsets"),this.safeAreaInsetTop=W("top"),this.safeAreaInsetBottom=W("bottom"),this.safeAreaInsetLeft=W("left"),this.safeAreaInsetRight=W("right"),this.contentSafeAreaInsets=l.getter("contentSafeAreaInsets"),this.contentSafeAreaInsetTop=ne("top"),this.contentSafeAreaInsetBottom=ne("bottom"),this.contentSafeAreaInsetLeft=ne("left"),this.contentSafeAreaInsetRight=ne("right");const or=y({isVBma:v,returns:"task"}),$e=y({isVBma:v,returns:"either"}),ar=y({isVBma:v,requires:"web_app_request_fullscreen",version:B,returns:"task"}),qe=$=>ar(J=>n.function.pipe(g($?"web_app_request_fullscreen":"web_app_exit_fullscreen",["fullscreen_changed","fullscreen_failed"],J),n.taskEither.chain(P=>P.event==="fullscreen_failed"&&P.payload.error!=="ALREADY_FULLSCREEN"?n.taskEither.left(new Le(P.payload.error)):(l.setState({isFullscreen:"is_fullscreen"in P.payload?P.payload.is_fullscreen:!0}),n.taskEither.right(void 0)))));this.isMounted=L.isMounted,this.mountFp=or(L.mount),this.mount=h(this.mountFp),this.isFullscreen=l.getter("isFullscreen"),this.requestFullscreenFp=qe(!0),this.requestFullscreen=h(this.requestFullscreenFp),this.exitFullscreenFp=qe(!1),this.exitFullscreen=h(this.exitFullscreenFp);const ie=_.signal(!1);this.isCssVarsBound=_.computed(ie),this.bindCssVarsFp=$e($=>{if(ie())return n.either.left(new oe);$||($=P=>`--vb-viewport-${A.camelToKebab(P)}`);const J=[["height",this.height],["stableHeight",this.stableHeight],["width",this.width],["safeAreaInsetTop",this.safeAreaInsetTop],["safeAreaInsetBottom",this.safeAreaInsetBottom],["safeAreaInsetLeft",this.safeAreaInsetLeft],["safeAreaInsetRight",this.safeAreaInsetRight],["contentSafeAreaInsetTop",this.contentSafeAreaInsetTop],["contentSafeAreaInsetBottom",this.contentSafeAreaInsetBottom],["contentSafeAreaInsetLeft",this.contentSafeAreaInsetLeft],["contentSafeAreaInsetRight",this.contentSafeAreaInsetRight]].reduce((P,[Q,K])=>{const D=$(Q);if(D){const Ie=()=>{ke(D,`${K()}px`)};P.push({update:Ie,removeListener:K.sub(Ie),cssVar:D})}return P},[]);return J.forEach(P=>{P.update()}),ie.set(!0),n.either.right(()=>{J.forEach(P=>{P.removeListener(),ve(P.cssVar)}),ie.set(!1)})}),this.bindCssVars=h(this.bindCssVarsFp),this.expandFp=$e(()=>f("web_app_expand")),this.expand=h(this.expandFp)}}function on(){const i=c=>({on:p=>{o.on(c,p)},off:p=>{o.off(c,p)}}),e=i("viewport_changed"),s=i("fullscreen_changed"),r=i("safe_area_changed"),a=i("content_safe_area_changed");return new Pt({...n.function.pipe(S(),z("viewport"),k,R,T),isFullscreen(){return n.function.pipe(o.retrieveLaunchParamsFp(),n.either.map(c=>!!c.vbWebAppFullscreen))},isViewportStable(){return n.function.pipe(o.retrieveLaunchParamsFp(),n.either.map(c=>["macos","tdesktop","unigram","webk","weba","web"].includes(c.vbWebAppPlatform)))},offContentSafeAreaInsetsChanged:a.off,offFullscreenChanged:s.off,offSafeAreaInsetsChanged:r.off,offViewportChanged:e.off,onContentSafeAreaInsetsChanged:a.on,onFullscreenChanged:s.on,onSafeAreaInsetsChanged:r.on,onViewportChanged:e.on})}const an=on();class At{constructor({request:e}){t(this,"requestAccessFp");t(this,"requestAccess");t(this,"selectFile");t(this,"selectFiles");t(this,"selectFolder");this.requestAccessFp=s=>n.function.pipe(e("web_app_request_storage_access","storage_access_granted",{params:{access_type:s.accessType,multiple:s.multiple,accept:s.accept,max_file_size:s.maxFileSize,read_content:s.readContent}}),n.taskEither.map(r=>({accessType:r.access_type,items:r.items.map(a=>({name:a.name,path:a.path,size:a.size,type:a.type,content:a.content,lastModified:a.last_modified}))}))),this.requestAccess=s=>this.requestAccessFp(s)().then(a=>{if(a._tag==="Left")throw a.left;return a.right}),this.selectFile=s=>this.requestAccess({accessType:"file",multiple:!1,...s}),this.selectFiles=s=>this.requestAccess({accessType:"file",multiple:!0,...s}),this.selectFolder=()=>this.requestAccess({accessType:"folder"})}}function cn(){return new At({request:o.request2Fp})}const un=cn();class Mt{onSetup(e){return o.getHostBridge().on("web_app_setup_back_button",r=>{r&&typeof r.is_visible=="boolean"&&e(r.is_visible)})}press(){o.getHostBridge().send("back_button_pressed")}}const pn=new Mt;class Rt{onSetup(e){return o.getHostBridge().on("web_app_setup_main_button",r=>{r&&e(r)})}press(){o.getHostBridge().send("main_button_pressed")}}const dn=new Rt;class xt{onSetup(e){return o.getHostBridge().on("web_app_setup_secondary_button",r=>{r&&e(r)})}press(){o.getHostBridge().send("secondary_button_pressed")}}const hn=new xt;class Tt{onSetup(e){return o.getHostBridge().on("web_app_setup_settings_button",r=>{r&&e(r)})}press(){o.getHostBridge().send("settings_button_pressed")}}const ln=new Tt;class Lt{onOpen(e){return o.getHostBridge().on("web_app_open_popup",r=>{r&&e(r)})}close(e){o.getHostBridge().send("popup_closed",{button_id:e})}}const gn=new Lt;class Vt{onExpand(e){return o.getHostBridge().on("web_app_expand",()=>{e()})}onRequestContentSafeArea(e){return o.getHostBridge().on("web_app_request_content_safe_area",()=>{e()})}onRequestSafeArea(e){return o.getHostBridge().on("web_app_request_safe_area",()=>{e()})}onRequestViewport(e){return o.getHostBridge().on("web_app_request_viewport",()=>{e()})}onToggleOrientationLock(e){return o.getHostBridge().on("web_app_toggle_orientation_lock",r=>{r&&typeof r.locked=="boolean"&&e(r.locked)})}onRequestFullscreen(e){return o.getHostBridge().on("web_app_request_fullscreen",()=>{e()})}setFullscreen(e){o.getHostBridge().send("fullscreen_changed",{is_fullscreen:e})}setFullscreenFailed(e){o.getHostBridge().send("fullscreen_failed",{error:e})}onExitFullscreen(e){return o.getHostBridge().on("web_app_exit_fullscreen",()=>{e()})}setContentSafeArea(e){o.getHostBridge().send("content_safe_area_changed",e)}setSafeArea(e){o.getHostBridge().send("safe_area_changed",e)}setViewport(e){o.getHostBridge().send("viewport_changed",e)}}const bn=new Vt;class Ot{onIframeReady(e){return o.getHostBridge().on("iframe_ready",r=>{e(r||{})})}onIframeWillReload(e){return o.getHostBridge().on("iframe_will_reload",()=>{e()})}onClose(e){return o.getHostBridge().on("web_app_close",()=>{e()})}onHideKeyboard(e){return o.getHostBridge().on("web_app_hide_keyboard",()=>{e()})}onReady(e){return o.getHostBridge().on("web_app_ready",()=>{e()})}onRequestTheme(e){return o.getHostBridge().on("web_app_request_theme",()=>{e()})}onBackgroundColorChange(e){return o.getHostBridge().on("web_app_set_background_color",r=>{r&&typeof r.color=="string"&&e(r.color)})}onBottomBarColorChange(e){return o.getHostBridge().on("web_app_set_bottom_bar_color",r=>{r&&r.color&&e(r.color)})}onHeaderColorChange(e){return o.getHostBridge().on("web_app_set_header_color",r=>{r&&("color_key"in r&&r.color_key?e(r.color_key):"color"in r&&r.color&&e(r.color))})}reloadIframe(){o.getHostBridge().send("reload_iframe")}setCustomStyle(e){o.getHostBridge().send("set_custom_style",e)}setVisibility(e){o.getHostBridge().send("visibility_changed",{is_visible:e})}}const fn=new Ot;class jt{onHapticFeedback(e){return o.getHostBridge().on("web_app_trigger_haptic_feedback",r=>{r&&e(r)})}}const _n=new jt;class Dt{onGetInfo(e){return o.getHostBridge().on("web_app_biometry_get_info",()=>{e()})}onOpenSettings(e){return o.getHostBridge().on("web_app_biometry_open_settings",()=>{e()})}onRequestAccess(e){return o.getHostBridge().on("web_app_biometry_request_access",r=>{e(r||{})})}onRequestAuth(e){return o.getHostBridge().on("web_app_biometry_request_auth",r=>{e(r||{})})}onUpdateToken(e){return o.getHostBridge().on("web_app_biometry_update_token",r=>{r&&e(r)})}setInfoReceived(e){o.getHostBridge().send("biometry_info_received",e)}setAuthRequested(e){o.getHostBridge().send("biometry_auth_requested",e)}setTokenUpdated(e){o.getHostBridge().send("biometry_token_updated",e)}}const mn=new Dt;class Gt{onOpenInvoice(e){return o.getHostBridge().on("web_app_open_invoice",r=>{r&&e(r)})}setInvoiceClosed(e){o.getHostBridge().send("invoice_closed",e)}}const wn=new Gt;class Ut{onOpenPopup(e){return o.getHostBridge().on("web_app_open_scan_qr_popup",r=>{e(r||{})})}onClosePopup(e){return o.getHostBridge().on("web_app_close_scan_qr_popup",()=>{e()})}sendQrTextReceived(e){o.getHostBridge().send("qr_text_received",e)}closePopup(){o.getHostBridge().send("scan_qr_popup_closed")}}const Fn=new Ut;class Wt{onCheckLocation(e){return o.getHostBridge().on("web_app_check_location",()=>{e()})}onOpenLocationSettings(e){return o.getHostBridge().on("web_app_open_location_settings",()=>{e()})}onRequestLocation(e){return o.getHostBridge().on("web_app_request_location",()=>{e()})}setLocationChecked(e){o.getHostBridge().send("location_checked",e)}setLocationRequested(e){o.getHostBridge().send("location_requested",e)}}const Sn=new Wt;class Qt{onOpenLink(e){return o.getHostBridge().on("web_app_open_link",r=>{r&&e(r)})}onOpenTgLink(e){return o.getHostBridge().on("web_app_open_vb_link",r=>{r&&e(r)})}}const Cn=new Qt;class Kt{onRequestAccess(e){return o.getHostBridge().on("web_app_request_emoji_status_access",()=>{e()})}onSetEmojiStatus(e){return o.getHostBridge().on("web_app_set_emoji_status",r=>{r&&e(r)})}setAccessRequested(e){o.getHostBridge().send("emoji_status_access_requested",e)}setEmojiStatusSet(e){o.getHostBridge().send("emoji_status_set",e)}setEmojiStatusFailed(e){o.getHostBridge().send("emoji_status_failed",e)}}const kn=new Kt;class Nt{onAddToHomeScreen(e){return o.getHostBridge().on("web_app_add_to_home_screen",()=>{e()})}onCheckHomeScreen(e){return o.getHostBridge().on("web_app_check_home_screen",()=>{e()})}setHomeScreenChecked(e){o.getHostBridge().send("home_screen_checked",e)}setHomeScreenAdded(){o.getHostBridge().send("home_screen_added")}setHomeScreenFailed(e){o.getHostBridge().send("home_screen_failed",e)}}const vn=new Nt;class zt{onRequestPhone(e){return o.getHostBridge().on("web_app_request_phone",()=>{e()})}onRequestWriteAccess(e){return o.getHostBridge().on("web_app_request_write_access",()=>{e()})}setPhoneRequested(e){o.getHostBridge().send("phone_requested",e)}setWriteAccessRequested(e){o.getHostBridge().send("write_access_requested",e)}}const Bn=new zt;class Jt{onSetupClosingBehavior(e){return o.getHostBridge().on("web_app_setup_closing_behavior",r=>{r&&e(r)})}}const En=new Jt;class Yt{onSetupSwipeBehavior(e){return o.getHostBridge().on("web_app_setup_swipe_behavior",r=>{r&&e(r)})}}const yn=new Yt;class Zt{onReadText(e){return o.getHostBridge().on("web_app_read_text_from_clipboard",r=>{r&&e(r)})}sendTextReceived(e){o.getHostBridge().send("clipboard_text_received",e)}}const $n=new Zt;class Xt{onRequestFileDownload(e){return o.getHostBridge().on("web_app_request_file_download",r=>{e(r||{})})}setFileDownloadRequested(e){o.getHostBridge().send("file_download_requested",e)}}const qn=new Xt;class er{onSendPreparedMessage(e){return o.getHostBridge().on("web_app_send_prepared_message",r=>{r&&e(r)})}onShareToStory(e){return o.getHostBridge().on("web_app_share_to_story",r=>{e(r||{})})}setPreparedMessageFailed(e){o.getHostBridge().send("prepared_message_failed",e)}setPreparedMessageSent(){o.getHostBridge().send("prepared_message_sent")}}const In=new er;class tr{onDataSend(e){return o.getHostBridge().on("web_app_data_send",r=>{r&&e(r)})}onSwitchInlineQuery(e){return o.getHostBridge().on("web_app_switch_inline_query",r=>{r&&e(r)})}}const Hn=new tr;class rr{onInvokeCustomMethod(e){return o.getHostBridge().on("web_app_invoke_custom_method",r=>{r&&e(r)})}setCustomMethodInvoked(e){o.getHostBridge().send("custom_method_invoked",e)}}const Pn=new rr;class sr{onSend(e){return o.getHostBridge().on("web_app_send_notification",r=>{r&&e(r)})}}const An=new sr;class nr{setTheme(e){o.getHostBridge().send("theme_changed",{theme_params:e})}onRequestTheme(e){return o.getHostBridge().on("web_app_request_theme",()=>{e()})}}const Mn=new nr;function ir(i={}){const{version:e,isInlineMode:s,themeParams:r}=i;if(e&&typeof s=="boolean"&&r)ge.set(e),fe.set(s),be.set(r);else{const u=n.function.pipe(o.retrieveLaunchParamsFp(),n.either.matchW(d=>d,d=>{ge.set(e||d.vbWebAppVersion||(d.vbWebAppPlatform==="web"?o.LATEST_VERSION:"0.0")),fe.set(typeof s=="boolean"?s:!!d.vbWebAppBotInline),be.set(r||d.vbWebAppThemeParams)}));if(u)return n.either.left(u)}i.postEvent&&De.set(i.postEvent);const[a,c]=A.createCbCollector(o.on("reload_iframe",()=>{o.logger().log("Received a request to reload the page"),Ge("iframe_will_reload"),window.location.reload()})),{acceptCustomStyles:p=!0}=i;if(p){const u=document.createElement("style");u.id="vbot-custom-styles",document.head.appendChild(u),a(o.on("set_custom_style",d=>{u.innerHTML=d}),()=>{document.head.removeChild(u)})}return n.function.pipe(Z("iframe_ready",{reload_supported:!0}),n.either.map(()=>(o.logger().log("The package was initialized"),c)))}const Rn=A.throwifyFpFn(ir);Object.defineProperty(exports,"CancelledError",{enumerable:!0,get:()=>o.CancelledError});Object.defineProperty(exports,"InvalidLaunchParamsError",{enumerable:!0,get:()=>o.InvalidLaunchParamsError});Object.defineProperty(exports,"InvokeCustomMethodFailedError",{enumerable:!0,get:()=>o.InvokeCustomMethodFailedError});Object.defineProperty(exports,"LaunchParamsRetrieveError",{enumerable:!0,get:()=>o.LaunchParamsRetrieveError});Object.defineProperty(exports,"MethodParameterUnsupportedError",{enumerable:!0,get:()=>o.MethodParameterUnsupportedError});Object.defineProperty(exports,"MethodUnsupportedError",{enumerable:!0,get:()=>o.MethodUnsupportedError});Object.defineProperty(exports,"TimeoutError",{enumerable:!0,get:()=>o.TimeoutError});Object.defineProperty(exports,"UnknownEnvError",{enumerable:!0,get:()=>o.UnknownEnvError});Object.defineProperty(exports,"applyPolyfills",{enumerable:!0,get:()=>o.applyPolyfills});Object.defineProperty(exports,"createLogger",{enumerable:!0,get:()=>o.createLogger});Object.defineProperty(exports,"createPostEvent",{enumerable:!0,get:()=>o.createPostEvent});Object.defineProperty(exports,"createStartParam",{enumerable:!0,get:()=>o.createStartParam});Object.defineProperty(exports,"createStartParamFp",{enumerable:!0,get:()=>o.createStartParamFp});Object.defineProperty(exports,"debug",{enumerable:!0,get:()=>o.debug});Object.defineProperty(exports,"decodeBase64Url",{enumerable:!0,get:()=>o.decodeBase64Url});Object.defineProperty(exports,"decodeBase64UrlFp",{enumerable:!0,get:()=>o.decodeBase64UrlFp});Object.defineProperty(exports,"decodeStartParam",{enumerable:!0,get:()=>o.decodeStartParam});Object.defineProperty(exports,"decodeStartParamFp",{enumerable:!0,get:()=>o.decodeStartParamFp});Object.defineProperty(exports,"deepSnakeToCamelObjKeys",{enumerable:!0,get:()=>o.deepSnakeToCamelObjKeys});Object.defineProperty(exports,"defineHostBridge",{enumerable:!0,get:()=>o.defineHostBridge});Object.defineProperty(exports,"defineWebComponentBridge",{enumerable:!0,get:()=>o.defineWebComponentBridge});Object.defineProperty(exports,"emitEvent",{enumerable:!0,get:()=>o.emitEvent});Object.defineProperty(exports,"encodeBase64Url",{enumerable:!0,get:()=>o.encodeBase64Url});Object.defineProperty(exports,"getHostBridge",{enumerable:!0,get:()=>o.getHostBridge});Object.defineProperty(exports,"getReleaseVersion",{enumerable:!0,get:()=>o.getReleaseVersion});Object.defineProperty(exports,"isSafeToCreateStartParam",{enumerable:!0,get:()=>o.isSafeToCreateStartParam});Object.defineProperty(exports,"isVBma",{enumerable:!0,get:()=>o.isVBma});Object.defineProperty(exports,"isVBmaFp",{enumerable:!0,get:()=>o.isVBmaFp});Object.defineProperty(exports,"logger",{enumerable:!0,get:()=>o.logger});Object.defineProperty(exports,"mockVBotEnv",{enumerable:!0,get:()=>o.mockVBotEnv});Object.defineProperty(exports,"off",{enumerable:!0,get:()=>o.off});Object.defineProperty(exports,"offAll",{enumerable:!0,get:()=>o.offAll});Object.defineProperty(exports,"on",{enumerable:!0,get:()=>o.on});Object.defineProperty(exports,"retrieveLaunchParams",{enumerable:!0,get:()=>o.retrieveLaunchParams});Object.defineProperty(exports,"retrieveLaunchParamsFp",{enumerable:!0,get:()=>o.retrieveLaunchParamsFp});Object.defineProperty(exports,"retrieveRawInitData",{enumerable:!0,get:()=>o.retrieveRawInitData});Object.defineProperty(exports,"retrieveRawInitDataFp",{enumerable:!0,get:()=>o.retrieveRawInitDataFp});Object.defineProperty(exports,"retrieveRawLaunchParams",{enumerable:!0,get:()=>o.retrieveRawLaunchParams});Object.defineProperty(exports,"retrieveRawLaunchParamsFp",{enumerable:!0,get:()=>o.retrieveRawLaunchParamsFp});Object.defineProperty(exports,"setDebug",{enumerable:!0,get:()=>o.setDebug});Object.defineProperty(exports,"setLaunchParams",{enumerable:!0,get:()=>o.setLaunchParams});Object.defineProperty(exports,"setTargetOrigin",{enumerable:!0,get:()=>o.setTargetOrigin});Object.defineProperty(exports,"supports",{enumerable:!0,get:()=>o.supports});Object.defineProperty(exports,"targetOrigin",{enumerable:!0,get:()=>o.targetOrigin});Object.defineProperty(exports,"isAnyRGB",{enumerable:!0,get:()=>I.isAnyRGB});Object.defineProperty(exports,"isRGB",{enumerable:!0,get:()=>I.isRGB});Object.defineProperty(exports,"isRGBA",{enumerable:!0,get:()=>I.isRGBA});Object.defineProperty(exports,"isRGBAShort",{enumerable:!0,get:()=>I.isRGBAShort});Object.defineProperty(exports,"isRGBShort",{enumerable:!0,get:()=>I.isRGBShort});Object.defineProperty(exports,"parseInitDataQuery",{enumerable:!0,get:()=>I.parseInitDataQuery});Object.defineProperty(exports,"parseInitDataQueryFp",{enumerable:!0,get:()=>I.parseInitDataQueryFp});Object.defineProperty(exports,"parseLaunchParamsQuery",{enumerable:!0,get:()=>I.parseLaunchParamsQuery});Object.defineProperty(exports,"parseLaunchParamsQueryFp",{enumerable:!0,get:()=>I.parseLaunchParamsQueryFp});Object.defineProperty(exports,"serializeInitDataQuery",{enumerable:!0,get:()=>I.serializeInitDataQuery});Object.defineProperty(exports,"serializeLaunchParamsQuery",{enumerable:!0,get:()=>I.serializeLaunchParamsQuery});Object.defineProperty(exports,"toRGB",{enumerable:!0,get:()=>I.toRGB});Object.defineProperty(exports,"toRGBFp",{enumerable:!0,get:()=>I.toRGBFp});Object.defineProperty(exports,"toRGBFull",{enumerable:!0,get:()=>I.toRGBFull});Object.defineProperty(exports,"toRGBFullFp",{enumerable:!0,get:()=>I.toRGBFullFp});exports.AccessDeniedError=_e;exports.BackButton=je;exports.Biometry=Ue;exports.CSSVarsBoundError=oe;exports.ClosingBehavior=Qe;exports.CloudStorage=Ke;exports.ConcurrentCallError=ae;exports.DeviceStorage=ze;exports.DeviceStorageMethodError=Ae;exports.FullscreenFailedError=Le;exports.FunctionUnavailableError=xe;exports.HapticFeedback=Xe;exports.HostBackButton=Mt;exports.HostBiometry=Dt;exports.HostChat=tr;exports.HostClipboard=Zt;exports.HostClosingBehavior=Jt;exports.HostCustomMethod=rr;exports.HostEmojiStatus=Kt;exports.HostFiles=Xt;exports.HostHapticFeedback=jt;exports.HostHomeScreen=Nt;exports.HostInvoice=Gt;exports.HostLink=Qt;exports.HostLocationManager=Wt;exports.HostMainButton=Rt;exports.HostMiniApp=Ot;exports.HostNotification=sr;exports.HostPopup=Lt;exports.HostPrivacy=zt;exports.HostQrScanner=Ut;exports.HostSecondaryButton=xt;exports.HostSettingsButton=Tt;exports.HostSharing=er;exports.HostSwipeBehavior=Yt;exports.HostThemeParams=nr;exports.HostViewport=Vt;exports.InitData=rt;exports.InvalidArgumentsError=G;exports.InvalidEnvError=pr;exports.Invoice=st;exports.LocationManager=ot;exports.MainButton=at;exports.MiniApp=dt;exports.NotAvailableError=Re;exports.Notification=lt;exports.Popup=gt;exports.QrScanner=_t;exports.Refresh=mt;exports.SecondaryButton=wt;exports.SecureStorage=Ft;exports.SecureStorageMethodError=Me;exports.SetEmojiStatusError=Te;exports.SettingsButton=St;exports.ShareMessageError=Ve;exports.StoragePermission=At;exports.SwipeBehavior=Ct;exports.ThemeParams=ut;exports.UnknownThemeParamsKeyError=Oe;exports.ValidationError=ee;exports.Viewport=Pt;exports.addToHomeScreen=Rr;exports.addToHomeScreenFp=et;exports.backButton=gr;exports.biometry=mr;exports.checkHomeScreenStatus=Lr;exports.checkHomeScreenStatusFp=tt;exports.closingBehavior=Fr;exports.cloudStorage=Cr;exports.copyTextToClipboard=As;exports.createRequestId=ue;exports.deviceStorage=vr;exports.downloadFile=xs;exports.downloadFileFp=kt;exports.getCurrentTime=Vs;exports.getCurrentTimeFp=vt;exports.hapticFeedback=Pr;exports.hideKeyboard=Ds;exports.hideKeyboardFp=Bt;exports.hostBackButton=pn;exports.hostBiometry=mn;exports.hostChat=Hn;exports.hostClipboard=$n;exports.hostClosingBehavior=En;exports.hostCustomMethod=Pn;exports.hostEmojiStatus=kn;exports.hostFiles=qn;exports.hostHapticFeedback=_n;exports.hostHomeScreen=vn;exports.hostInvoice=wn;exports.hostLink=Cn;exports.hostLocationManager=Sn;exports.hostMainButton=dn;exports.hostMiniApp=fn;exports.hostNotification=An;exports.hostPopup=gn;exports.hostPrivacy=Bn;exports.hostQrScanner=Fn;exports.hostSecondaryButton=hn;exports.hostSettingsButton=ln;exports.hostSharing=In;exports.hostSwipeBehavior=yn;exports.hostThemeParams=Mn;exports.hostViewport=bn;exports.init=Rn;exports.initData=Or;exports.initFp=ir;exports.invoice=Dr;exports.invokeCustomMethod=Ne;exports.isColorDark=Be;exports.isColorDarkFp=ct;exports.locationManager=es;exports.mainButton=rs;exports.miniApp=ht;exports.notification=os;exports.openLink=Wr;exports.openLinkFp=nt;exports.openVBotLink=Nr;exports.openVBotLinkFp=Ce;exports.popup=us;exports.postEvent=Ge;exports.postEventFp=Z;exports.qrScanner=ks;exports.readTextFromClipboard=Ws;exports.readTextFromClipboardFp=Et;exports.refresh=Bs;exports.request=br;exports.request2=fr;exports.request2Fp=Fe;exports.requestContact=ms;exports.requestContactComplete=_s;exports.requestContactCompleteFp=ye;exports.requestContactFp=bt;exports.requestEmojiStatusAccess=yr;exports.requestEmojiStatusAccessFp=Ye;exports.requestFp=We;exports.requestPhoneAccess=hs;exports.requestPhoneAccessFp=Ee;exports.requestWriteAccess=Ss;exports.requestWriteAccessFp=ft;exports.retrieveAndroidDeviceData=Qs;exports.retrieveAndroidDeviceDataFrom=yt;exports.secondaryButton=ys;exports.secureStorage=qs;exports.sendData=zs;exports.sendDataFp=$t;exports.setEmojiStatus=Ir;exports.setEmojiStatusFp=Ze;exports.settingsButton=Is;exports.shareMessage=Zs;exports.shareMessageFp=qt;exports.shareStory=tn;exports.shareStoryFp=It;exports.shareURL=Yr;exports.shareURLFp=it;exports.storagePermission=un;exports.swipeBehavior=Ps;exports.switchInlineQuery=nn;exports.switchInlineQueryFp=Ht;exports.themeParams=te;exports.viewport=an;
2
2
  //# sourceMappingURL=index.cjs.map