UNPKG

@telegram-apps/bridge

Version:

TypeScript package to provide communication layer between Mini App and Telegram application.

5 lines (4 loc) 30.7 kB
this.tapps=this.tapps||{};this.tapps.bridge=function(l){"use strict";function z(t){return btoa(encodeURIComponent(t).replace(/%([0-9A-F]{2})/g,(e,r)=>String.fromCharCode(parseInt(`0x${r}`)))).replace(/\+/g,"-").replace(/\//g,"_")}function Ee(t){return decodeURIComponent(atob(t).replace(/-/g,"+").replace(/_/g,"/").split("").map(e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)).join(""))}var k;function ke(t){return{lang:(t==null?void 0:t.lang)??(k==null?void 0:k.lang),message:t==null?void 0:t.message,abortEarly:(t==null?void 0:t.abortEarly)??(k==null?void 0:k.abortEarly),abortPipeEarly:(t==null?void 0:t.abortPipeEarly)??(k==null?void 0:k.abortPipeEarly)}}var B;function St(t){return B==null?void 0:B.get(t)}var G;function jt(t){return G==null?void 0:G.get(t)}var F;function At(t,e){var r;return(r=F==null?void 0:F.get(t))==null?void 0:r.get(e)}function Mt(t){var r,n;const e=typeof t;return e==="string"?`"${t}"`:e==="number"||e==="bigint"||e==="boolean"?`${t}`:e==="object"||e==="function"?(t&&((n=(r=Object.getPrototypeOf(t))==null?void 0:r.constructor)==null?void 0:n.name))??"null":e}function T(t,e,r,n,s){const o=s&&"input"in s?s.input:r.value,a=(s==null?void 0:s.expected)??t.expects??null,u=(s==null?void 0:s.received)??Mt(o),i={kind:t.kind,type:t.type,input:o,expected:a,received:u,message:`Invalid ${e}: ${a?`Expected ${a} but r`:"R"}eceived ${u}`,requirement:t.requirement,path:s==null?void 0:s.path,issues:s==null?void 0:s.issues,lang:n.lang,abortEarly:n.abortEarly,abortPipeEarly:n.abortPipeEarly},c=t.kind==="schema",p=(s==null?void 0:s.message)??t.message??At(t.reference,i.lang)??(c?jt(i.lang):null)??n.message??St(i.lang);p!==void 0&&(i.message=typeof p=="function"?p(i):p),c&&(r.typed=!1),r.issues?r.issues.push(i):r.issues=[i]}function E(t){return{version:1,vendor:"valibot",validate(e){return t["~run"]({value:e},ke())}}}function Tt(t,e){return Object.hasOwn(t,e)&&e!=="__proto__"&&e!=="prototype"&&e!=="constructor"}var It=class extends Error{constructor(t){super(t[0].message),this.name="ValiError",this.issues=t}};function qt(t,e,r){return typeof t.fallback=="function"?t.fallback(e,r):t.fallback}function K(t,e,r){return typeof t.default=="function"?t.default(e,r):t.default}function W(t,e){return!t["~run"]({value:e},{abortEarly:!0}).issues}function Pe(){return{kind:"schema",type:"any",reference:Pe,expects:"any",async:!1,get"~standard"(){return E(this)},"~run"(t){return t.typed=!0,t}}}function Y(t){return{kind:"schema",type:"boolean",reference:Y,expects:"boolean",async:!1,message:t,get"~standard"(){return E(this)},"~run"(e,r){return typeof e.value=="boolean"?e.typed=!0:T(this,"type",e,r),e}}}function H(t){return{kind:"schema",type:"function",reference:H,expects:"Function",async:!1,message:t,get"~standard"(){return E(this)},"~run"(e,r){return typeof e.value=="function"?e.typed=!0:T(this,"type",e,r),e}}}function w(t,e){return{kind:"schema",type:"loose_object",reference:w,expects:"Object",async:!1,entries:t,message:e,get"~standard"(){return E(this)},"~run"(r,n){var o;const s=r.value;if(s&&typeof s=="object"){r.typed=!0,r.value={};for(const a in this.entries){const u=this.entries[a];if(a in s||(u.type==="exact_optional"||u.type==="optional"||u.type==="nullish")&&u.default!==void 0){const i=a in s?s[a]:K(u),c=u["~run"]({value:i},n);if(c.issues){const p={type:"object",origin:"value",input:s,key:a,value:i};for(const f of c.issues)f.path?f.path.unshift(p):f.path=[p],(o=r.issues)==null||o.push(f);if(r.issues||(r.issues=c.issues),n.abortEarly){r.typed=!1;break}}c.typed||(r.typed=!1),r.value[a]=c.value}else if(u.fallback!==void 0)r.value[a]=qt(u);else if(u.type!=="exact_optional"&&u.type!=="optional"&&u.type!=="nullish"&&(T(this,"key",r,n,{input:void 0,expected:`"${a}"`,path:[{type:"object",origin:"key",input:s,key:a,value:s[a]}]}),n.abortEarly))break}if(!r.issues||!n.abortEarly)for(const a in s)Tt(s,a)&&!(a in this.entries)&&(r.value[a]=s[a])}else T(this,"type",r,n);return r}}}function C(t,e){return{kind:"schema",type:"nullish",reference:C,expects:`(${t.expects} | null | undefined)`,async:!1,wrapped:t,default:e,get"~standard"(){return E(this)},"~run"(r,n){return(r.value===null||r.value===void 0)&&(this.default!==void 0&&(r.value=K(this,r,n)),r.value===null||r.value===void 0)?(r.typed=!0,r):this.wrapped["~run"](r,n)}}}function Q(t){return{kind:"schema",type:"number",reference:Q,expects:"number",async:!1,message:t,get"~standard"(){return E(this)},"~run"(e,r){return typeof e.value=="number"&&!isNaN(e.value)?e.typed=!0:T(this,"type",e,r),e}}}function Z(t,e){return{kind:"schema",type:"optional",reference:Z,expects:`(${t.expects} | undefined)`,async:!1,wrapped:t,default:e,get"~standard"(){return E(this)},"~run"(r,n){return r.value===void 0&&(this.default!==void 0&&(r.value=K(this,r,n)),r.value===void 0)?(r.typed=!0,r):this.wrapped["~run"](r,n)}}}function $(t){return{kind:"schema",type:"string",reference:$,expects:"string",async:!1,message:t,get"~standard"(){return E(this)},"~run"(e,r){return typeof e.value=="string"?e.typed=!0:T(this,"type",e,r),e}}}function $e(){return{kind:"schema",type:"unknown",reference:$e,expects:"unknown",async:!1,get"~standard"(){return E(this)},"~run"(t){return t.typed=!0,t}}}function X(t,e,r){const n=t["~run"]({value:e},ke(r));if(n.issues)throw new It(n.issues);return n.value}function Se(...t){return{...t[0],pipe:t,get"~standard"(){return E(this)},"~run"(e,r){for(const n of t)if(n.kind!=="metadata"){if(e.issues&&(n.kind==="schema"||n.kind==="transformation")){e.typed=!1;break}(!e.issues||!r.abortEarly&&!r.abortPipeEarly)&&(e=n["~run"](e,r))}return e}}}function V(t){return W(w({TelegramWebviewProxy:w({postEvent:H()})}),t)}function ee(){try{return window.self!==window.top}catch{return!0}}var Lt=Object.defineProperty,Rt=(t,e,r)=>e in t?Lt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,te=(t,e,r)=>Rt(t,typeof e!="symbol"?e+"":e,r),Ut=Object.defineProperty,Ct=(t,e,r)=>e in t?Ut(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ot=(t,e,r)=>Ct(t,e+"",r);function Wt(t,e){return r=>r instanceof t&&r.type===e}function je(t,e){e||(e=[]);const r=Symbol(t);class n extends Error{constructor(...o){const a=typeof e=="function"?e(...o):typeof e=="string"?[e]:e||[];super(...a),Ot(this,"type",r),this.name=t}}return Object.defineProperty(n,"name",{value:t}),[n,Wt(n,r)]}const[Ae,Dt]=je("CancelledError","Promise was canceled"),[Me,Nt]=je("TimeoutError",(t,e)=>[`Timeout reached: ${t}ms`,{cause:e}]),Te=Symbol("Resolved");function Ie(t){return Array.isArray(t)&&t[0]===Te}function xt(t){return[Te,t]}function qe(t,e){return t.reject=e.reject,t.abort=e.abort,t}class M extends Promise{constructor(e,r){let n,s;super((o,a)=>{let u,i;typeof e=="function"?(u=e,i=r):i=e;const c=[],p=y=>(...U)=>{const J=y(...U);return c.forEach(Dr=>Dr()),J},f=new AbortController,{signal:b}=f;s=y=>{!b.aborted&&f.abort(y)};const _=()=>b.reason,A=y=>{const U=()=>{y(_())};b.addEventListener("abort",U,!0);const J=()=>{b.removeEventListener("abort",U,!0)};return c.push(J),J},Wr=p(y=>{o(y),s(xt(y))});n=p(y=>{a(y),s(y)}),i||(i={});const{abortSignal:R,rejectOnAbort:Et=!0}=i;if(R)if(R.aborted){const{reason:y}=R;if(Et)return n(y);s(y)}else{const y=()=>{s(R.reason)};R.addEventListener("abort",y),c.push(()=>{R.removeEventListener("abort",y)})}Et&&A(a);const{timeout:ve}=i;if(ve){const y=setTimeout(()=>{s(new Me(ve))},ve);c.push(()=>{clearTimeout(y)})}const kt=()=>b.aborted,Pt=()=>Ie(_()),$t=()=>{const y=_();return Ie(y)?y[1]:void 0};try{const y=u&&u(Wr,n,{abortReason:_,abortSignal:b,isAborted:kt,isResolved:Pt,onAborted:A,onResolved:U=>A(()=>{Pt()&&U($t())}),resolved:$t,throwIfAborted(){if(kt())throw _()}});y instanceof Promise&&y.catch(n)}catch(y){n(y)}}),te(this,"abort"),te(this,"reject"),this.abort=s,this.reject=n}static fn(e,r){return new M(async(n,s,o)=>{try{n(await e(o))}catch(a){s(a)}},r)}static resolve(e){return this.fn(()=>e)}static reject(e){return new M((r,n)=>{n(e)})}cancel(){this.abort(new Ae)}catch(e){return this.then(void 0,e)}finally(e){return qe(super.finally(e),this)}then(e,r){return qe(super.then(e,r),this)}}function Le(t,e){return t.resolve=e.resolve,t}let Jt=class we extends M{constructor(e,r){let n,s;typeof e=="function"?(n=e,s=r):s=e;let o;super((a,u,i)=>{o=a,n&&n(a,u,i)},s),te(this,"resolve"),this.resolve=o}static fn(e,r){return new we((n,s,o)=>{try{Promise.resolve(e(o)).then(n,s)}catch(a){s(a)}},r)}static resolve(e){return this.fn(()=>e)}static reject(e){return new we((r,n)=>{n(e)})}catch(e){return this.then(void 0,e)}finally(e){return Le(super.finally(e),this)}then(e,r){return Le(super.then(e,r),this)}};function zt(t){return t.replace(/_[a-z]/g,e=>e[1].toUpperCase())}function Bt(t){return Object.entries(t).reduce((e,[r,n])=>(e[zt(r)]=n,e),{})}function re(t){const e=Bt(t);for(const r in e){const n=e[r];n&&typeof n=="object"&&!(n instanceof Date)&&(e[r]=Array.isArray(n)?n.map(re):re(n))}return e}function Re(t){return`tapps/${t}`}function Ue(t,e){sessionStorage.setItem(Re(t),JSON.stringify(e))}function Gt(t){const e=sessionStorage.getItem(Re(t));try{return e?JSON.parse(e):void 0}catch{}}function Ft(...t){const e=t.flat(1);return[e.push.bind(e),()=>{e.forEach(r=>{r()})}]}function Ce(t,e){e||(e={});const{textColor:r,bgColor:n,shouldLog:s}=e,o=s===void 0?!0:s,a=typeof o=="boolean"?()=>o:o,u=(i,c,...p)=>{if(c||a()){const f="font-weight:bold;padding:0 5px;border-radius:100px",[b,_,A]={log:["#0089c3","white","INFO"],error:["#ff0000F0","white","ERR"],warn:["#D38E15","white","WARN"]}[i];console[i](`%c${A} ${Intl.DateTimeFormat("en-GB",{hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3,timeZone:"UTC"}).format(new Date)}%c %c${t}`,`${f};background-color:${b};color:${_}`,"",`${f};${r?`color:${r};`:""}${n?`background-color:${n}`:""}`,...p)}};return[["log","forceLog"],["warn","forceWarn"],["error","forceError"]].reduce((i,[c,p])=>(i[c]=u.bind(void 0,c,!1),i[p]=u.bind(void 0,c,!0),i),{})}function Oe(t){return{lang:(t==null?void 0:t.lang)??void 0,message:t==null?void 0:t.message,abortEarly:(t==null?void 0:t.abortEarly)??void 0,abortPipeEarly:(t==null?void 0:t.abortPipeEarly)??void 0}}function Nr(t){}function xr(t){}function Kt(t,e){var r;return(r=void 0)==null?void 0:r.get(e)}function Yt(t){var e,r;const n=typeof t;return n==="string"?`"${t}"`:n==="number"||n==="bigint"||n==="boolean"?`${t}`:n==="object"||n==="function"?(t&&((r=(e=Object.getPrototypeOf(t))==null?void 0:e.constructor)==null?void 0:r.name))??"null":n}function g(t,e,r,n,s){const o=s&&"input"in s?s.input:r.value,a=(s==null?void 0:s.expected)??t.expects??null,u=(s==null?void 0:s.received)??Yt(o),i={kind:t.kind,type:t.type,input:o,expected:a,received:u,message:`Invalid ${e}: ${a?`Expected ${a} but r`:"R"}eceived ${u}`,requirement:t.requirement,path:s==null?void 0:s.path,issues:s==null?void 0:s.issues,lang:n.lang,abortEarly:n.abortEarly,abortPipeEarly:n.abortPipeEarly},c=t.kind==="schema",p=(s==null?void 0:s.message)??t.message??Kt(t.reference,i.lang)??(c?(i.lang,void 0):null)??n.message??(i.lang,void 0);p&&(i.message=typeof p=="function"?p(i):p),c&&(r.typed=!1),r.issues?r.issues.push(i):r.issues=[i]}function v(t){return{version:1,vendor:"valibot",validate(e){return t["~run"]({value:e},Oe())}}}function We(t,e){return Object.hasOwn(t,e)&&e!=="__proto__"&&e!=="prototype"&&e!=="constructor"}function Ht(t,e){const r=[...new Set(t)];return r.length>1?`(${r.join(` ${e} `)})`:r[0]??"never"}var Qt=class extends Error{constructor(t){super(t[0].message),this.name="ValiError",this.issues=t}};function De(t,e){return{kind:"validation",type:"check",reference:De,async:!1,expects:null,requirement:t,message:e,"~run"(r,n){return r.typed&&!this.requirement(r.value)&&g(this,"input",r,n),r}}}function Ne(t){return{kind:"validation",type:"integer",reference:Ne,async:!1,expects:null,requirement:Number.isInteger,message:t,"~run"(e,r){return e.typed&&!this.requirement(e.value)&&g(this,"integer",e,r),e}}}function S(t){return{kind:"transformation",type:"transform",reference:S,async:!1,operation:t,"~run"(e){return e.value=this.operation(e.value),e}}}function xe(t,e,r){return typeof t.default=="function"?t.default(e,r):t.default}function Zt(t,e){return!t["~run"]({value:e},{abortEarly:!0}).issues}function O(t){return{kind:"schema",type:"boolean",reference:O,expects:"boolean",async:!1,message:t,get"~standard"(){return v(this)},"~run"(e,r){return typeof e.value=="boolean"?e.typed=!0:g(this,"type",e,r),e}}}function Je(t){return{kind:"schema",type:"date",reference:Je,expects:"Date",async:!1,message:t,get"~standard"(){return v(this)},"~run"(e,r){return e.value instanceof Date?isNaN(e.value)?g(this,"type",e,r,{received:'"Invalid Date"'}):e.typed=!0:g(this,"type",e,r),e}}}function ze(t,e){return{kind:"schema",type:"instance",reference:ze,expects:t.name,async:!1,class:t,message:e,get"~standard"(){return v(this)},"~run"(r,n){return r.value instanceof this.class?r.typed=!0:g(this,"type",r,n),r}}}function ne(t){return{kind:"schema",type:"lazy",reference:ne,expects:"unknown",async:!1,getter:t,get"~standard"(){return v(this)},"~run"(e,r){return this.getter(e.value)["~run"](e,r)}}}function I(t,e){return{kind:"schema",type:"loose_object",reference:I,expects:"Object",async:!1,entries:t,message:e,get"~standard"(){return v(this)},"~run"(r,n){var s;const o=r.value;if(o&&typeof o=="object"){r.typed=!0,r.value={};for(const a in this.entries){const u=this.entries[a];if(a in o||(u.type==="exact_optional"||u.type==="optional"||u.type==="nullish")&&u.default!==void 0){const i=a in o?o[a]:xe(u),c=u["~run"]({value:i},n);if(c.issues){const p={type:"object",origin:"value",input:o,key:a,value:i};for(const f of c.issues)f.path?f.path.unshift(p):f.path=[p],(s=r.issues)==null||s.push(f);if(r.issues||(r.issues=c.issues),n.abortEarly){r.typed=!1;break}}c.typed||(r.typed=!1),r.value[a]=c.value}else if(u.type!=="exact_optional"&&u.type!=="optional"&&u.type!=="nullish"&&(g(this,"key",r,n,{input:void 0,expected:`"${a}"`,path:[{type:"object",origin:"key",input:o,key:a,value:o[a]}]}),n.abortEarly))break}if(!r.issues||!n.abortEarly)for(const a in o)We(o,a)&&!(a in this.entries)&&(r.value[a]=o[a])}else g(this,"type",r,n);return r}}}function D(t){return{kind:"schema",type:"number",reference:D,expects:"number",async:!1,message:t,get"~standard"(){return v(this)},"~run"(e,r){return typeof e.value=="number"&&!isNaN(e.value)?e.typed=!0:g(this,"type",e,r),e}}}function h(t,e){return{kind:"schema",type:"optional",reference:h,expects:`(${t.expects} | undefined)`,async:!1,wrapped:t,default:e,get"~standard"(){return v(this)},"~run"(r,n){return r.value===void 0&&(this.default!==void 0&&(r.value=xe(this,r,n)),r.value===void 0)?(r.typed=!0,r):this.wrapped["~run"](r,n)}}}function Be(t,e,r){return{kind:"schema",type:"record",reference:Be,expects:"Object",async:!1,key:t,value:e,message:r,get"~standard"(){return v(this)},"~run"(n,s){var o,a;const u=n.value;if(u&&typeof u=="object"){n.typed=!0,n.value={};for(const i in u)if(We(u,i)){const c=u[i],p=this.key["~run"]({value:i},s);if(p.issues){const b={type:"object",origin:"key",input:u,key:i,value:c};for(const _ of p.issues)_.path=[b],(o=n.issues)==null||o.push(_);if(n.issues||(n.issues=p.issues),s.abortEarly){n.typed=!1;break}}const f=this.value["~run"]({value:c},s);if(f.issues){const b={type:"object",origin:"value",input:u,key:i,value:c};for(const _ of f.issues)_.path?_.path.unshift(b):_.path=[b],(a=n.issues)==null||a.push(_);if(n.issues||(n.issues=f.issues),s.abortEarly){n.typed=!1;break}}(!p.typed||!f.typed)&&(n.typed=!1),p.typed&&(n.value[p.value]=f.value)}}else g(this,"type",n,s);return n}}}function d(t){return{kind:"schema",type:"string",reference:d,expects:"string",async:!1,message:t,get"~standard"(){return v(this)},"~run"(e,r){return typeof e.value=="string"?e.typed=!0:g(this,"type",e,r),e}}}function Ge(t){let e;if(t)for(const r of t)e?e.push(...r.issues):e=r.issues;return e}function se(t,e){return{kind:"schema",type:"union",reference:se,expects:Ht(t.map(r=>r.expects),"|"),async:!1,options:t,message:e,get"~standard"(){return v(this)},"~run"(r,n){let s,o,a;for(const u of this.options){const i=u["~run"]({value:r.value},n);if(i.typed)if(i.issues)o?o.push(i):o=[i];else{s=i;break}else a?a.push(i):a=[i]}if(s)return s;if(o){if(o.length===1)return o[0];g(this,"type",r,n,{issues:Ge(o)}),r.typed=!0}else{if((a==null?void 0:a.length)===1)return a[0];g(this,"type",r,n,{issues:Ge(a)})}return r}}}function Fe(){return{kind:"schema",type:"unknown",reference:Fe,expects:"unknown",async:!1,get"~standard"(){return v(this)},"~run"(t){return t.typed=!0,t}}}function Ke(t,e,r){const n=t["~run"]({value:e},Oe(r));if(n.issues)throw new Qt(n.issues);return n.value}function j(...t){return{...t[0],pipe:t,get"~standard"(){return v(this)},"~run"(e,r){for(const n of t)if(n.kind!=="metadata"){if(e.issues&&(n.kind==="schema"||n.kind==="transformation")){e.typed=!1;break}(!e.issues||!r.abortEarly&&!r.abortPipeEarly)&&(e=n["~run"](e,r))}return e}}}function Xt(t){return t.replace(/_[a-z]/g,e=>e[1].toUpperCase())}function Vt(t){return Object.entries(t).reduce((e,[r,n])=>(e[Xt(r)]=n,e),{})}function ae(t){const e=Vt(t);for(const r in e){const n=e[r];n&&typeof n=="object"&&!(n instanceof Date)&&(e[r]=Array.isArray(n)?n.map(ae):ae(n))}return e}function oe(t){return S(e=>t?ae(e):e)}function Ye(t){return e=>j(t,oe(e))}function er(t){return(e,r)=>Ke(j(t,oe(r)),e)}function ie(){return S(JSON.parse)}function ue(t){const e=Ye(t);return r=>j(d(),ie(),e(r))}function tr(t){return S(e=>{const r={};return new URLSearchParams(e).forEach((n,s)=>{const o=r[s];Array.isArray(o)?o.push(n):o===void 0?r[s]=n:r[s]=[o,n]}),Ke(t,r)})}function He(t){return e=>j(se([d(),ze(URLSearchParams)]),tr(t),oe(e))}const Qe=h(ne(()=>or())),rr=I({id:D(),photo_url:h(d()),type:d(),title:d(),username:h(d())}),nr=I({added_to_attachment_menu:h(O()),allows_write_to_pm:h(O()),first_name:d(),id:D(),is_bot:h(O()),is_premium:h(O()),last_name:h(d()),language_code:h(d()),photo_url:h(d()),username:h(d())}),sr=I({auth_date:j(d(),S(t=>new Date(Number(t)*1e3)),Je()),can_send_after:h(j(d(),S(Number),Ne())),chat:h(ne(()=>ar())),chat_type:h(d()),chat_instance:h(d()),hash:d(),query_id:h(d()),receiver:Qe,start_param:h(d()),signature:d(),user:Qe}),ar=ue(rr),or=ue(nr),ir=He(sr);function ur(t){return/^#[\da-f]{6}$/i.test(t)}const Ze=Ye(Be(d(),j(se([d(),D()]),S(t=>typeof t=="number"?`#${(t&16777215).toString(16).padStart(6,"0")}`:t),De(ur)))),ce=h(j(d(),S(t=>t==="1"))),Xe=ue(Ze()),cr=I({tgWebAppBotInline:ce,tgWebAppData:h(ir()),tgWebAppDefaultColors:h(Xe()),tgWebAppFullscreen:ce,tgWebAppPlatform:d(),tgWebAppShowSettings:ce,tgWebAppStartParam:h(d()),tgWebAppThemeParams:Xe(),tgWebAppVersion:d()}),Ve=He(cr),le=er(Ve()),et=I({eventType:d(),eventData:h(Fe())});function tt(t,e){return e||(e=(r,n)=>JSON.stringify(n)),new URLSearchParams(Object.entries(t).reduce((r,[n,s])=>(Array.isArray(s)?r.push(...s.map(o=>[n,String(o)])):s!=null&&r.push([n,s instanceof Date?(s.getTime()/1e3|0).toString():typeof s=="string"||typeof s=="number"?String(s):typeof s=="boolean"?s?"1":"0":e(n,s)]),r),[])).toString()}function lr(t){return tt(t)}function pr(t){return tt(t,(e,r)=>e==="tgWebAppData"?lr(r):JSON.stringify(r))}function rt(t){try{return Zt(Ve(),t)}catch{return!1}}function fr(t){return{all:t=t||new Map,on:function(e,r){var n=t.get(e);n?n.push(r):t.set(e,[r])},off:function(e,r){var n=t.get(e);n&&(r?n.splice(n.indexOf(r)>>>0,1):t.set(e,[]))},emit:function(e,r){var n=t.get(e);n&&n.slice().map(function(s){s(r)}),(n=t.get("*"))&&n.slice().map(function(s){s(e,r)})}}}function dr(t,e){const r=fr(),n=new Map,s=(o,a,u)=>{u||(u=!1);const i=n.get(o)||new Map;n.set(o,i);const c=i.get(a)||[];i.set(a,c);const p=c.findIndex(f=>f[1]===u);p>=0&&(r.off(o,c[p][0]),c.splice(p,1),!c.length&&i.delete(a),i.size||(n.delete(o),!n.size&&e()))};return[function(a,u,i){!n.size&&t();function c(){s(a,u,i)}function p(..._){i&&c(),a==="*"?u(_):u(..._)}r.on(a,p);const f=n.get(a)||new Map;n.set(a,f);const b=f.get(u)||[];return f.set(u,b),b.push([p,i||!1]),c},s,r.emit,function(){const a=r.all.size;r.all.clear(),n.clear(),a&&e()}]}function pe(t,e){window.dispatchEvent(new MessageEvent("message",{data:JSON.stringify({eventType:t,eventData:e}),source:window.parent}))}function yr(t,e){e()}function fe(t,e){e||(e={});const r=e.equals||Object.is;let n=[],s=t;const o=c=>{if(!r(s,c)){const p=s;s=c,yr(i,()=>{[...n].forEach(([f,b])=>{f(c,p),b&&u(f,!0)})})}};function a(c){const p=typeof c!="object"?{once:c}:c;return{once:p.once||!1,signal:p.signal||!1}}const u=(c,p)=>{const f=a(p),b=n.findIndex(([_,A])=>_===c&&A.once===f.once&&A.signal===f.signal);b>=0&&n.splice(b,1)},i=Object.assign(function(){return hr(i),s},{destroy(){n=[]},set:o,reset(){o(t)},sub(c,p){return n.push([c,a(p)]),()=>u(c,p)},unsub:u,unsubAll(){n=n.filter(c=>c[1].signal)}});return i}const de=[];function hr(t){de.length&&de[de.length-1].add(t)}let N=!1;const nt=t=>{P().log("Event received:",t)};function st(t){t!==N&&(N=t,N?ye("*",nt):ot("*",nt))}const P=fe(Ce("Bridge",{bgColor:"#9147ff",textColor:"white",shouldLog(){return N}})),br={clipboard_text_received:w({req_id:$(),data:C($())}),custom_method_invoked:w({req_id:$(),result:Z($e()),error:Z($())}),popup_closed:C(w({button_id:C($(),()=>{})}),{}),viewport_changed:w({height:Q(),width:C(Q(),()=>window.innerWidth),is_state_stable:Y(),is_expanded:Y()}),theme_changed:w({theme_params:Ze()})};function at(t){if(t.source!==window.parent)return;let e;try{e=X(Se($(),ie(),et),t.data)}catch{return}const{eventType:r,eventData:n}=e,s=br[r];let o;try{o=s?X(s,n):n}catch(a){return P().forceError([`An error occurred processing the "${r}" event from the Telegram application.`,"Please, file an issue here:","https://github.com/Telegram-Mini-Apps/telegram-apps/issues/new/choose"].join(` `),e,a)}_r(r,o)}const[ye,ot,_r,it]=dr(()=>{const t=window,e={receiveEvent:pe};t.TelegramGameProxy_receiveEvent=pe,t.TelegramGameProxy=e,t.Telegram={WebView:e},window.addEventListener("message",at)},()=>{["TelegramGameProxy_receiveEvent","TelegramGameProxy","Telegram"].forEach(t=>{delete window[t]}),window.removeEventListener("message",at)});var mr=Object.defineProperty,gr=(t,e,r)=>e in t?mr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,he=(t,e,r)=>gr(t,typeof e!="symbol"?e+"":e,r);function ut(t,e){return r=>r instanceof t&&r.type===e}function q(t,e){e||(e=[]);const r=Symbol(t);class n extends Error{constructor(...o){const a=typeof e=="function"?e(...o):typeof e=="string"?[e]:e||[];super(...a),he(this,"type",r),this.name=t}}return Object.defineProperty(n,"name",{value:t}),[n,ut(n,r)]}function vr(t,e,r){const n=Symbol(t);class s extends q(t,r)[0]{constructor(...a){super(...a),he(this,"data"),he(this,"type",n),this.data=e(...a)}}return Object.defineProperty(s,"name",{value:t}),[s,ut(s,n)]}const[ct,wr]=q("MethodUnsupportedError",(t,e)=>[`Method "${t}" is unsupported in Mini Apps version ${e}`]),[lt,Er]=q("MethodParameterUnsupportedError",(t,e,r)=>[`Parameter "${e}" of "${t}" method is unsupported in Mini Apps version ${r}`]),[pt,kr]=vr("LaunchParamsRetrieveError",t=>({errors:t}),t=>[["Unable to retrieve launch parameters from any known source. Perhaps, you have opened your app outside Telegram?","📖 Refer to docs for more information:","https://docs.telegram-mini-apps.com/packages/telegram-apps-bridge/environment","","Collected errors:",...t.map(([e,r])=>`Source: ${e} / ${r instanceof Error?r.message:String(r)}`)].join(` `)]),[ft,Pr]=q("InvalidLaunchParamsError",(t,e)=>[`Invalid value for launch params: ${t}`,{cause:e}]),[dt,$r]=q("UnknownEnvError"),[yt,Sr]=q("InvokeCustomMethodError",t=>[`Server returned error: ${t}`]),L=fe((...t)=>{try{window.parent.postMessage(...t)}catch(e){e instanceof SyntaxError?P().forceError("Unable to call window.parent.postMessage due to incorrectly configured target origin. Use the setTargetOrigin method to allow this origin to receive events",e):P().forceError(e)}}),ht=(...t)=>L()(...t),x=fe("https://web.telegram.org");function jr(t){x.set(t),P().log("New target origin set",t)}function be(t,e){P().log("Posting event:",e?{eventType:t,eventData:e}:{eventType:t});const r=window,n=JSON.stringify({eventType:t,eventData:e});if(ee())return ht(n,x());if(V(r)){r.TelegramWebviewProxy.postEvent(t,JSON.stringify(e));return}if(W(w({external:w({notify:H()})}),r)){r.external.notify(n);return}throw new dt}function _e(t,e,r){r||(r={});const{capture:n}=r,[s,o]=Ft();return new M(a=>{(Array.isArray(e)?e:[e]).forEach(u=>{s(ye(u,i=>{(!n||(Array.isArray(e)?n({event:u,payload:i}):n(i)))&&a(i)}))}),(r.postEvent||be)(t,r.params)},r).finally(o)}const bt="launchParams";function _t(t){return t.replace(/^[^?#]*[?#]/,"").replace(/[?#]/g,"&")}function me(){const t=[];for(const[e,r]of[[()=>_t(window.location.href),"window.location.href"],[()=>{const n=performance.getEntriesByType("navigation")[0];return n&&_t(n.name)},"performance navigation entries"],[()=>Gt(bt),"local storage"]]){const n=e();if(!n){t.push([r,new Error("Source is empty")]);continue}if(rt(n))return Ue(bt,n),n;try{le(n)}catch(s){t.push([r,s])}}throw new pt(t)}function mt(t){const e=le(me());return t?re(e):e}function Ar(t,e){if(!t)try{return mt(),!0}catch{return!1}return M.fn(async r=>{if(V(window))return!0;try{return await _e("web_app_request_theme","theme_changed",r),!0}catch{return!1}},e||{timeout:100})}function Mr({launchParams:t,onEvent:e,resetPostMessage:r}={}){if(t){const o=typeof t=="string"||t instanceof URLSearchParams?t.toString():pr({...t,tgWebAppData:void 0})+(t.tgWebAppData?`&tgWebAppData=${encodeURIComponent(t.tgWebAppData.toString())}`:"");if(!rt(o))try{le(o)}catch(a){throw new ft(o,a)}Ue("launchParams",o)}if(ee()){if(!e)return;const o=Se($(),ie(),et);r&&L.reset();const a=L();L.set((...u)=>{const[i]=u,c=()=>{a(...u)};if(W(o,i)){const p=X(o,i);e([p.eventType,p.eventData],c)}else c()});return}const n=window.TelegramWebviewProxy||{},s=n.postEvent||(()=>{});window.TelegramWebviewProxy={...n,postEvent(o,a){const u=()=>{s(o,a)};e?e([o,a?JSON.parse(a):void 0],u):u()}},P().log("Environment was mocked by the mockTelegramEnv function")}function Tr(){return new URLSearchParams(me()).get("tgWebAppData")||void 0}function gt(t){return({req_id:e})=>e===t}function vt(t){return t.split(".").map(Number)}function wt(t,e){const r=vt(t),n=vt(e),s=Math.max(r.length,n.length);for(let o=0;o<s;o+=1){const a=r[o]||0,u=n[o]||0;if(a!==u)return a>u?1:-1}return 0}function m(t,e){return wt(t,e)<=0}function ge(t,e,r){if(typeof r=="string"){if(t==="web_app_open_link"){if(e==="try_instant_view")return m("6.4",r);if(e==="try_browser")return m("7.6",r)}if(t==="web_app_set_header_color"&&e==="color")return m("6.9",r);if(t==="web_app_close"&&e==="return_back")return m("7.6",r);if(t==="web_app_setup_main_button"&&e==="has_shine_effect")return m("7.10",r)}switch(t){case"web_app_open_tg_link":case"web_app_open_invoice":case"web_app_setup_back_button":case"web_app_set_background_color":case"web_app_set_header_color":case"web_app_trigger_haptic_feedback":return m("6.1",e);case"web_app_open_popup":return m("6.2",e);case"web_app_close_scan_qr_popup":case"web_app_open_scan_qr_popup":case"web_app_read_text_from_clipboard":return m("6.4",e);case"web_app_switch_inline_query":return m("6.7",e);case"web_app_invoke_custom_method":case"web_app_request_write_access":case"web_app_request_phone":return m("6.9",e);case"web_app_setup_settings_button":return m("6.10",e);case"web_app_biometry_get_info":case"web_app_biometry_open_settings":case"web_app_biometry_request_access":case"web_app_biometry_request_auth":case"web_app_biometry_update_token":return m("7.2",e);case"web_app_setup_swipe_behavior":return m("7.7",e);case"web_app_share_to_story":return m("7.8",e);case"web_app_setup_secondary_button":case"web_app_set_bottom_bar_color":return m("7.10",e);case"web_app_request_safe_area":case"web_app_request_content_safe_area":case"web_app_request_fullscreen":case"web_app_exit_fullscreen":case"web_app_set_emoji_status":case"web_app_add_to_home_screen":case"web_app_check_home_screen":case"web_app_request_emoji_status_access":case"web_app_check_location":case"web_app_open_location_settings":case"web_app_request_file_download":case"web_app_request_location":case"web_app_send_prepared_message":case"web_app_start_accelerometer":case"web_app_start_device_orientation":case"web_app_start_gyroscope":case"web_app_stop_accelerometer":case"web_app_stop_device_orientation":case"web_app_stop_gyroscope":case"web_app_toggle_orientation_lock":return m("8.0",e);default:return["iframe_ready","iframe_will_reload","web_app_close","web_app_data_send","web_app_expand","web_app_open_link","web_app_ready","web_app_request_theme","web_app_request_viewport","web_app_setup_main_button","web_app_setup_closing_behavior"].includes(t)}}function Ir(t,e){e||(e="strict");const r=typeof e=="function"?e:n=>{const{method:s,version:o}=n,a="param"in n?new lt(s,n.param,o):new ct(s,o);if(e==="strict")throw a;return P().forceWarn(a.message)};return(n,s)=>ge(n,t)?n==="web_app_set_header_color"&&W(w({color:Pe()}),s)&&!ge(n,"color",t)?r({version:t,method:n,param:"color"}):be(n,s):r({version:t,method:n})}function qr(t){const e=z(t);if(e.length>512)throw new Error("Value is too long for start parameter");return e}const Lr=Ee;function Rr(t){return z(t).length<=512}function Ur(t,e,r,n){return _e("web_app_invoke_custom_method","custom_method_invoked",{...n||{},params:{method:t,params:e,req_id:r},capture:gt(r)}).then(({result:s,error:o})=>{if(o)throw new yt(o);return s})}function Cr(){Object.hasOwn||(Object.hasOwn=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)})}function Or(){it(),st(!1),[L,x].forEach(t=>{t.unsubAll(),t.reset()})}return l.AbortablePromise=M,l.CancelledError=Ae,l.InvalidLaunchParamsError=ft,l.InvokeCustomMethodError=yt,l.LaunchParamsRetrieveError=pt,l.ManualPromise=Jt,l.MethodParameterUnsupportedError=lt,l.MethodUnsupportedError=ct,l.TimeoutError=Me,l.UnknownEnvError=dt,l.applyPolyfills=Cr,l.captureSameReq=gt,l.compareVersions=wt,l.createLogger=Ce,l.createPostEvent=Ir,l.createStartParam=qr,l.decodeBase64Url=Ee,l.decodeStartParam=Lr,l.emitEvent=pe,l.encodeBase64Url=z,l.hasWebviewProxy=V,l.invokeCustomMethod=Ur,l.isCancelledError=Dt,l.isIframe=ee,l.isInvalidLaunchParamsError=Pr,l.isInvokeCustomMethodError=Sr,l.isLaunchParamsRetrieveError=kr,l.isMethodMethodParameterUnsupportedError=Er,l.isMethodUnsupportedError=wr,l.isSafeToCreateStartParam=Rr,l.isTMA=Ar,l.isTimeoutError=Nt,l.isUnknownEnvError=$r,l.logger=P,l.mockTelegramEnv=Mr,l.off=ot,l.offAll=it,l.on=ye,l.postEvent=be,l.postMessage=ht,l.postMessageImplementation=L,l.request=_e,l.resetPackageState=Or,l.retrieveLaunchParams=mt,l.retrieveRawInitData=Tr,l.retrieveRawLaunchParams=me,l.setDebug=st,l.setTargetOrigin=jr,l.supports=ge,l.targetOrigin=x,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"}),l}({}); //# sourceMappingURL=index.iife.js.map