@tma.js/bridge 2.1.2 → 2.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("valibot"),_=require("@tma.js/toolkit"),k=require("better-promises"),g=require("@tma.js/transformers"),P=require("error-kid"),v=require("@tma.js/signals"),Ae=require("mitt");function q(e){return i.is(i.looseObject({TelegramWebviewProxy:i.looseObject({postEvent:i.function()})}),e)}function j(){try{return window.self!==window.top}catch{return!0}}var Oe=function(e,r,t){if(t||arguments.length===2)for(var n=0,a=r.length,o;n<a;n++)(o||!(n in r))&&(o||(o=Array.prototype.slice.call(r,0,n)),o[n]=r[n]);return e.concat(o||Array.prototype.slice.call(r))};function Ce(e){return e}function S(e,r,t,n,a,o,s,u,p){switch(arguments.length){case 1:return e;case 2:return function(){return r(e.apply(this,arguments))};case 3:return function(){return t(r(e.apply(this,arguments)))};case 4:return function(){return n(t(r(e.apply(this,arguments))))};case 5:return function(){return a(n(t(r(e.apply(this,arguments)))))};case 6:return function(){return o(a(n(t(r(e.apply(this,arguments))))))};case 7:return function(){return s(o(a(n(t(r(e.apply(this,arguments)))))))};case 8:return function(){return u(s(o(a(n(t(r(e.apply(this,arguments))))))))};case 9:return function(){return p(u(s(o(a(n(t(r(e.apply(this,arguments)))))))))}}}function m(e,r,t,n,a,o,s,u,p){switch(arguments.length){case 1:return e;case 2:return r(e);case 3:return t(r(e));case 4:return n(t(r(e)));case 5:return a(n(t(r(e))));case 6:return o(a(n(t(r(e)))));case 7:return s(o(a(n(t(r(e))))));case 8:return u(s(o(a(n(t(r(e)))))));case 9:return p(u(s(o(a(n(t(r(e))))))));default:{for(var c=arguments[0],l=1;l<arguments.length;l++)c=arguments[l](c);return c}}}var F=function(e,r){var t=typeof e=="number"?function(n){return n.length>=e}:e;return function(){var n=Array.from(arguments);return t(arguments)?r.apply(this,n):function(a){return r.apply(void 0,Oe([a],n,!1))}}},Le={_tag:"None"},$e=function(e){return{_tag:"Some",value:e}},qe=function(e){return e._tag==="Left"},je=function(e){return{_tag:"Left",left:e}},Re=function(e){return{_tag:"Right",right:e}},h=je,f=Re,ee=F(2,function(e,r){return E(e)?e:r(e.right)}),Ue=function(e){return function(r){return E(r)?r:f(e(r.right))}},We=function(e,r){return function(t){return E(t)?h(e(t.left)):f(r(t.right))}},Ie=function(e){return function(r){return E(r)?h(e(r.left)):r}},E=qe,re=function(e,r){return function(t){return E(t)?e(t.left):r(t.right)}},Be=re,R=re,Ve=R,U=function(e,r){try{return f(e())}catch(t){return h(r(t))}},De=ee,Ge=ee,ze=Le,Je=$e,Ne=function(e){return e._tag==="None"},Qe=function(e,r){return function(t){return Ne(t)?e():r(t.value)}},Ke=Qe;function He(e){return S(f,e.of)}function Ye(e){return S(h,e.of)}function Xe(e){return function(r,t){return e.chain(r,function(n){return E(n)?e.of(n):t(n.right)})}}function Ze(e){return function(r,t,n){return e.map(r,We(t,n))}}function er(e){return function(r,t){return function(n){return e.map(n,R(r,t))}}}var te=function(e,r){return m(e,tr(r))},rr=function(e,r){return m(e,nr(r))},tr=function(e){return function(r){return function(){return Promise.resolve().then(r).then(e)}}},nr=function(e){return function(r){return function(){return Promise.all([Promise.resolve().then(r),Promise.resolve().then(e)]).then(function(t){var n=t[0],a=t[1];return n(a)})}}},ne=function(e){return function(){return Promise.resolve(e)}},or=F(2,function(e,r){return function(){return Promise.resolve().then(e).then(function(t){return r(t)()})}}),oe="Task",ae={URI:oe,map:te},se={of:ne},ar={URI:oe,map:te,of:ne,ap:rr,chain:or},sr=Ye(se),ie=He(se),ue=er(ae),ir=F(3,Ze(ae)),ce=F(2,Xe(ar)),ur=ce,cr=ce;class pe extends P.errorClass("MethodUnsupportedError",(r,t)=>[`Method "${r}" is unsupported in Mini Apps version ${t}`]){}class le extends P.errorClass("MethodParameterUnsupportedError",(r,t,n)=>[`Parameter "${t}" of "${r}" method is unsupported in Mini Apps version ${n}`]){}class _e extends P.errorClassWithData("LaunchParamsRetrieveError",r=>({errors:r}),r=>[["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/tma-js-bridge/environment","","Collected errors:",...r.map(({source:t,error:n})=>`Source: ${t} / ${n instanceof Error?n.message:String(n)}`)].join(`
2
- `)]){}class fe extends P.errorClass("InvalidLaunchParamsError",(r,t)=>[`Invalid value for launch params: ${r}`,{cause:t}]){}class me extends P.errorClass("UnknownEnvError"){}class ge extends P.errorClass("InvokeCustomMethodError",r=>[`Server returned error: ${r}`]){}const N="launchParams";function Q(e){return e.replace(/^[^?#]*[?#]/,"").replace(/[?#]/g,"&")}const he=S(T,De(g.parseLaunchParamsQueryFp)),pr=_.throwifyFpFn(he),de=S(T,Ue(e=>{const r=new URLSearchParams(e).get("tgWebAppData");return r?Je(r):ze})),lr=S(de,Ve(e=>{throw e},e=>e),Ke(()=>{},e=>e));function T(){const e=[];for(const[r,t]of[[()=>Q(window.location.href),"window.location.href"],[()=>{const n=performance.getEntriesByType("navigation")[0];return n&&Q(n.name)},"performance navigation entries"],[()=>_.getStorageValue(N),"local storage"]]){const n=r();if(!n){e.push({source:t,error:new Error("Source is empty")});continue}const a=m(g.parseLaunchParamsQueryFp(n),Be(o=>o,()=>!0));if(typeof a!="boolean"){e.push({source:t,error:a});continue}return _.setStorageValue(N,n),f(n)}return h(new _e(e))}const _r=_.throwifyFpFn(T);function fr(e,r){const t=new Map,n=Ae(),a=(o,s,u=!1)=>{const p=t.get(o)||new Map;t.set(o,p);const c=p.get(s)||[];p.set(s,c);const l=c.findIndex(d=>d[1]===u);if(l>=0&&(n.off(o,c[l][0]),c.splice(l,1),!c.length&&(p.delete(s),!p.size))){const d=t.size;t.delete(o),d&&!t.size&&r()}};return{on(o,s,u){!t.size&&e();const p=()=>{a(o,s,u)},c=(...b)=>{u&&p(),o==="*"?s({name:b[0],payload:b[1]}):s(...b)};n.on(o,c);const l=t.get(o)||new Map;t.set(o,l);const d=l.get(s)||[];return l.set(s,d),d.push([c,u||!1]),p},off:a,emit:n.emit,clear(){const o=t.size;n.all.clear(),t.clear(),o&&r()}}}function x(e,r){window.dispatchEvent(new MessageEvent("message",{data:JSON.stringify({eventType:e,eventData:r}),source:window.parent}))}function C(e,r,t){const n=[t],a=e[r];typeof a=="function"&&n.push(a);const o=(...u)=>{n.forEach(p=>p(...u))},s=Object.assign((...u)=>{o(...u)},{unwrap(){const{length:u}=n;if(u===1){delete e[r];return}if(u===2){H(e,r,n[1]);return}n.unshift(1),H(e,r,o)}});we(e,r,()=>s,u=>n.push(u))}function K(e,r){const t=e[r];we(e,r,()=>t,n=>{Object.entries(n).forEach(([a,o])=>{t[a]=o})})}function we(e,r,t,n){Object.defineProperty(e,r,{enumerable:!0,configurable:!0,get:t,set:n})}function H(e,r,t){Object.defineProperty(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t})}const mr={clipboard_text_received:i.looseObject({req_id:i.string(),data:i.nullish(i.string())}),custom_method_invoked:i.looseObject({req_id:i.string(),result:i.optional(i.unknown()),error:i.optional(i.string())}),popup_closed:i.nullish(i.looseObject({button_id:i.nullish(i.string(),()=>{})}),{}),viewport_changed:i.nullish(i.looseObject({height:i.number(),width:i.nullish(i.number(),()=>window.innerWidth),is_state_stable:i.boolean(),is_expanded:i.boolean()}),()=>({height:window.innerHeight,is_state_stable:!0,is_expanded:!0})),theme_changed:i.looseObject({theme_params:g.themeParams()})};function Y(e){if(e.source!==window.parent)return;let r;try{r=i.parse(g.pipeJsonToSchema(g.miniAppsMessage()),e.data)}catch{return}const{eventType:t,eventData:n}=r,a=mr[t];let o;try{o=a?i.parse(a,n):n}catch(s){return w().forceError([`An error occurred processing the "${t}" event from the Telegram application.`,"Please, file an issue here:","https://github.com/Telegram-Mini-Apps/tma.js/issues/new/choose"].join(`
3
- `),r,s)}gr(t,o)}const{on:W,off:ve,emit:gr,clear:be}=fr(()=>{const e=window;!e.TelegramGameProxy&&(e.TelegramGameProxy={}),C(e.TelegramGameProxy,"receiveEvent",x),K(e,"TelegramGameProxy"),!e.Telegram&&(e.Telegram={}),!e.Telegram.WebView&&(e.Telegram.WebView={}),C(e.Telegram.WebView,"receiveEvent",x),K(e.Telegram,"WebView"),C(e,"TelegramGameProxy_receiveEvent",x),window.addEventListener("message",Y)},()=>{[["TelegramGameProxy_receiveEvent"],["TelegramGameProxy","receiveEvent"],["Telegram","WebView","receiveEvent"]].forEach(e=>{const r=window;let t=[void 0,r];for(const o of e)if(t=[t[1],t[1][o]],!t[1])return;const[n,a]=t;"unwrap"in a&&(a.unwrap(),n&&n!==r&&!Object.keys(n).length&&delete r[e[0]])}),window.removeEventListener("message",Y)}),M=v.signal(!1),I=v.signal("https://web.telegram.org"),hr=e=>{w().log("Event received:",e)},B=v.computed(M);function dr(e){e!==M()&&(M.set(e),(e?W:ve)("*",hr))}const V=v.computed(I);function wr(e){I.set(e),w().log("New target origin set",e)}const y=v.signal((...e)=>{window.parent.postMessage(...e)}),w=v.signal(_.createLogger("Bridge",{bgColor:"#9147ff",textColor:"white",shouldLog:B}));function vr(){be(),[y,I,V,M,B,w].forEach(e=>{e.unsubAll(),"reset"in e&&e.reset()})}const ye=(...e)=>y()(...e);function Pe(e,r){m(A(e,r),Ie(t=>{throw t}))}function A(e,r){w().log("Posting event:",r?{eventType:e,eventData:r}:{eventType:e});const t=window,n=JSON.stringify({eventType:e,eventData:r});return j()?(ye(n,V()),f(void 0)):q(t)?(t.TelegramWebviewProxy.postEvent(e,JSON.stringify(r)),f(void 0)):i.is(i.looseObject({external:i.looseObject({notify:i.function()})}),t)?(t.external.notify(n),f(void 0)):h(new me)}function O(e,r,t={}){const{capture:n=()=>!0,postEvent:a=A}=t,o=v.signal(),[s,u]=_.createCbCollector();(Array.isArray(r)?r:[r]).forEach(c=>{s(W(c,l=>{(Array.isArray(r)?n({event:c,payload:l}):n(l))&&o.set([l])}))});const p=c=>(u(),c);return m(async()=>a(e,t.params),cr(()=>_.BetterTaskEither((c,l,d)=>{const b=o();if(b)return c(b[0]);const z=J=>{J&&c(J[0])},Fe=()=>{o.unsub(z)};o.sub(z),d.on("finalized",Fe)},t)),ir(p,p))}function br(e,r,t){const{postEvent:n}=t||{};return _.throwifyAnyEither(O(e,r,{...t,postEvent:n?(...a)=>{try{return n(...a),f(void 0)}catch(o){return h(o)}}:A}))}function yr(e,r){const t=Ee(e,r);return typeof t=="function"?k.BetterPromise.fn(()=>_.throwifyAnyEither(t)):t}function Ee(e,r){const t=q(window);if(!e)return t||m(T(),R(()=>!1,()=>!0));if(t)return ie(!0);const{timeout:n=100}=r||{};return m(O("web_app_request_theme","theme_changed",{...r,timeout:n}),ue(a=>k.TimeoutError.is(a)?f(!1):h(a),()=>f(!0)))}function Pr({launchParams:e,onEvent:r,resetPostMessage:t}={}){if(e){const o=typeof e=="string"||e instanceof URLSearchParams?e.toString():g.serializeLaunchParamsQuery({...e,tgWebAppData:void 0})+(e.tgWebAppData?`&tgWebAppData=${encodeURIComponent(e.tgWebAppData.toString())}`:"");try{g.parseLaunchParamsQuery(o)}catch(s){throw new fe(o,s)}_.setStorageValue("launchParams",o)}if(j()){if(!r)return;t&&y.reset();const o=y();y.set((...s)=>{const[u]=s,p=()=>{o(...s)};try{const c=i.parse(g.pipeJsonToSchema(g.miniAppsMessage()),u);r({name:c.eventType,params:c.eventData},p)}catch{p()}});return}const n=window.TelegramWebviewProxy||{},a=n.postEvent||(()=>{});window.TelegramWebviewProxy={...n,postEvent(o,s){const u=()=>{a(o,s)};r?r({name:o,params:s?JSON.parse(s):void 0},u):u()}},w().log("Environment was mocked by the mockTelegramEnv function")}function ke(e){return({req_id:r})=>r===e}function X(e){return e.split(".").map(Number)}function Se(e,r){const t=X(e),n=X(r),a=Math.max(t.length,n.length);for(let o=0;o<a;o+=1){const s=t[o]||0,u=n[o]||0;if(s!==u)return s>u?1:-1}return 0}const Z={"6.0":["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"],6.1:["web_app_open_tg_link","web_app_open_invoice","web_app_setup_back_button","web_app_set_background_color","web_app_set_header_color","web_app_trigger_haptic_feedback"],6.2:["web_app_open_popup"],6.4:["web_app_close_scan_qr_popup","web_app_open_scan_qr_popup","web_app_read_text_from_clipboard",{method:"web_app_open_link",param:"try_instant_view"}],6.7:["web_app_switch_inline_query"],6.9:["web_app_invoke_custom_method","web_app_request_write_access","web_app_request_phone",{method:"web_app_set_header_color",param:"color"}],"6.10":["web_app_setup_settings_button"],7.2:["web_app_biometry_get_info","web_app_biometry_open_settings","web_app_biometry_request_access","web_app_biometry_request_auth","web_app_biometry_update_token"],7.6:[{method:"web_app_open_link",param:"try_browser"},{method:"web_app_close",param:"return_back"}],7.7:["web_app_setup_swipe_behavior"],7.8:["web_app_share_to_story"],"7.10":["web_app_setup_secondary_button","web_app_set_bottom_bar_color",{method:"web_app_setup_main_button",param:"has_shine_effect"}],"8.0":["web_app_request_safe_area","web_app_request_content_safe_area","web_app_request_fullscreen","web_app_exit_fullscreen","web_app_set_emoji_status","web_app_add_to_home_screen","web_app_check_home_screen","web_app_request_emoji_status_access","web_app_check_location","web_app_open_location_settings","web_app_request_file_download","web_app_request_location","web_app_send_prepared_message","web_app_start_accelerometer","web_app_start_device_orientation","web_app_start_gyroscope","web_app_stop_accelerometer","web_app_stop_device_orientation","web_app_stop_gyroscope","web_app_toggle_orientation_lock"],"9.0":["web_app_device_storage_clear","web_app_device_storage_get_key","web_app_device_storage_save_key","web_app_secure_storage_clear","web_app_secure_storage_get_key","web_app_secure_storage_restore_key","web_app_secure_storage_save_key"],9.1:["web_app_hide_keyboard"]};function L(e,r){return Object.keys(Z).find(n=>Z[n].some(a=>r?typeof a=="object"&&a.method===e&&a.param===r:a===e))||null}function $(e,r,t){const n=t?L(e,r):L(e);return n?Se(n,t||r)<=0:!1}function Er(e,r="strict"){const t=typeof r=="function"?r:n=>{const{method:a,version:o}=n,s="param"in n?new le(a,n.param,o):new pe(a,o);if(r==="strict")throw s;return w().forceWarn(s.message)};return(n,a)=>$(n,e)?n==="web_app_set_header_color"&&i.is(i.looseObject({color:i.any()}),a)&&!$(n,"color",e)?t({version:e,method:n,param:"color"}):Pe(n,a):t({version:e,method:n})}function Te(e,r,t,n){return m(O("web_app_invoke_custom_method","custom_method_invoked",{...n||{},params:{method:e,params:r,req_id:t},capture:ke(t)}),ur(({result:a,error:o})=>o?sr(new ge(o)):ie(a)))}function kr(e,r,t,n){return k.BetterPromise.fn(()=>m(Te(e,r,t,n),ue(a=>{throw a},a=>a))())}function Sr(){Object.hasOwn||(Object.hasOwn=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)})}function D(e){return U(()=>decodeURIComponent(atob(e).replace(/-/g,"+").replace(/_/g,"/").split("").map(r=>"%"+("00"+r.charCodeAt(0).toString(16)).slice(-2)).join("")),r=>r)}const Tr=_.throwifyFpFn(D);function G(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(r,t)=>String.fromCharCode(parseInt(`0x${t}`)))).replace(/\+/g,"-").replace(/\//g,"_")}var xr=function(e){return U(function(){return JSON.parse(e)},Ce)};function xe(e){const r=G(typeof e=="string"?e:JSON.stringify(e));return r.length>512?h(new Error("Value is too long for start parameter")):f(r)}const Mr=_.throwifyFpFn(xe);function Fr(e,r){return _.throwifyAnyEither(Me(e,typeof r=="function"?t=>U(()=>r(t),n=>n):r))}function Me(e,r){return m(D(e),Ge(t=>r?typeof r=="function"?r(t):xr(t):f(t)))}function Ar(e){return G(e).length<=512}Object.defineProperty(exports,"createLogger",{enumerable:!0,get:()=>_.createLogger});Object.defineProperty(exports,"deepSnakeToCamelObjKeys",{enumerable:!0,get:()=>_.deepSnakeToCamelObjKeys});Object.defineProperty(exports,"CancelledError",{enumerable:!0,get:()=>k.CancelledError});Object.defineProperty(exports,"TimeoutError",{enumerable:!0,get:()=>k.TimeoutError});exports.InvalidLaunchParamsError=fe;exports.InvokeCustomMethodFailedError=ge;exports.LaunchParamsRetrieveError=_e;exports.MethodParameterUnsupportedError=le;exports.MethodUnsupportedError=pe;exports.UnknownEnvError=me;exports.applyPolyfills=Sr;exports.captureSameReq=ke;exports.compareVersions=Se;exports.createPostEvent=Er;exports.createStartParam=Mr;exports.createStartParamFp=xe;exports.debug=B;exports.decodeBase64Url=Tr;exports.decodeBase64UrlFp=D;exports.decodeStartParam=Fr;exports.decodeStartParamFp=Me;exports.emitEvent=x;exports.encodeBase64Url=G;exports.getReleaseVersion=L;exports.hasWebviewProxy=q;exports.invokeCustomMethod=kr;exports.invokeCustomMethodFp=Te;exports.isIframe=j;exports.isSafeToCreateStartParam=Ar;exports.isTMA=yr;exports.isTMAFp=Ee;exports.logger=w;exports.mockTelegramEnv=Pr;exports.off=ve;exports.offAll=be;exports.on=W;exports.postEvent=Pe;exports.postEventFp=A;exports.postMessage=ye;exports.postMessageImpl=y;exports.request=br;exports.requestFp=O;exports.resetGlobals=vr;exports.retrieveLaunchParams=pr;exports.retrieveLaunchParamsFp=he;exports.retrieveRawInitData=lr;exports.retrieveRawInitDataFp=de;exports.retrieveRawLaunchParams=_r;exports.retrieveRawLaunchParamsFp=T;exports.setDebug=dr;exports.setTargetOrigin=wr;exports.supports=$;exports.targetOrigin=V;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("valibot"),_=require("@tma.js/toolkit"),k=require("better-promises"),g=require("@tma.js/transformers"),P=require("error-kid"),v=require("@tma.js/signals"),Ae=require("mitt");function q(e){return i.is(i.looseObject({TelegramWebviewProxy:i.looseObject({postEvent:i.function()})}),e)}function j(){try{return window.self!==window.top}catch{return!0}}var Oe=function(e,r,t){if(t||arguments.length===2)for(var n=0,a=r.length,o;n<a;n++)(o||!(n in r))&&(o||(o=Array.prototype.slice.call(r,0,n)),o[n]=r[n]);return e.concat(o||Array.prototype.slice.call(r))};function Ce(e){return e}function S(e,r,t,n,a,o,s,u,p){switch(arguments.length){case 1:return e;case 2:return function(){return r(e.apply(this,arguments))};case 3:return function(){return t(r(e.apply(this,arguments)))};case 4:return function(){return n(t(r(e.apply(this,arguments))))};case 5:return function(){return a(n(t(r(e.apply(this,arguments)))))};case 6:return function(){return o(a(n(t(r(e.apply(this,arguments))))))};case 7:return function(){return s(o(a(n(t(r(e.apply(this,arguments)))))))};case 8:return function(){return u(s(o(a(n(t(r(e.apply(this,arguments))))))))};case 9:return function(){return p(u(s(o(a(n(t(r(e.apply(this,arguments)))))))))}}}function m(e,r,t,n,a,o,s,u,p){switch(arguments.length){case 1:return e;case 2:return r(e);case 3:return t(r(e));case 4:return n(t(r(e)));case 5:return a(n(t(r(e))));case 6:return o(a(n(t(r(e)))));case 7:return s(o(a(n(t(r(e))))));case 8:return u(s(o(a(n(t(r(e)))))));case 9:return p(u(s(o(a(n(t(r(e))))))));default:{for(var c=arguments[0],l=1;l<arguments.length;l++)c=arguments[l](c);return c}}}var F=function(e,r){var t=typeof e=="number"?function(n){return n.length>=e}:e;return function(){var n=Array.from(arguments);return t(arguments)?r.apply(this,n):function(a){return r.apply(void 0,Oe([a],n,!1))}}},Le={_tag:"None"},$e=function(e){return{_tag:"Some",value:e}},qe=function(e){return e._tag==="Left"},je=function(e){return{_tag:"Left",left:e}},Re=function(e){return{_tag:"Right",right:e}},h=je,f=Re,re=F(2,function(e,r){return E(e)?e:r(e.right)}),Ue=function(e){return function(r){return E(r)?r:f(e(r.right))}},We=function(e,r){return function(t){return E(t)?h(e(t.left)):f(r(t.right))}},Ie=function(e){return function(r){return E(r)?h(e(r.left)):r}},E=qe,te=function(e,r){return function(t){return E(t)?e(t.left):r(t.right)}},Be=te,R=te,Ve=R,U=function(e,r){try{return f(e())}catch(t){return h(r(t))}},De=re,Ge=re,ze=Le,Je=$e,Ne=function(e){return e._tag==="None"},Qe=function(e,r){return function(t){return Ne(t)?e():r(t.value)}},Ke=Qe;function He(e){return S(f,e.of)}function Ye(e){return S(h,e.of)}function Xe(e){return function(r,t){return e.chain(r,function(n){return E(n)?e.of(n):t(n.right)})}}function Ze(e){return function(r,t,n){return e.map(r,We(t,n))}}function er(e){return function(r,t){return function(n){return e.map(n,R(r,t))}}}var ne=function(e,r){return m(e,tr(r))},rr=function(e,r){return m(e,nr(r))},tr=function(e){return function(r){return function(){return Promise.resolve().then(r).then(e)}}},nr=function(e){return function(r){return function(){return Promise.all([Promise.resolve().then(r),Promise.resolve().then(e)]).then(function(t){var n=t[0],a=t[1];return n(a)})}}},oe=function(e){return function(){return Promise.resolve(e)}},or=F(2,function(e,r){return function(){return Promise.resolve().then(e).then(function(t){return r(t)()})}}),ae="Task",se={URI:ae,map:ne},ie={of:oe},ar={URI:ae,map:ne,of:oe,ap:rr,chain:or},sr=Ye(ie),ue=He(ie),ce=er(se),ir=F(3,Ze(se)),pe=F(2,Xe(ar)),ur=pe,cr=pe;class le extends P.errorClass("MethodUnsupportedError",(r,t)=>[`Method "${r}" is unsupported in Mini Apps version ${t}`]){}class _e extends P.errorClass("MethodParameterUnsupportedError",(r,t,n)=>[`Parameter "${t}" of "${r}" method is unsupported in Mini Apps version ${n}`]){}class fe extends P.errorClassWithData("LaunchParamsRetrieveError",r=>({errors:r}),r=>[["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/tma-js-bridge/environment","","Collected errors:",...r.map(({source:t,error:n})=>`Source: ${t} / ${n instanceof Error?n.message:String(n)}`)].join(`
2
+ `)]){}class me extends P.errorClass("InvalidLaunchParamsError",(r,t)=>[`Invalid value for launch params: ${r}`,{cause:t}]){}class W extends P.errorClass("UnknownEnvError"){}class ge extends P.errorClass("InvokeCustomMethodError",r=>[`Server returned error: ${r}`]){}const Q="launchParams";function K(e){return e.replace(/^[^?#]*[?#]/,"").replace(/[?#]/g,"&")}const he=S(T,De(g.parseLaunchParamsQueryFp)),pr=_.throwifyFpFn(he),de=S(T,Ue(e=>{const r=new URLSearchParams(e).get("tgWebAppData");return r?Je(r):ze})),lr=S(de,Ve(e=>{throw e},e=>e),Ke(()=>{},e=>e));function T(){const e=[];for(const[r,t]of[[()=>K(window.location.href),"window.location.href"],[()=>{const n=performance.getEntriesByType("navigation")[0];return n&&K(n.name)},"performance navigation entries"],[()=>_.getStorageValue(Q),"local storage"]]){const n=r();if(!n){e.push({source:t,error:new Error("Source is empty")});continue}const a=m(g.parseLaunchParamsQueryFp(n),Be(o=>o,()=>!0));if(typeof a!="boolean"){e.push({source:t,error:a});continue}return _.setStorageValue(Q,n),f(n)}return h(new fe(e))}const _r=_.throwifyFpFn(T);function fr(e,r){const t=new Map,n=Ae(),a=(o,s,u=!1)=>{const p=t.get(o)||new Map;t.set(o,p);const c=p.get(s)||[];p.set(s,c);const l=c.findIndex(d=>d[1]===u);if(l>=0&&(n.off(o,c[l][0]),c.splice(l,1),!c.length&&(p.delete(s),!p.size))){const d=t.size;t.delete(o),d&&!t.size&&r()}};return{on(o,s,u){!t.size&&e();const p=()=>{a(o,s,u)},c=(...b)=>{u&&p(),o==="*"?s({name:b[0],payload:b[1]}):s(...b)};n.on(o,c);const l=t.get(o)||new Map;t.set(o,l);const d=l.get(s)||[];return l.set(s,d),d.push([c,u||!1]),p},off:a,emit:n.emit,clear(){const o=t.size;n.all.clear(),t.clear(),o&&r()}}}function x(e,r){window.dispatchEvent(new MessageEvent("message",{data:JSON.stringify({eventType:e,eventData:r}),source:window.parent}))}function C(e,r,t){const n=[t],a=e[r];typeof a=="function"&&n.push(a);const o=(...u)=>{n.forEach(p=>p(...u))},s=Object.assign((...u)=>{o(...u)},{unwrap(){const{length:u}=n;if(u===1){delete e[r];return}if(u===2){Y(e,r,n[1]);return}n.unshift(1),Y(e,r,o)}});we(e,r,()=>s,u=>n.push(u))}function H(e,r){const t=e[r];we(e,r,()=>t,n=>{Object.entries(n).forEach(([a,o])=>{t[a]=o})})}function we(e,r,t,n){Object.defineProperty(e,r,{enumerable:!0,configurable:!0,get:t,set:n})}function Y(e,r,t){Object.defineProperty(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t})}const mr={clipboard_text_received:i.looseObject({req_id:i.string(),data:i.nullish(i.string())}),custom_method_invoked:i.looseObject({req_id:i.string(),result:i.optional(i.unknown()),error:i.optional(i.string())}),popup_closed:i.nullish(i.looseObject({button_id:i.nullish(i.string(),()=>{})}),{}),viewport_changed:i.nullish(i.looseObject({height:i.number(),width:i.nullish(i.number(),()=>window.innerWidth),is_state_stable:i.boolean(),is_expanded:i.boolean()}),()=>({height:window.innerHeight,is_state_stable:!0,is_expanded:!0})),theme_changed:i.looseObject({theme_params:g.themeParams()})};function X(e){if(e.source!==window.parent)return;let r;try{r=i.parse(g.pipeJsonToSchema(g.miniAppsMessage()),e.data)}catch{return}const{eventType:t,eventData:n}=r,a=mr[t];let o;try{o=a?i.parse(a,n):n}catch(s){return w().forceError([`An error occurred processing the "${t}" event from the Telegram application.`,"Please, file an issue here:","https://github.com/Telegram-Mini-Apps/tma.js/issues/new/choose"].join(`
3
+ `),r,s)}gr(t,o)}const{on:I,off:ve,emit:gr,clear:be}=fr(()=>{const e=window;!e.TelegramGameProxy&&(e.TelegramGameProxy={}),C(e.TelegramGameProxy,"receiveEvent",x),H(e,"TelegramGameProxy"),!e.Telegram&&(e.Telegram={}),!e.Telegram.WebView&&(e.Telegram.WebView={}),C(e.Telegram.WebView,"receiveEvent",x),H(e.Telegram,"WebView"),C(e,"TelegramGameProxy_receiveEvent",x),window.addEventListener("message",X)},()=>{[["TelegramGameProxy_receiveEvent"],["TelegramGameProxy","receiveEvent"],["Telegram","WebView","receiveEvent"]].forEach(e=>{const r=window;let t=[void 0,r];for(const o of e)if(t=[t[1],t[1][o]],!t[1])return;const[n,a]=t;"unwrap"in a&&(a.unwrap(),n&&n!==r&&!Object.keys(n).length&&delete r[e[0]])}),window.removeEventListener("message",X)}),M=v.signal(!1),B=v.signal("https://web.telegram.org"),hr=e=>{w().log("Event received:",e)},V=v.computed(M);function dr(e){e!==M()&&(M.set(e),(e?I:ve)("*",hr))}const D=v.computed(B);function wr(e){B.set(e),w().log("New target origin set",e)}const y=v.signal((...e)=>{window.parent.postMessage(...e)}),w=v.signal(_.createLogger("Bridge",{bgColor:"#9147ff",textColor:"white",shouldLog:V}));function vr(){be(),[y,B,D,M,V,w].forEach(e=>{e.unsubAll(),"reset"in e&&e.reset()})}const ye=(...e)=>y()(...e);function Pe(e,r){m(A(e,r),Ie(t=>{throw t}))}function A(e,r){w().log("Posting event:",r?{eventType:e,eventData:r}:{eventType:e});const t=window,n=JSON.stringify({eventType:e,eventData:r});return j()?(ye(n,D()),f(void 0)):q(t)?(t.TelegramWebviewProxy.postEvent(e,JSON.stringify(r)),f(void 0)):i.is(i.looseObject({external:i.looseObject({notify:i.function()})}),t)?(t.external.notify(n),f(void 0)):h(new W)}function O(e,r,t={}){const{capture:n=()=>!0,postEvent:a=A}=t,o=v.signal(),[s,u]=_.createCbCollector();(Array.isArray(r)?r:[r]).forEach(c=>{s(I(c,l=>{(Array.isArray(r)?n({event:c,payload:l}):n(l))&&o.set([l])}))});const p=c=>(u(),c);return m(async()=>a(e,t.params),cr(()=>_.BetterTaskEither((c,l,d)=>{const b=o();if(b)return c(b[0]);const J=N=>{N&&c(N[0])},Fe=()=>{o.unsub(J)};o.sub(J),d.on("finalized",Fe)},t)),ir(p,p))}function br(e,r,t){const{postEvent:n}=t||{};return _.throwifyAnyEither(O(e,r,{...t,postEvent:n?(...a)=>{try{return n(...a),f(void 0)}catch(o){return h(o)}}:A}))}function yr(e,r){const t=Ee(e,r);return typeof t=="function"?k.BetterPromise.fn(()=>_.throwifyAnyEither(t)):t}function Ee(e,r){const t=q(window);if(!e)return t||m(T(),R(()=>!1,()=>!0));if(t)return ue(!0);const{timeout:n=100}=r||{};return m(O("web_app_request_theme","theme_changed",{...r,timeout:n}),ce(a=>k.TimeoutError.is(a)||W.is(a)?f(!1):h(a),()=>f(!0)))}function Pr({launchParams:e,onEvent:r,resetPostMessage:t}={}){if(e){const o=typeof e=="string"||e instanceof URLSearchParams?e.toString():g.serializeLaunchParamsQuery({...e,tgWebAppData:void 0})+(e.tgWebAppData?`&tgWebAppData=${encodeURIComponent(e.tgWebAppData.toString())}`:"");try{g.parseLaunchParamsQuery(o)}catch(s){throw new me(o,s)}_.setStorageValue("launchParams",o)}if(j()){if(!r)return;t&&y.reset();const o=y();y.set((...s)=>{const[u]=s,p=()=>{o(...s)};try{const c=i.parse(g.pipeJsonToSchema(g.miniAppsMessage()),u);r({name:c.eventType,params:c.eventData},p)}catch{p()}});return}const n=window.TelegramWebviewProxy||{},a=n.postEvent||(()=>{});window.TelegramWebviewProxy={...n,postEvent(o,s){const u=()=>{a(o,s)};r?r({name:o,params:s?JSON.parse(s):void 0},u):u()}},w().log("Environment was mocked by the mockTelegramEnv function")}function ke(e){return({req_id:r})=>r===e}function Z(e){return e.split(".").map(Number)}function Se(e,r){const t=Z(e),n=Z(r),a=Math.max(t.length,n.length);for(let o=0;o<a;o+=1){const s=t[o]||0,u=n[o]||0;if(s!==u)return s>u?1:-1}return 0}const ee={"6.0":["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"],6.1:["web_app_open_tg_link","web_app_open_invoice","web_app_setup_back_button","web_app_set_background_color","web_app_set_header_color","web_app_trigger_haptic_feedback"],6.2:["web_app_open_popup"],6.4:["web_app_close_scan_qr_popup","web_app_open_scan_qr_popup","web_app_read_text_from_clipboard",{method:"web_app_open_link",param:"try_instant_view"}],6.7:["web_app_switch_inline_query"],6.9:["web_app_invoke_custom_method","web_app_request_write_access","web_app_request_phone",{method:"web_app_set_header_color",param:"color"}],"6.10":["web_app_setup_settings_button"],7.2:["web_app_biometry_get_info","web_app_biometry_open_settings","web_app_biometry_request_access","web_app_biometry_request_auth","web_app_biometry_update_token"],7.6:[{method:"web_app_open_link",param:"try_browser"},{method:"web_app_close",param:"return_back"}],7.7:["web_app_setup_swipe_behavior"],7.8:["web_app_share_to_story"],"7.10":["web_app_setup_secondary_button","web_app_set_bottom_bar_color",{method:"web_app_setup_main_button",param:"has_shine_effect"}],"8.0":["web_app_request_safe_area","web_app_request_content_safe_area","web_app_request_fullscreen","web_app_exit_fullscreen","web_app_set_emoji_status","web_app_add_to_home_screen","web_app_check_home_screen","web_app_request_emoji_status_access","web_app_check_location","web_app_open_location_settings","web_app_request_file_download","web_app_request_location","web_app_send_prepared_message","web_app_start_accelerometer","web_app_start_device_orientation","web_app_start_gyroscope","web_app_stop_accelerometer","web_app_stop_device_orientation","web_app_stop_gyroscope","web_app_toggle_orientation_lock"],"9.0":["web_app_device_storage_clear","web_app_device_storage_get_key","web_app_device_storage_save_key","web_app_secure_storage_clear","web_app_secure_storage_get_key","web_app_secure_storage_restore_key","web_app_secure_storage_save_key"],9.1:["web_app_hide_keyboard"]};function L(e,r){return Object.keys(ee).find(n=>ee[n].some(a=>r?typeof a=="object"&&a.method===e&&a.param===r:a===e))||null}function $(e,r,t){const n=t?L(e,r):L(e);return n?Se(n,t||r)<=0:!1}function Er(e,r="strict"){const t=typeof r=="function"?r:n=>{const{method:a,version:o}=n,s="param"in n?new _e(a,n.param,o):new le(a,o);if(r==="strict")throw s;return w().forceWarn(s.message)};return(n,a)=>$(n,e)?n==="web_app_set_header_color"&&i.is(i.looseObject({color:i.any()}),a)&&!$(n,"color",e)?t({version:e,method:n,param:"color"}):Pe(n,a):t({version:e,method:n})}function Te(e,r,t,n){return m(O("web_app_invoke_custom_method","custom_method_invoked",{...n||{},params:{method:e,params:r,req_id:t},capture:ke(t)}),ur(({result:a,error:o})=>o?sr(new ge(o)):ue(a)))}function kr(e,r,t,n){return k.BetterPromise.fn(()=>m(Te(e,r,t,n),ce(a=>{throw a},a=>a))())}function Sr(){Object.hasOwn||(Object.hasOwn=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)})}function G(e){return U(()=>decodeURIComponent(atob(e).replace(/-/g,"+").replace(/_/g,"/").split("").map(r=>"%"+("00"+r.charCodeAt(0).toString(16)).slice(-2)).join("")),r=>r)}const Tr=_.throwifyFpFn(G);function z(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(r,t)=>String.fromCharCode(parseInt(`0x${t}`)))).replace(/\+/g,"-").replace(/\//g,"_")}var xr=function(e){return U(function(){return JSON.parse(e)},Ce)};function xe(e){const r=z(typeof e=="string"?e:JSON.stringify(e));return r.length>512?h(new Error("Value is too long for start parameter")):f(r)}const Mr=_.throwifyFpFn(xe);function Fr(e,r){return _.throwifyAnyEither(Me(e,typeof r=="function"?t=>U(()=>r(t),n=>n):r))}function Me(e,r){return m(G(e),Ge(t=>r?typeof r=="function"?r(t):xr(t):f(t)))}function Ar(e){return z(e).length<=512}Object.defineProperty(exports,"createLogger",{enumerable:!0,get:()=>_.createLogger});Object.defineProperty(exports,"deepSnakeToCamelObjKeys",{enumerable:!0,get:()=>_.deepSnakeToCamelObjKeys});Object.defineProperty(exports,"CancelledError",{enumerable:!0,get:()=>k.CancelledError});Object.defineProperty(exports,"TimeoutError",{enumerable:!0,get:()=>k.TimeoutError});exports.InvalidLaunchParamsError=me;exports.InvokeCustomMethodFailedError=ge;exports.LaunchParamsRetrieveError=fe;exports.MethodParameterUnsupportedError=_e;exports.MethodUnsupportedError=le;exports.UnknownEnvError=W;exports.applyPolyfills=Sr;exports.captureSameReq=ke;exports.compareVersions=Se;exports.createPostEvent=Er;exports.createStartParam=Mr;exports.createStartParamFp=xe;exports.debug=V;exports.decodeBase64Url=Tr;exports.decodeBase64UrlFp=G;exports.decodeStartParam=Fr;exports.decodeStartParamFp=Me;exports.emitEvent=x;exports.encodeBase64Url=z;exports.getReleaseVersion=L;exports.hasWebviewProxy=q;exports.invokeCustomMethod=kr;exports.invokeCustomMethodFp=Te;exports.isIframe=j;exports.isSafeToCreateStartParam=Ar;exports.isTMA=yr;exports.isTMAFp=Ee;exports.logger=w;exports.mockTelegramEnv=Pr;exports.off=ve;exports.offAll=be;exports.on=I;exports.postEvent=Pe;exports.postEventFp=A;exports.postMessage=ye;exports.postMessageImpl=y;exports.request=br;exports.requestFp=O;exports.resetGlobals=vr;exports.retrieveLaunchParams=pr;exports.retrieveLaunchParamsFp=he;exports.retrieveRawInitData=lr;exports.retrieveRawInitDataFp=de;exports.retrieveRawLaunchParams=_r;exports.retrieveRawLaunchParamsFp=T;exports.setDebug=dr;exports.setTargetOrigin=wr;exports.supports=$;exports.targetOrigin=D;
4
4
  //# sourceMappingURL=index.cjs.map