UNPKG

@telegram-apps/bridge

Version:

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

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