@apiteam/twa-bridge 7.7.0-beta.1 → 7.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/solid/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("debug"),t=require("solid-js");const s="web",o="phone",r="desktop",p=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?o:["tdesktop","macos"].includes(t)?r:s},a="not_supported",n=(e,t)=>{const s=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(s)>=e&&-1!==t.indexOf(p())},i=()=>Math.random().toString(36).substring(3,9),u=e=>{var t;if(t=/^\s*#([0-9a-f]{6})\s*$/i.exec(e+=""))return"#"+t[1].toLowerCase();if(t=/^\s*#([0-9a-f])([0-9a-f])([0-9a-f])\s*$/i.exec(e))return("#"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]).toLowerCase();if(t=/^\s*rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)\s*$/.exec(e)){var s=parseInt(t[1]),o=parseInt(t[2]),r=parseInt(t[3]);return"#"+((s<16?"0":"")+s.toString(16))+((o<16?"0":"")+o.toString(16))+((r<16?"0":"")+r.toString(16))}return!1},d=()=>n(0,[s,r,o]),_=()=>c()?(Q(oe),{status:!0}):(D(oe,1),{status:a}),c=()=>n(6.4,[o]),x=()=>n(0,[s,r,o]),g=()=>n(0,[o]),l=()=>n(0,[s]),h=()=>n(0,[s]),b="web_app_invoke_custom_method",w=()=>n(6.9,[s,r,o]),m=()=>n(6.1,[s,r,o]),v=()=>n(6.4,[s,r,o]),S=()=>n(6.2,[s,r,o]),f=()=>n(6.4,[o]),y=()=>n(7,[s,r,o]),M=()=>n(6.4,[s,r,o]),P=()=>n(6.9,[s,r,o]),q=()=>n(6.9,[s,r,o]),R=()=>n(0,[s,r,o]),k=()=>n(0,[s,r,o]),C=()=>n(6.9,[s,r,o]),O=()=>n(6.1,[s,r,o]),E=()=>n(6.1,[s,r,o]),T=()=>n(6.1,[s,r,o]),I=()=>n(0,[s,r,o]),B=()=>n(0,[s,r,o]),W=()=>n(6.1,[s,r,o]),L=()=>n(6.7,[s,r,o]),N=()=>n(6.1,[o]);var D=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};var Q=(t,s)=>{if(window.TelegramWebviewProxy)window.TelegramWebviewProxy.postEvent(t,JSON.stringify(s));else if(window.external&&"notify"in window.external)window.external.notify(JSON.stringify({eventType:t,eventData:s}));else try{"*",window.parent.postMessage(JSON.stringify({eventType:t,eventData:s}),"*")}catch(t){e("postMessage Iframe",10)}};const A="clipboard_text_received",G="custom_method_invoked",V="phone_requested",H="popup_closed",J="qr_text_received",$="scan_qr_popup_closed",F="theme_changed",U="viewport_changed",j=((e=new Map)=>({once:(t,s,o=e.get(t),r=(e=>{s(e),o&&o.splice(o.indexOf(s)>>>0,1)}))=>o?o.push(r):e.set(t,[r]),on:(t,s,o=e.get(t))=>o?o.push(s):e.set(t,[s]),off:(t,s,o=e.get(t))=>o&&s?o.splice(o.indexOf(s)>>>0,1):e.set(t,[]),emit:(t,s,o=e.get(t)||[])=>{for(const e of o)e(s)}}))();(()=>{function e(e,t){e===F&&(t.theme_params=(e=>{"#1c1c1d"==e.bg_color&&e.bg_color==e.secondary_bg_color&&(e.secondary_bg_color="#2c2c2e");const t=window.location.hash.slice(1),s=new URLSearchParams(t);var o=JSON.parse(s.get("tgWebAppThemeParams")??"");for(var r in e){var p=u(e[r]);"string"==typeof p&&(o[r]=p)}return o})(t.theme_params)),j.emit(e,t),j.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const z=(e,t)=>{j.on(e,t)},K=(e,t)=>{j.off(e,t)},X=(e,t)=>{j.once(e,t)};var Y=Object.freeze({__proto__:null,off:K,on:z,once:X});const Z="web_app_open_scan_qr_popup",ee="web_app_read_text_from_clipboard",te="web_app_request_phone",se="web_app_close",oe="web_app_close_scan_qr_popup",re="web_app_data_send",pe="web_app_expand",ae="iframe_ready",ne="web_app_open_invoice",ie="web_app_open_link",ue="web_app_open_popup",de="web_app_open_tg_link",_e="web_app_ready",ce="web_app_request_theme",xe="web_app_request_viewport",ge="web_app_request_write_access",le="web_app_set_background_color",he="web_app_set_header_color",be="web_app_setup_back_button",we="web_app_setup_closing_behavior",me="web_app_setup_main_button",ve="web_app_setup_settings_button",Se="web_app_switch_inline_query",fe="web_app_trigger_haptic_feedback";exports.EventBackButtonPressed="back_button_pressed",exports.EventClipboardTextReceived=A,exports.EventCustomMethodInvoked=G,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=V,exports.EventPopupClosed=H,exports.EventQrTextReceived=J,exports.EventReloadIframe="reload_iframe",exports.EventScanQrPopupClosed=$,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged=F,exports.EventViewportChanged=U,exports.EventWriteAccessRequested="write_access_requested",exports.MethodClose=se,exports.MethodCloseScanQrPopup=oe,exports.MethodDataSend=re,exports.MethodExpand=pe,exports.MethodIframeReady=ae,exports.MethodIframeWillReload="iframe_will_reload",exports.MethodInvokeCustomMethod="web_app_invoke_custom_method",exports.MethodOpenInvoice=ne,exports.MethodOpenLink=ie,exports.MethodOpenPopup=ue,exports.MethodOpenScanQrPopup=Z,exports.MethodOpenTgLink=de,exports.MethodReadTextFromClipboard=ee,exports.MethodReady=_e,exports.MethodRequestPhone=te,exports.MethodRequestTheme=ce,exports.MethodRequestViewport=xe,exports.MethodRequestWriteAccess=ge,exports.MethodSetBackgroundColor=le,exports.MethodSetHeaderColor=he,exports.MethodSetupBackButton=be,exports.MethodSetupClosingBehavior=we,exports.MethodSetupMainButton=me,exports.MethodSetupSettingsButton=ve,exports.MethodSetupSwipeBehavior="web_app_setup_swipe_behavior",exports.MethodSwitchInlineQuery=Se,exports.MethodTriggerHapticFeedback=fe,exports.NOT_SUPPORTED=a,exports.TG_DESKTOP=r,exports.TG_PHONE=o,exports.TG_WEB=s,exports.bridgeClose=()=>d()?(Q(se),{status:!0}):(D(se,1),{status:a}),exports.bridgeCloseScanQrPopup=_,exports.bridgeDataSend=e=>x()?(Q(re,e),{status:!0}):(D(re,1),{status:a}),exports.bridgeExpand=()=>g()?(Q(pe),{status:!0}):(D(pe,1),{status:a}),exports.bridgeGetInitData=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return D("getInitData",2),null;const t=new URLSearchParams(e);let s={};return t.forEach(((e,t)=>{if(s[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{s[t]=JSON.parse(e)}catch{}})),s},exports.bridgeIframeReady=e=>l()?(Q(ae,e),{status:!0}):(D(ae,1),{status:a}),exports.bridgeIframeWillReload=()=>h()?(Q(ae),{status:!0}):(D(ae,1),{status:a}),exports.bridgeInvokeCustomMethod=async e=>w()?(void 0===e.req_id&&(e.req_id=i()),Q(b,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),K(G,o))};z(G,o)}))):(D(b,1),{status:a}),exports.bridgeOpenInvoice=e=>m()?(Q(ne,e),{status:!0}):(D(ne,1),{status:a}),exports.bridgeOpenLink=e=>v()?(Q(ie,e),{status:!0}):(D(ie,1),{status:a}),exports.bridgeOpenPopup=async e=>S()?(e.title.length>64&&D(ue,3),e.message.length<1&&D(ue,4),e.message.length>256&&D(ue,5),e.buttons.length<1&&D(ue,6),e.buttons.length>3&&D(ue,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&D(ue,8),Q(ue,e),new Promise(((t,s)=>{const o=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),K(H,o)};z(H,o)}))):(D(ue,1),{status:a}),exports.bridgeOpenScanQrPopup=async e=>f()?(Q(Z,e),new Promise(((t,s)=>{X(J,(s=>{e.is_close&&_(),t({status:!0,data:s})})),X($,(()=>{t({status:"closed"})}))}))):(D(Z,1),{status:a}),exports.bridgeOpenTgLink=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),y()?(Q(de,e),{status:!0}):(D(de,1),{status:a})),exports.bridgeReadTextFromClipboard=async e=>M()?(void 0===e.req_id&&(e.req_id=i()),Q(ee,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),K(A,o))};z(A,o)}))):(D(ee,1),{status:a}),exports.bridgeReady=()=>P()?(Q(_e),{status:!0}):(D(_e,1),{status:a}),exports.bridgeRequestPhone=async()=>q()?(Q(te),new Promise(((e,t)=>{X(V,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(D(te,1),{status:a}),exports.bridgeRequestTheme=()=>R()?(Q(ce),{status:!0}):(D(ce,1),{status:a}),exports.bridgeRequestViewport=()=>k()?(Q(xe),{status:!0}):(D(xe,1),{status:a}),exports.bridgeRequestWriteAccess=()=>C()?(Q(ge),{status:!0}):(D(ge,1),{status:a}),exports.bridgeSessionStorageGet=({key:e})=>{try{return{value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(e){}return{status:!1}},exports.bridgeSessionStorageSet=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(e){}return{status:!1}},exports.bridgeSetBackgroundColor=e=>O()?(Q(le,e),{status:!0}):(D(le,1),{status:a}),exports.bridgeSetHeaderColor=e=>E()?(Q(he,e),{status:!0}):(D(he,1),{status:a}),exports.bridgeSetupBackButton=e=>T()?(Q(be,e),{status:!0}):(D(be,1),{status:a}),exports.bridgeSetupClosingBehavior=e=>I()?(Q(we,e),{status:!0}):(D(we,1),{status:a}),exports.bridgeSetupMainButton=e=>B()?(Q(me,e),{status:!0}):(D(me,1),{status:a}),exports.bridgeSetupSettingsButton=e=>W()?(Q(ve,e),{status:!0}):(D(ve,1),{status:a}),exports.bridgeSwitchInlineQuery=e=>L()?(e.query.length>256&&D(Se,9),Q(Se,e),{status:!0}):(D(Se,1),{status:a}),exports.bridgeTriggerHapticFeedback=e=>N()?(Q(fe,e),{status:!0}):(D(fe,1),{status:a}),exports.createIsViewportChanged=()=>{const[e,s]=t.createSignal({height:0,is_expanded:!1,is_state_stable:!1}),o=e=>s(e);return t.onMount((()=>{z(U,o),Q(xe)})),t.onCleanup((()=>{K(U,o)})),e},exports.debug=D,exports.getPlatform=p,exports.listener=Y,exports.sender=Q,exports.supportClose=d,exports.supportCloseScanQrPopup=c,exports.supportDataSend=x,exports.supportExpand=g,exports.supportIframeReady=l,exports.supportIframeWillReload=h,exports.supportInvokeCustomMethod=w,exports.supportOpenInvoice=m,exports.supportOpenLink=v,exports.supportOpenPopup=S,exports.supportOpenScanQrPopup=f,exports.supportOpenTgLink=y,exports.supportReadTextFromClipboard=M,exports.supportReady=P,exports.supportRequestPhone=q,exports.supportRequestTheme=R,exports.supportRequestViewport=k,exports.supportRequestWriteAccess=C,exports.supportSessionStorageGet=()=>!0,exports.supportSessionStorageSet=()=>!0,exports.supportSetBackgroundColor=O,exports.supportSetHeaderColor=E,exports.supportSetupBackButton=T,exports.supportSetupClosingBehavior=I,exports.supportSetupMainButton=B,exports.supportSetupSettingsButton=W,exports.supportSwitchInlineQuery=L,exports.supportTriggerHapticFeedback=N;
1
+ "use strict";var e=require("solid-js"),t=require("solid-js/store");const o="web",s="phone",r="desktop",p=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?s:["tdesktop","macos"].includes(t)?r:o},a="not_supported",n=(e,t)=>{const o=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(o?.replace(".",""))>=Number(String(e)?.replace(".",""))&&-1!==t.indexOf(p())},i=()=>Math.random().toString(36).substring(3,9),u=e=>{var t;if(t=/^\s*#([0-9a-f]{6})\s*$/i.exec(e+=""))return"#"+t[1].toLowerCase();if(t=/^\s*#([0-9a-f])([0-9a-f])([0-9a-f])\s*$/i.exec(e))return("#"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]).toLowerCase();if(t=/^\s*rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)\s*$/.exec(e)){var o=parseInt(t[1]),s=parseInt(t[2]),r=parseInt(t[3]);return"#"+((o<16?"0":"")+o.toString(16))+((s<16?"0":"")+s.toString(16))+((r<16?"0":"")+r.toString(16))}return!1},d=e=>{const t=window.location.hash.slice(1),o=new URLSearchParams(t),s=JSON.parse(o.get("tgWebAppThemeParams")??""),r=e||s;for(var p of Object.keys(r)){var a=u(r[p]);"string"==typeof a&&(r[p]=a)}return"#1c1c1d"==r?.bg_color&&r?.bg_color==r?.secondary_bg_color&&(r.secondary_bg_color="#2c2c2e"),r},c=e=>_()?(he(ve,e),{status:!0}):(le(ve,1),{status:a}),_=()=>n(0,[o,r,s]),x=e=>l()?(he(fe,e),{status:!0}):(le(fe,1),{status:a}),l=()=>n(6.4,[s]),g=e=>h()?(he(ye,e),{status:!0}):(le(ye,1),{status:a}),h=()=>n(0,[o,r,s]),S=e=>b()?(he(Ce,e),{status:!0}):(le(Ce,1),{status:a}),b=()=>n(0,[s]),w=e=>m()?(he(Re,e),{status:!0}):(le(Re,1),{status:a}),m=()=>n(0,[o]),v=()=>f()?(he(Re),{status:!0}):(le(Re,1),{status:a}),f=()=>n(0,[o]),y=async e=>C()?(void 0===e.req_id&&(e.req_id=i()),he(Se,e),new Promise(((t,o)=>{const s=o=>{o.req_id===e.req_id&&(t({status:!0,data:o}),st(je,s))};ot(je,s)}))):(le(Se,1),{status:a}),C=()=>n(6.9,[o,r,s]),R=e=>P()?(he(Be,e),{status:!0}):(le(Be,1),{status:a}),P=()=>n(6.1,[o,r,s]),B=e=>k()?(he(ke,e),{status:!0}):(le(ke,1),{status:a}),k=()=>n(6.4,[o,r,s]),M=async e=>q()?(e.title.length>64&&le(Me,3),e.message.length<1&&le(Me,4),e.message.length>256&&le(Me,5),e.buttons.length<1&&le(Me,6),e.buttons.length>3&&le(Me,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&le(Me,8),he(Me,e),new Promise(((t,o)=>{const s=o=>{t({status:!!e.buttons.find((e=>e.id===o?.button_id)),data:o}),st(Ke,s)};ot(Ke,s)}))):(le(Me,1),{status:a}),q=()=>n(6.2,[o,r,s]),T=async e=>O()?(he(be,e),new Promise(((t,o)=>{rt(Xe,(o=>{e.is_close&&x(),t({status:!0,data:o})})),rt(Ye,(()=>{t({status:"closed"})}))}))):(le(be,1),{status:a}),O=()=>n(6.4,[s]),I=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),E()?(he(qe,e),{status:!0}):(le(qe,1),{status:a})),E=()=>n(7,[o,r,s]),W=async e=>L()?(e||(e={req_id:void 0}),void 0===e.req_id&&(e.req_id=i()),he(we,e),new Promise(((t,o)=>{const s=o=>{o.req_id===e?.req_id&&(t({status:!0,data:o}),st($e,s))};ot($e,s)}))):(le(we,1),{status:a}),L=()=>n(6.4,[o,r,s]),Q=e=>D()?(he(Te,e),{status:!0}):(le(Te,1),{status:a}),D=()=>n(6.9,[o,r,s]),A=async()=>N()?(he(me),new Promise(((e,t)=>{rt(ze,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(le(me,1),{status:a}),N=()=>n(6.9,[o,r,s]),H=e=>F()?(he(Oe,e),{status:!0}):(le(Oe,1),{status:a}),F=()=>n(0,[o,r,s]),V=e=>G()?(he(Ie,e),{status:!0}):(le(Ie,1),{status:a}),G=()=>n(0,[o,r,s]),J=()=>U()?(he(Ee),{status:!0}):(le(Ee,1),{status:a}),U=()=>n(6.9,[o,r,s]),$=e=>j()?(he(We,e),{status:!0}):(le(We,1),{status:a}),j=()=>n(6.1,[o,r,s]),z=e=>K()?(he(Le,e),{status:!0}):(le(Le,1),{status:a}),K=()=>n(6.1,[o,r,s]),X=e=>Y()?(he(Qe,{color:e?.color||e?.color_key}),{status:!0}):(le(Qe,1),{status:a}),Y=()=>n(710,[o,r,s]),Z=e=>ee()?(he(De,e),{status:!0}):(le(De,1),{status:a}),ee=()=>n(6.1,[o,r,s]),te=e=>oe()?(he(Ae,e),{status:!0}):(le(Ae,1),{status:a}),oe=()=>n(0,[o,r,s]),se=e=>re()?(he(Ne,e),{status:!0}):(le(Ne,1),{status:a}),re=()=>n(0,[o,r,s]),pe=e=>ae()?(he(He,e),{status:!0}):(le(He,1),{status:a}),ae=()=>n(6.1,[o,r,s]),ne=e=>ie()?(e.query.length>256&&le(Fe,9),he(Fe,e),{status:!0}):(le(Fe,1),{status:a}),ie=()=>n(6.7,[o,r,s]),ue=e=>de()?(he(Ve,e),{status:!0}):(le(Ve,1),{status:a}),de=()=>n(6.1,[s]),ce=e=>_e()?(he(Ge,e),{status:!0}):(le(Ge,1),{status:a}),_e=()=>n(7.7,[o,r,s]),xe=()=>n(7.8,[o,r,s]),le=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)},ge=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppData");if(!t)return void le("getInitData",2);const o=new URLSearchParams(t);let s={};return o.forEach(((e,t)=>{if(s[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{s[t]=JSON.parse(e)}catch{}})),s},he=(e,t)=>{if(window.TelegramWebviewProxy)window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t));else if(window.external&&"notify"in window.external)window.external.notify(JSON.stringify({eventType:e,eventData:t}));else try{window.parent.postMessage(JSON.stringify({eventType:e,eventData:t}),"*")}catch(e){le("postMessage Iframe",10)}},Se="web_app_invoke_custom_method",be="web_app_open_scan_qr_popup",we="web_app_read_text_from_clipboard",me="web_app_request_phone",ve="web_app_close",fe="web_app_close_scan_qr_popup",ye="web_app_data_send",Ce="web_app_expand",Re="iframe_ready",Pe="iframe_will_reload",Be="web_app_open_invoice",ke="web_app_open_link",Me="web_app_open_popup",qe="web_app_open_tg_link",Te="web_app_ready",Oe="web_app_request_theme",Ie="web_app_request_viewport",Ee="web_app_request_write_access",We="web_app_set_background_color",Le="web_app_set_header_color",Qe="web_app_set_bottom_bar_color",De="web_app_setup_back_button",Ae="web_app_setup_closing_behavior",Ne="web_app_setup_main_button",He="web_app_setup_settings_button",Fe="web_app_switch_inline_query",Ve="web_app_trigger_haptic_feedback",Ge="web_app_setup_swipe_behavior",Je="web_app_share_to_story";var Ue=(e=>(e[e.InvokeCustomMethod=Se]="InvokeCustomMethod",e[e.OpenScanQrPopup=be]="OpenScanQrPopup",e[e.ReadTextFromClipboard=we]="ReadTextFromClipboard",e[e.RequestPhone=me]="RequestPhone",e[e.Close=ve]="Close",e[e.CloseScanQrPopup=fe]="CloseScanQrPopup",e[e.DataSend=ye]="DataSend",e[e.Expand=Ce]="Expand",e[e.IframeReady=Re]="IframeReady",e[e.IframeWillReload=Pe]="IframeWillReload",e[e.OpenInvoice=Be]="OpenInvoice",e[e.OpenLink=ke]="OpenLink",e[e.OpenPopup=Me]="OpenPopup",e[e.OpenTgLink=qe]="OpenTgLink",e[e.Ready=Te]="Ready",e[e.RequestTheme=Oe]="RequestTheme",e[e.RequestViewport=Ie]="RequestViewport",e[e.RequestWriteAccess=Ee]="RequestWriteAccess",e[e.SetBackgroundColor=We]="SetBackgroundColor",e[e.SetHeaderColor=Le]="SetHeaderColor",e[e.SetBottomBarColor=Qe]="SetBottomBarColor",e[e.SetupBackButton=De]="SetupBackButton",e[e.SetupClosingBehavior=Ae]="SetupClosingBehavior",e[e.SetupMainButton=Ne]="SetupMainButton",e[e.SetupSettingsButton=He]="SetupSettingsButton",e[e.SwitchInlineQuery=Fe]="SwitchInlineQuery",e[e.TriggerHapticFeedback=Ve]="TriggerHapticFeedback",e[e.SetupSwipeBehavior=Ge]="SetupSwipeBehavior",e[e.ShareToStory=Je]="ShareToStory",e))(Ue||{});const $e="clipboard_text_received",je="custom_method_invoked",ze="phone_requested",Ke="popup_closed",Xe="qr_text_received",Ye="scan_qr_popup_closed",Ze="theme_changed",et="viewport_changed",tt=((e=new Map)=>({once:(t,o,s=e.get(t),r=e=>{o(e),s&&s.splice(s.indexOf(o)>>>0,1)})=>s?s.push(r):e.set(t,[r]),on:(t,o,s=e.get(t))=>s?s.push(o):e.set(t,[o]),off:(t,o,s=e.get(t))=>s&&o?s.splice(s.indexOf(o)>>>0,1):e.set(t,[]),emit:(t,o,s=e.get(t)||[])=>{for(const e of s)e(o)}}))();(()=>{function e(e,t){e===Ze&&(t.theme_params=d(t.theme_params)),tt.emit(e,t),tt.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const ot=(e,t)=>{tt.on(e,t)},st=(e,t)=>{tt.off(e,t)},rt=(e,t)=>{tt.once(e,t)};var pt=Object.freeze({__proto__:null,off:st,on:ot,once:rt});const at=e.createContext({viewport:void 0,theme:void 0,init:void 0});exports.ContextTwa=at,exports.EventBackButtonPressed="back_button_pressed",exports.EventClipboardTextReceived=$e,exports.EventCustomMethodInvoked=je,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=ze,exports.EventPopupClosed=Ke,exports.EventQrTextReceived=Xe,exports.EventReloadIframe="reload_iframe",exports.EventScanQrPopupClosed=Ye,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged=Ze,exports.EventViewportChanged=et,exports.EventWriteAccessRequested="write_access_requested",exports.Method=Ue,exports.MethodClose=ve,exports.MethodCloseScanQrPopup=fe,exports.MethodDataSend=ye,exports.MethodExpand=Ce,exports.MethodIframeReady=Re,exports.MethodIframeWillReload=Pe,exports.MethodInvokeCustomMethod=Se,exports.MethodOpenInvoice=Be,exports.MethodOpenLink=ke,exports.MethodOpenPopup=Me,exports.MethodOpenScanQrPopup=be,exports.MethodOpenTgLink=qe,exports.MethodReadTextFromClipboard=we,exports.MethodReady=Te,exports.MethodRequestPhone=me,exports.MethodRequestTheme=Oe,exports.MethodRequestViewport=Ie,exports.MethodRequestWriteAccess=Ee,exports.MethodSetBackgroundColor=We,exports.MethodSetBottomBarColor=Qe,exports.MethodSetHeaderColor=Le,exports.MethodSetupBackButton=De,exports.MethodSetupClosingBehavior=Ae,exports.MethodSetupMainButton=Ne,exports.MethodSetupSettingsButton=He,exports.MethodSetupSwipeBehavior=Ge,exports.MethodShareToStory=Je,exports.MethodSwitchInlineQuery=Fe,exports.MethodTriggerHapticFeedback=Ve,exports.NOT_SUPPORTED=a,exports.ProviderTWA=o=>{const[s,r]=t.createStore({viewport:void 0,theme:void 0,init:void 0});return e.createEffect((()=>{const t=()=>{r("init",ge())};t();const o=e=>{t(),r("viewport",{...e,safe_area_bottom:e.is_expanded&&e.is_state_stable?window.outerHeight-e.height:0})};ot(et,o),V();const s=e=>{t(),r("theme",e)};return ot(Ze,s),V(),e.onCleanup((()=>{st(et,o),st(Ze,s)})),()=>{st(et,o),st(Ze,s)}})),at.Provider({value:s,children:o.children})},exports.TG_DESKTOP=r,exports.TG_PHONE=s,exports.TG_WEB=o,exports.bridgeClose=c,exports.bridgeCloseScanQrPopup=x,exports.bridgeDataSend=g,exports.bridgeExpand=S,exports.bridgeGetInitData=ge,exports.bridgeGetThemeParams=d,exports.bridgeIframeReady=w,exports.bridgeIframeWillReload=v,exports.bridgeInvokeCustomMethod=y,exports.bridgeOpenInvoice=R,exports.bridgeOpenLink=B,exports.bridgeOpenPopup=M,exports.bridgeOpenScanQrPopup=T,exports.bridgeOpenTgLink=I,exports.bridgeReadTextFromClipboard=W,exports.bridgeReady=Q,exports.bridgeRequestPhone=A,exports.bridgeRequestTheme=H,exports.bridgeRequestViewport=V,exports.bridgeRequestWriteAccess=J,exports.bridgeSend=he,exports.bridgeSessionStorageGet=({key:e})=>{try{return{is_json:!0,value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(t){return{is_json:!1,value:window.sessionStorage.getItem("__telegram__"+e)??"",status:!0}}},exports.bridgeSessionStorageSet=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(o){return window.sessionStorage.setItem("__telegram__"+e,t),{status:!0}}},exports.bridgeSetBackgroundColor=$,exports.bridgeSetBottomBarColor=X,exports.bridgeSetHeaderColor=z,exports.bridgeSetupBackButton=Z,exports.bridgeSetupClosingBehavior=te,exports.bridgeSetupMainButton=se,exports.bridgeSetupSettingsButton=pe,exports.bridgeSetupSwipeBehavior=ce,exports.bridgeShareToStory=e=>xe()?(he(Je,e),{status:!0}):(le(Je,1),{status:a}),exports.bridgeSwitchInlineQuery=ne,exports.bridgeTriggerHapticFeedback=ue,exports.createIsViewportChanged=()=>{const[t,o]=e.createSignal({height:0,is_expanded:!1,is_state_stable:!1}),s=e=>o(e);return e.onMount((()=>{ot(et,s),he(Ie)})),e.onCleanup((()=>{st(et,s)})),t},exports.debug=le,exports.getAppData=()=>{const e=window.location.hash.slice(1);return new URLSearchParams(e).get("tgWebAppData")},exports.getPlatform=p,exports.listener=pt,exports.sender=he,exports.supportClose=_,exports.supportCloseScanQrPopup=l,exports.supportDataSend=h,exports.supportExpand=b,exports.supportIframeReady=m,exports.supportIframeWillReload=f,exports.supportInvokeCustomMethod=C,exports.supportOpenInvoice=P,exports.supportOpenLink=k,exports.supportOpenPopup=q,exports.supportOpenScanQrPopup=O,exports.supportOpenTgLink=E,exports.supportReadTextFromClipboard=L,exports.supportReady=D,exports.supportRequestPhone=N,exports.supportRequestTheme=F,exports.supportRequestViewport=G,exports.supportRequestWriteAccess=U,exports.supportSessionStorageGet=()=>!0,exports.supportSessionStorageSet=()=>!0,exports.supportSetBackgroundColor=j,exports.supportSetBottomBarColor=Y,exports.supportSetHeaderColor=K,exports.supportSetupBackButton=ee,exports.supportSetupClosingBehavior=oe,exports.supportSetupMainButton=re,exports.supportSetupSettingsButton=ae,exports.supportSetupSwipeBehavior=_e,exports.supportShareToStory=xe,exports.supportSwitchInlineQuery=ie,exports.supportTriggerHapticFeedback=de;
package/solid/index.mjs CHANGED
@@ -1 +1 @@
1
- import e from"debug";import{createSignal as t,onMount as s,onCleanup as a}from"solid-js";const r=()=>{const[e,r]=t({height:0,is_expanded:!1,is_state_stable:!1}),o=e=>r(e);return s((()=>{Ee(Ce,o),he(tt)})),a((()=>{De(Ce,o)})),e},o="web",n="phone",i="desktop",_=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?n:["tdesktop","macos"].includes(t)?i:o},p="not_supported",u=(e,t)=>{const s=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(s)>=e&&-1!==t.indexOf(_())},d=()=>Math.random().toString(36).substring(3,9),c=e=>{var t;if(t=/^\s*#([0-9a-f]{6})\s*$/i.exec(e+=""))return"#"+t[1].toLowerCase();if(t=/^\s*#([0-9a-f])([0-9a-f])([0-9a-f])\s*$/i.exec(e))return("#"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]).toLowerCase();if(t=/^\s*rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)\s*$/.exec(e)){var s=parseInt(t[1]),a=parseInt(t[2]),r=parseInt(t[3]);return"#"+((s<16?"0":"")+s.toString(16))+((a<16?"0":"")+a.toString(16))+((r<16?"0":"")+r.toString(16))}return!1},g=()=>b()?(he(Ge),{status:!0}):(we(Ge,1),{status:p}),b=()=>u(0,[o,i,n]),l=()=>w()?(he(Ve),{status:!0}):(we(Ve,1),{status:p}),w=()=>u(6.4,[n]),m=e=>h()?(he(Qe,e),{status:!0}):(we(Qe,1),{status:p}),h=()=>u(0,[o,i,n]),f=()=>v()?(he(je),{status:!0}):(we(je,1),{status:p}),v=()=>u(0,[n]),y=e=>S()?(he(Fe,e),{status:!0}):(we(Fe,1),{status:p}),S=()=>u(0,[o]),q=()=>x()?(he(Fe),{status:!0}):(we(Fe,1),{status:p}),x=()=>u(0,[o]),k="web_app_invoke_custom_method",P=async e=>O()?(void 0===e.req_id&&(e.req_id=d()),he(k,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),De(ye,a))};Ee(ye,a)}))):(we(k,1),{status:p}),O=()=>u(6.9,[o,i,n]),I=e=>R()?(he(ze,e),{status:!0}):(we(ze,1),{status:p}),R=()=>u(6.1,[o,i,n]),T=e=>N()?(he(Ke,e),{status:!0}):(we(Ke,1),{status:p}),N=()=>u(6.4,[o,i,n]),C=async e=>L()?(e.title.length>64&&we(Xe,3),e.message.length<1&&we(Xe,4),e.message.length>256&&we(Xe,5),e.buttons.length<1&&we(Xe,6),e.buttons.length>3&&we(Xe,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&we(Xe,8),he(Xe,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),De(ke,a)};Ee(ke,a)}))):(we(Xe,1),{status:p}),L=()=>u(6.2,[o,i,n]),W=async e=>E()?(he(Me,e),new Promise(((t,s)=>{Je(Oe,(s=>{e.is_close&&l(),t({status:!0,data:s})})),Je(Ie,(()=>{t({status:"closed"})}))}))):(we(Me,1),{status:p}),E=()=>u(6.4,[n]),D=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),J()?(he(Ye,e),{status:!0}):(we(Ye,1),{status:p})),J=()=>u(7,[o,i,n]),$=async e=>B()?(void 0===e.req_id&&(e.req_id=d()),he(Ae,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),De(ve,a))};Ee(ve,a)}))):(we(Ae,1),{status:p}),B=()=>u(6.4,[o,i,n]),M=()=>A()?(he(Ze),{status:!0}):(we(Ze,1),{status:p}),A=()=>u(6.9,[o,i,n]),U=async()=>G()?(he(Ue),new Promise(((e,t)=>{Je(xe,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(we(Ue,1),{status:p}),G=()=>u(6.9,[o,i,n]),V=()=>Q()?(he(et),{status:!0}):(we(et,1),{status:p}),Q=()=>u(0,[o,i,n]),j=()=>F()?(he(tt),{status:!0}):(we(tt,1),{status:p}),F=()=>u(0,[o,i,n]),H=()=>z()?(he(st),{status:!0}):(we(st,1),{status:p}),z=()=>u(6.9,[o,i,n]),K=e=>X()?(he(at,e),{status:!0}):(we(at,1),{status:p}),X=()=>u(6.1,[o,i,n]),Y=e=>Z()?(he(rt,e),{status:!0}):(we(rt,1),{status:p}),Z=()=>u(6.1,[o,i,n]),ee=e=>te()?(he(ot,e),{status:!0}):(we(ot,1),{status:p}),te=()=>u(6.1,[o,i,n]),se=e=>ae()?(he(nt,e),{status:!0}):(we(nt,1),{status:p}),ae=()=>u(0,[o,i,n]),re=e=>oe()?(he(it,e),{status:!0}):(we(it,1),{status:p}),oe=()=>u(0,[o,i,n]),ne=e=>ie()?(he(_t,e),{status:!0}):(we(_t,1),{status:p}),ie=()=>u(6.1,[o,i,n]),_e=e=>pe()?(e.query.length>256&&we(pt,9),he(pt,e),{status:!0}):(we(pt,1),{status:p}),pe=()=>u(6.7,[o,i,n]),ue=e=>de()?(he(ut,e),{status:!0}):(we(ut,1),{status:p}),de=()=>u(6.1,[n]),ce=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(e){}return{status:!1}},ge=()=>!0,be=({key:e})=>{try{return{value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(e){}return{status:!1}},le=()=>!0;var we=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};const me=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return we("getInitData",2),null;const t=new URLSearchParams(e);let s={};return t.forEach(((e,t)=>{if(s[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{s[t]=JSON.parse(e)}catch{}})),s};var he=(t,s)=>{if(window.TelegramWebviewProxy)window.TelegramWebviewProxy.postEvent(t,JSON.stringify(s));else if(window.external&&"notify"in window.external)window.external.notify(JSON.stringify({eventType:t,eventData:s}));else try{"*",window.parent.postMessage(JSON.stringify({eventType:t,eventData:s}),"*")}catch(t){e("postMessage Iframe",10)}};const fe="back_button_pressed",ve="clipboard_text_received",ye="custom_method_invoked",Se="invoice_closed",qe="main_button_pressed",xe="phone_requested",ke="popup_closed",Pe="reload_iframe",Oe="qr_text_received",Ie="scan_qr_popup_closed",Re="set_custom_style",Te="settings_button_pressed",Ne="theme_changed",Ce="viewport_changed",Le="write_access_requested",We=((e=new Map)=>({once:(t,s,a=e.get(t),r=(e=>{s(e),a&&a.splice(a.indexOf(s)>>>0,1)}))=>a?a.push(r):e.set(t,[r]),on:(t,s,a=e.get(t))=>a?a.push(s):e.set(t,[s]),off:(t,s,a=e.get(t))=>a&&s?a.splice(a.indexOf(s)>>>0,1):e.set(t,[]),emit:(t,s,a=e.get(t)||[])=>{for(const e of a)e(s)}}))();(()=>{function e(e,t){e===Ne&&(t.theme_params=(e=>{"#1c1c1d"==e.bg_color&&e.bg_color==e.secondary_bg_color&&(e.secondary_bg_color="#2c2c2e");const t=window.location.hash.slice(1),s=new URLSearchParams(t);var a=JSON.parse(s.get("tgWebAppThemeParams")??"");for(var r in e){var o=c(e[r]);"string"==typeof o&&(a[r]=o)}return a})(t.theme_params)),We.emit(e,t),We.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const Ee=(e,t)=>{We.on(e,t)},De=(e,t)=>{We.off(e,t)},Je=(e,t)=>{We.once(e,t)};var $e=Object.freeze({__proto__:null,off:De,on:Ee,once:Je});const Be="web_app_invoke_custom_method",Me="web_app_open_scan_qr_popup",Ae="web_app_read_text_from_clipboard",Ue="web_app_request_phone",Ge="web_app_close",Ve="web_app_close_scan_qr_popup",Qe="web_app_data_send",je="web_app_expand",Fe="iframe_ready",He="iframe_will_reload",ze="web_app_open_invoice",Ke="web_app_open_link",Xe="web_app_open_popup",Ye="web_app_open_tg_link",Ze="web_app_ready",et="web_app_request_theme",tt="web_app_request_viewport",st="web_app_request_write_access",at="web_app_set_background_color",rt="web_app_set_header_color",ot="web_app_setup_back_button",nt="web_app_setup_closing_behavior",it="web_app_setup_main_button",_t="web_app_setup_settings_button",pt="web_app_switch_inline_query",ut="web_app_trigger_haptic_feedback",dt="web_app_setup_swipe_behavior";export{fe as EventBackButtonPressed,ve as EventClipboardTextReceived,ye as EventCustomMethodInvoked,Se as EventInvoiceClosed,qe as EventMainButtonPressed,xe as EventPhoneRequested,ke as EventPopupClosed,Oe as EventQrTextReceived,Pe as EventReloadIframe,Ie as EventScanQrPopupClosed,Re as EventSetCustomStyle,Te as EventSettingsButtonPressed,Ne as EventThemeChanged,Ce as EventViewportChanged,Le as EventWriteAccessRequested,Ge as MethodClose,Ve as MethodCloseScanQrPopup,Qe as MethodDataSend,je as MethodExpand,Fe as MethodIframeReady,He as MethodIframeWillReload,Be as MethodInvokeCustomMethod,ze as MethodOpenInvoice,Ke as MethodOpenLink,Xe as MethodOpenPopup,Me as MethodOpenScanQrPopup,Ye as MethodOpenTgLink,Ae as MethodReadTextFromClipboard,Ze as MethodReady,Ue as MethodRequestPhone,et as MethodRequestTheme,tt as MethodRequestViewport,st as MethodRequestWriteAccess,at as MethodSetBackgroundColor,rt as MethodSetHeaderColor,ot as MethodSetupBackButton,nt as MethodSetupClosingBehavior,it as MethodSetupMainButton,_t as MethodSetupSettingsButton,dt as MethodSetupSwipeBehavior,pt as MethodSwitchInlineQuery,ut as MethodTriggerHapticFeedback,p as NOT_SUPPORTED,i as TG_DESKTOP,n as TG_PHONE,o as TG_WEB,g as bridgeClose,l as bridgeCloseScanQrPopup,m as bridgeDataSend,f as bridgeExpand,me as bridgeGetInitData,y as bridgeIframeReady,q as bridgeIframeWillReload,P as bridgeInvokeCustomMethod,I as bridgeOpenInvoice,T as bridgeOpenLink,C as bridgeOpenPopup,W as bridgeOpenScanQrPopup,D as bridgeOpenTgLink,$ as bridgeReadTextFromClipboard,M as bridgeReady,U as bridgeRequestPhone,V as bridgeRequestTheme,j as bridgeRequestViewport,H as bridgeRequestWriteAccess,be as bridgeSessionStorageGet,ce as bridgeSessionStorageSet,K as bridgeSetBackgroundColor,Y as bridgeSetHeaderColor,ee as bridgeSetupBackButton,se as bridgeSetupClosingBehavior,re as bridgeSetupMainButton,ne as bridgeSetupSettingsButton,_e as bridgeSwitchInlineQuery,ue as bridgeTriggerHapticFeedback,r as createIsViewportChanged,we as debug,_ as getPlatform,$e as listener,he as sender,b as supportClose,w as supportCloseScanQrPopup,h as supportDataSend,v as supportExpand,S as supportIframeReady,x as supportIframeWillReload,O as supportInvokeCustomMethod,R as supportOpenInvoice,N as supportOpenLink,L as supportOpenPopup,E as supportOpenScanQrPopup,J as supportOpenTgLink,B as supportReadTextFromClipboard,A as supportReady,G as supportRequestPhone,Q as supportRequestTheme,F as supportRequestViewport,z as supportRequestWriteAccess,le as supportSessionStorageGet,ge as supportSessionStorageSet,X as supportSetBackgroundColor,Z as supportSetHeaderColor,te as supportSetupBackButton,ae as supportSetupClosingBehavior,oe as supportSetupMainButton,ie as supportSetupSettingsButton,pe as supportSwitchInlineQuery,de as supportTriggerHapticFeedback};
1
+ import{createSignal as e,onMount as t,onCleanup as s,createContext as a,createEffect as o}from"solid-js";import{createStore as r}from"solid-js/store";const n=()=>{const[a,o]=e({height:0,is_expanded:!1,is_state_stable:!1}),r=e=>o(e);return t((()=>{St(wt,r),Re($e)})),s((()=>{vt(wt,r)})),a},i="web",p="phone",u="desktop",_=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?p:["tdesktop","macos"].includes(t)?u:i},d="not_supported",c=(e,t)=>{const s=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(s?.replace(".",""))>=Number(String(e)?.replace(".",""))&&-1!==t.indexOf(_())},g=()=>Math.random().toString(36).substring(3,9),l=e=>{var t;if(t=/^\s*#([0-9a-f]{6})\s*$/i.exec(e+=""))return"#"+t[1].toLowerCase();if(t=/^\s*#([0-9a-f])([0-9a-f])([0-9a-f])\s*$/i.exec(e))return("#"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]).toLowerCase();if(t=/^\s*rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)\s*$/.exec(e)){var s=parseInt(t[1]),a=parseInt(t[2]),o=parseInt(t[3]);return"#"+((s<16?"0":"")+s.toString(16))+((a<16?"0":"")+a.toString(16))+((o<16?"0":"")+o.toString(16))}return!1},b=e=>{const t=window.location.hash.slice(1),s=new URLSearchParams(t),a=JSON.parse(s.get("tgWebAppThemeParams")??""),o=e||a;for(var r of Object.keys(o)){var n=l(o[r]);"string"==typeof n&&(o[r]=n)}return"#1c1c1d"==o?.bg_color&&o?.bg_color==o?.secondary_bg_color&&(o.secondary_bg_color="#2c2c2e"),o},w=e=>m()?(Re(Ie,e),{status:!0}):(qe(Ie,1),{status:d}),m=()=>c(0,[i,u,p]),h=e=>S()?(Re(Te,e),{status:!0}):(qe(Te,1),{status:d}),S=()=>c(6.4,[p]),v=e=>f()?(Re(Le,e),{status:!0}):(qe(Le,1),{status:d}),f=()=>c(0,[i,u,p]),y=e=>k()?(Re(We,e),{status:!0}):(qe(We,1),{status:d}),k=()=>c(0,[p]),q=e=>P()?(Re(Ne,e),{status:!0}):(qe(Ne,1),{status:d}),P=()=>c(0,[i]),R=()=>O()?(Re(Ne),{status:!0}):(qe(Ne,1),{status:d}),O=()=>c(0,[i]),x=async e=>B()?(void 0===e.req_id&&(e.req_id=g()),Re(Oe,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),vt(rt,a))};St(rt,a)}))):(qe(Oe,1),{status:d}),B=()=>c(6.9,[i,u,p]),C=e=>I()?(Re(Ee,e),{status:!0}):(qe(Ee,1),{status:d}),I=()=>c(6.1,[i,u,p]),T=e=>L()?(Re(Me,e),{status:!0}):(qe(Me,1),{status:d}),L=()=>c(6.4,[i,u,p]),W=async e=>N()?(e.title.length>64&&qe(Qe,3),e.message.length<1&&qe(Qe,4),e.message.length>256&&qe(Qe,5),e.buttons.length<1&&qe(Qe,6),e.buttons.length>3&&qe(Qe,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&qe(Qe,8),Re(Qe,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),vt(ut,a)};St(ut,a)}))):(qe(Qe,1),{status:d}),N=()=>c(6.2,[i,u,p]),D=async e=>E()?(Re(xe,e),new Promise(((t,s)=>{ft(dt,(s=>{e.is_close&&h(),t({status:!0,data:s})})),ft(ct,(()=>{t({status:"closed"})}))}))):(qe(xe,1),{status:d}),E=()=>c(6.4,[p]),M=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),Q()?(Re(Ae,e),{status:!0}):(qe(Ae,1),{status:d})),Q=()=>c(7,[i,u,p]),A=async e=>H()?(e||(e={req_id:void 0}),void 0===e.req_id&&(e.req_id=g()),Re(Be,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e?.req_id&&(t({status:!0,data:s}),vt(ot,a))};St(ot,a)}))):(qe(Be,1),{status:d}),H=()=>c(6.4,[i,u,p]),J=e=>$()?(Re(He,e),{status:!0}):(qe(He,1),{status:d}),$=()=>c(6.9,[i,u,p]),j=async()=>F()?(Re(Ce),new Promise(((e,t)=>{ft(pt,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(qe(Ce,1),{status:d}),F=()=>c(6.9,[i,u,p]),U=e=>V()?(Re(Je,e),{status:!0}):(qe(Je,1),{status:d}),V=()=>c(0,[i,u,p]),G=e=>z()?(Re($e,e),{status:!0}):(qe($e,1),{status:d}),z=()=>c(0,[i,u,p]),K=()=>X()?(Re(je),{status:!0}):(qe(je,1),{status:d}),X=()=>c(6.9,[i,u,p]),Y=e=>Z()?(Re(Fe,e),{status:!0}):(qe(Fe,1),{status:d}),Z=()=>c(6.1,[i,u,p]),ee=e=>te()?(Re(Ue,e),{status:!0}):(qe(Ue,1),{status:d}),te=()=>c(6.1,[i,u,p]),se=e=>ae()?(Re(Ve,{color:e?.color||e?.color_key}),{status:!0}):(qe(Ve,1),{status:d}),ae=()=>c(710,[i,u,p]),oe=e=>re()?(Re(Ge,e),{status:!0}):(qe(Ge,1),{status:d}),re=()=>c(6.1,[i,u,p]),ne=e=>ie()?(Re(ze,e),{status:!0}):(qe(ze,1),{status:d}),ie=()=>c(0,[i,u,p]),pe=e=>ue()?(Re(Ke,e),{status:!0}):(qe(Ke,1),{status:d}),ue=()=>c(0,[i,u,p]),_e=e=>de()?(Re(Xe,e),{status:!0}):(qe(Xe,1),{status:d}),de=()=>c(6.1,[i,u,p]),ce=e=>ge()?(e.query.length>256&&qe(Ye,9),Re(Ye,e),{status:!0}):(qe(Ye,1),{status:d}),ge=()=>c(6.7,[i,u,p]),le=e=>be()?(Re(Ze,e),{status:!0}):(qe(Ze,1),{status:d}),be=()=>c(6.1,[p]),we=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(s){return window.sessionStorage.setItem("__telegram__"+e,t),{status:!0}}},me=()=>!0,he=({key:e})=>{try{return{is_json:!0,value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(t){return{is_json:!1,value:window.sessionStorage.getItem("__telegram__"+e)??"",status:!0}}},Se=()=>!0,ve=e=>fe()?(Re(et,e),{status:!0}):(qe(et,1),{status:d}),fe=()=>c(7.7,[i,u,p]),ye=e=>ke()?(Re(tt,e),{status:!0}):(qe(tt,1),{status:d}),ke=()=>c(7.8,[i,u,p]),qe=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)},Pe=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppData");if(!t)return void qe("getInitData",2);const s=new URLSearchParams(t);let a={};return s.forEach(((e,t)=>{if(a[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{a[t]=JSON.parse(e)}catch{}})),a},Re=(e,t)=>{if(window.TelegramWebviewProxy)window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t));else if(window.external&&"notify"in window.external)window.external.notify(JSON.stringify({eventType:e,eventData:t}));else try{window.parent.postMessage(JSON.stringify({eventType:e,eventData:t}),"*")}catch(e){qe("postMessage Iframe",10)}},Oe="web_app_invoke_custom_method",xe="web_app_open_scan_qr_popup",Be="web_app_read_text_from_clipboard",Ce="web_app_request_phone",Ie="web_app_close",Te="web_app_close_scan_qr_popup",Le="web_app_data_send",We="web_app_expand",Ne="iframe_ready",De="iframe_will_reload",Ee="web_app_open_invoice",Me="web_app_open_link",Qe="web_app_open_popup",Ae="web_app_open_tg_link",He="web_app_ready",Je="web_app_request_theme",$e="web_app_request_viewport",je="web_app_request_write_access",Fe="web_app_set_background_color",Ue="web_app_set_header_color",Ve="web_app_set_bottom_bar_color",Ge="web_app_setup_back_button",ze="web_app_setup_closing_behavior",Ke="web_app_setup_main_button",Xe="web_app_setup_settings_button",Ye="web_app_switch_inline_query",Ze="web_app_trigger_haptic_feedback",et="web_app_setup_swipe_behavior",tt="web_app_share_to_story";var st=(e=>(e[e.InvokeCustomMethod=Oe]="InvokeCustomMethod",e[e.OpenScanQrPopup=xe]="OpenScanQrPopup",e[e.ReadTextFromClipboard=Be]="ReadTextFromClipboard",e[e.RequestPhone=Ce]="RequestPhone",e[e.Close=Ie]="Close",e[e.CloseScanQrPopup=Te]="CloseScanQrPopup",e[e.DataSend=Le]="DataSend",e[e.Expand=We]="Expand",e[e.IframeReady=Ne]="IframeReady",e[e.IframeWillReload=De]="IframeWillReload",e[e.OpenInvoice=Ee]="OpenInvoice",e[e.OpenLink=Me]="OpenLink",e[e.OpenPopup=Qe]="OpenPopup",e[e.OpenTgLink=Ae]="OpenTgLink",e[e.Ready=He]="Ready",e[e.RequestTheme=Je]="RequestTheme",e[e.RequestViewport=$e]="RequestViewport",e[e.RequestWriteAccess=je]="RequestWriteAccess",e[e.SetBackgroundColor=Fe]="SetBackgroundColor",e[e.SetHeaderColor=Ue]="SetHeaderColor",e[e.SetBottomBarColor=Ve]="SetBottomBarColor",e[e.SetupBackButton=Ge]="SetupBackButton",e[e.SetupClosingBehavior=ze]="SetupClosingBehavior",e[e.SetupMainButton=Ke]="SetupMainButton",e[e.SetupSettingsButton=Xe]="SetupSettingsButton",e[e.SwitchInlineQuery=Ye]="SwitchInlineQuery",e[e.TriggerHapticFeedback=Ze]="TriggerHapticFeedback",e[e.SetupSwipeBehavior=et]="SetupSwipeBehavior",e[e.ShareToStory=tt]="ShareToStory",e))(st||{});const at="back_button_pressed",ot="clipboard_text_received",rt="custom_method_invoked",nt="invoice_closed",it="main_button_pressed",pt="phone_requested",ut="popup_closed",_t="reload_iframe",dt="qr_text_received",ct="scan_qr_popup_closed",gt="set_custom_style",lt="settings_button_pressed",bt="theme_changed",wt="viewport_changed",mt="write_access_requested",ht=((e=new Map)=>({once:(t,s,a=e.get(t),o=e=>{s(e),a&&a.splice(a.indexOf(s)>>>0,1)})=>a?a.push(o):e.set(t,[o]),on:(t,s,a=e.get(t))=>a?a.push(s):e.set(t,[s]),off:(t,s,a=e.get(t))=>a&&s?a.splice(a.indexOf(s)>>>0,1):e.set(t,[]),emit:(t,s,a=e.get(t)||[])=>{for(const e of a)e(s)}}))();(()=>{function e(e,t){e===bt&&(t.theme_params=b(t.theme_params)),ht.emit(e,t),ht.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const St=(e,t)=>{ht.on(e,t)},vt=(e,t)=>{ht.off(e,t)},ft=(e,t)=>{ht.once(e,t)};var yt=Object.freeze({__proto__:null,off:vt,on:St,once:ft});const kt=()=>{const e=window.location.hash.slice(1);return new URLSearchParams(e).get("tgWebAppData")},qt=a({viewport:void 0,theme:void 0,init:void 0}),Pt=e=>{const[t,a]=r({viewport:void 0,theme:void 0,init:void 0});return o((()=>{const e=()=>{a("init",Pe())};e();const t=t=>{e(),a("viewport",{...t,safe_area_bottom:t.is_expanded&&t.is_state_stable?window.outerHeight-t.height:0})};St(wt,t),G();const o=t=>{e(),a("theme",t)};return St(bt,o),G(),s((()=>{vt(wt,t),vt(bt,o)})),()=>{vt(wt,t),vt(bt,o)}})),qt.Provider({value:t,children:e.children})};export{qt as ContextTwa,at as EventBackButtonPressed,ot as EventClipboardTextReceived,rt as EventCustomMethodInvoked,nt as EventInvoiceClosed,it as EventMainButtonPressed,pt as EventPhoneRequested,ut as EventPopupClosed,dt as EventQrTextReceived,_t as EventReloadIframe,ct as EventScanQrPopupClosed,gt as EventSetCustomStyle,lt as EventSettingsButtonPressed,bt as EventThemeChanged,wt as EventViewportChanged,mt as EventWriteAccessRequested,st as Method,Ie as MethodClose,Te as MethodCloseScanQrPopup,Le as MethodDataSend,We as MethodExpand,Ne as MethodIframeReady,De as MethodIframeWillReload,Oe as MethodInvokeCustomMethod,Ee as MethodOpenInvoice,Me as MethodOpenLink,Qe as MethodOpenPopup,xe as MethodOpenScanQrPopup,Ae as MethodOpenTgLink,Be as MethodReadTextFromClipboard,He as MethodReady,Ce as MethodRequestPhone,Je as MethodRequestTheme,$e as MethodRequestViewport,je as MethodRequestWriteAccess,Fe as MethodSetBackgroundColor,Ve as MethodSetBottomBarColor,Ue as MethodSetHeaderColor,Ge as MethodSetupBackButton,ze as MethodSetupClosingBehavior,Ke as MethodSetupMainButton,Xe as MethodSetupSettingsButton,et as MethodSetupSwipeBehavior,tt as MethodShareToStory,Ye as MethodSwitchInlineQuery,Ze as MethodTriggerHapticFeedback,d as NOT_SUPPORTED,Pt as ProviderTWA,u as TG_DESKTOP,p as TG_PHONE,i as TG_WEB,w as bridgeClose,h as bridgeCloseScanQrPopup,v as bridgeDataSend,y as bridgeExpand,Pe as bridgeGetInitData,b as bridgeGetThemeParams,q as bridgeIframeReady,R as bridgeIframeWillReload,x as bridgeInvokeCustomMethod,C as bridgeOpenInvoice,T as bridgeOpenLink,W as bridgeOpenPopup,D as bridgeOpenScanQrPopup,M as bridgeOpenTgLink,A as bridgeReadTextFromClipboard,J as bridgeReady,j as bridgeRequestPhone,U as bridgeRequestTheme,G as bridgeRequestViewport,K as bridgeRequestWriteAccess,Re as bridgeSend,he as bridgeSessionStorageGet,we as bridgeSessionStorageSet,Y as bridgeSetBackgroundColor,se as bridgeSetBottomBarColor,ee as bridgeSetHeaderColor,oe as bridgeSetupBackButton,ne as bridgeSetupClosingBehavior,pe as bridgeSetupMainButton,_e as bridgeSetupSettingsButton,ve as bridgeSetupSwipeBehavior,ye as bridgeShareToStory,ce as bridgeSwitchInlineQuery,le as bridgeTriggerHapticFeedback,n as createIsViewportChanged,qe as debug,kt as getAppData,_ as getPlatform,yt as listener,Re as sender,m as supportClose,S as supportCloseScanQrPopup,f as supportDataSend,k as supportExpand,P as supportIframeReady,O as supportIframeWillReload,B as supportInvokeCustomMethod,I as supportOpenInvoice,L as supportOpenLink,N as supportOpenPopup,E as supportOpenScanQrPopup,Q as supportOpenTgLink,H as supportReadTextFromClipboard,$ as supportReady,F as supportRequestPhone,V as supportRequestTheme,z as supportRequestViewport,X as supportRequestWriteAccess,Se as supportSessionStorageGet,me as supportSessionStorageSet,Z as supportSetBackgroundColor,ae as supportSetBottomBarColor,te as supportSetHeaderColor,re as supportSetupBackButton,ie as supportSetupClosingBehavior,ue as supportSetupMainButton,de as supportSetupSettingsButton,fe as supportSetupSwipeBehavior,ke as supportShareToStory,ge as supportSwitchInlineQuery,be as supportTriggerHapticFeedback};