@apiteam/twa-bridge 7.7.0-beta.2 → 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()?(A(re),{status:!0}):(Q(re,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]),S=()=>n(6.4,[s,r,o]),v=()=>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]),D=()=>n(7.7,[s,r,o]);var Q=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};var A=(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 G="clipboard_text_received",V="custom_method_invoked",H="phone_requested",J="popup_closed",$="qr_text_received",F="scan_qr_popup_closed",U="theme_changed",j="viewport_changed",z=((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===U&&(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)),z.emit(e,t),z.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const K=(e,t)=>{z.on(e,t)},X=(e,t)=>{z.off(e,t)},Y=(e,t)=>{z.once(e,t)};var Z=Object.freeze({__proto__:null,off:X,on:K,once:Y});const ee="web_app_open_scan_qr_popup",te="web_app_read_text_from_clipboard",se="web_app_request_phone",oe="web_app_close",re="web_app_close_scan_qr_popup",pe="web_app_data_send",ae="web_app_expand",ne="iframe_ready",ie="web_app_open_invoice",ue="web_app_open_link",de="web_app_open_popup",_e="web_app_open_tg_link",ce="web_app_ready",xe="web_app_request_theme",ge="web_app_request_viewport",le="web_app_request_write_access",he="web_app_set_background_color",be="web_app_set_header_color",we="web_app_setup_back_button",me="web_app_setup_closing_behavior",Se="web_app_setup_main_button",ve="web_app_setup_settings_button",fe="web_app_switch_inline_query",ye="web_app_trigger_haptic_feedback",Me="web_app_setup_swipe_behavior";exports.EventBackButtonPressed="back_button_pressed",exports.EventClipboardTextReceived=G,exports.EventCustomMethodInvoked=V,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=H,exports.EventPopupClosed=J,exports.EventQrTextReceived=$,exports.EventReloadIframe="reload_iframe",exports.EventScanQrPopupClosed=F,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged=U,exports.EventViewportChanged=j,exports.EventWriteAccessRequested="write_access_requested",exports.MethodClose=oe,exports.MethodCloseScanQrPopup=re,exports.MethodDataSend=pe,exports.MethodExpand=ae,exports.MethodIframeReady=ne,exports.MethodIframeWillReload="iframe_will_reload",exports.MethodInvokeCustomMethod="web_app_invoke_custom_method",exports.MethodOpenInvoice=ie,exports.MethodOpenLink=ue,exports.MethodOpenPopup=de,exports.MethodOpenScanQrPopup=ee,exports.MethodOpenTgLink=_e,exports.MethodReadTextFromClipboard=te,exports.MethodReady=ce,exports.MethodRequestPhone=se,exports.MethodRequestTheme=xe,exports.MethodRequestViewport=ge,exports.MethodRequestWriteAccess=le,exports.MethodSetBackgroundColor=he,exports.MethodSetHeaderColor=be,exports.MethodSetupBackButton=we,exports.MethodSetupClosingBehavior=me,exports.MethodSetupMainButton=Se,exports.MethodSetupSettingsButton=ve,exports.MethodSetupSwipeBehavior=Me,exports.MethodSwitchInlineQuery=fe,exports.MethodTriggerHapticFeedback=ye,exports.NOT_SUPPORTED=a,exports.TG_DESKTOP=r,exports.TG_PHONE=o,exports.TG_WEB=s,exports.bridgeClose=()=>d()?(A(oe),{status:!0}):(Q(oe,1),{status:a}),exports.bridgeCloseScanQrPopup=_,exports.bridgeDataSend=e=>x()?(A(pe,e),{status:!0}):(Q(pe,1),{status:a}),exports.bridgeExpand=()=>g()?(A(ae),{status:!0}):(Q(ae,1),{status:a}),exports.bridgeGetInitData=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return Q("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()?(A(ne,e),{status:!0}):(Q(ne,1),{status:a}),exports.bridgeIframeWillReload=()=>h()?(A(ne),{status:!0}):(Q(ne,1),{status:a}),exports.bridgeInvokeCustomMethod=async e=>w()?(void 0===e.req_id&&(e.req_id=i()),A(b,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),X(V,o))};K(V,o)}))):(Q(b,1),{status:a}),exports.bridgeOpenInvoice=e=>m()?(A(ie,e),{status:!0}):(Q(ie,1),{status:a}),exports.bridgeOpenLink=e=>S()?(A(ue,e),{status:!0}):(Q(ue,1),{status:a}),exports.bridgeOpenPopup=async e=>v()?(e.title.length>64&&Q(de,3),e.message.length<1&&Q(de,4),e.message.length>256&&Q(de,5),e.buttons.length<1&&Q(de,6),e.buttons.length>3&&Q(de,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&Q(de,8),A(de,e),new Promise(((t,s)=>{const o=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),X(J,o)};K(J,o)}))):(Q(de,1),{status:a}),exports.bridgeOpenScanQrPopup=async e=>f()?(A(ee,e),new Promise(((t,s)=>{Y($,(s=>{e.is_close&&_(),t({status:!0,data:s})})),Y(F,(()=>{t({status:"closed"})}))}))):(Q(ee,1),{status:a}),exports.bridgeOpenTgLink=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),y()?(A(_e,e),{status:!0}):(Q(_e,1),{status:a})),exports.bridgeReadTextFromClipboard=async e=>M()?(void 0===e.req_id&&(e.req_id=i()),A(te,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),X(G,o))};K(G,o)}))):(Q(te,1),{status:a}),exports.bridgeReady=()=>P()?(A(ce),{status:!0}):(Q(ce,1),{status:a}),exports.bridgeRequestPhone=async()=>q()?(A(se),new Promise(((e,t)=>{Y(H,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(Q(se,1),{status:a}),exports.bridgeRequestTheme=()=>R()?(A(xe),{status:!0}):(Q(xe,1),{status:a}),exports.bridgeRequestViewport=()=>k()?(A(ge),{status:!0}):(Q(ge,1),{status:a}),exports.bridgeRequestWriteAccess=()=>C()?(A(le),{status:!0}):(Q(le,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()?(A(he,e),{status:!0}):(Q(he,1),{status:a}),exports.bridgeSetHeaderColor=e=>E()?(A(be,e),{status:!0}):(Q(be,1),{status:a}),exports.bridgeSetupBackButton=e=>T()?(A(we,e),{status:!0}):(Q(we,1),{status:a}),exports.bridgeSetupClosingBehavior=e=>I()?(A(me,e),{status:!0}):(Q(me,1),{status:a}),exports.bridgeSetupMainButton=e=>B()?(A(Se,e),{status:!0}):(Q(Se,1),{status:a}),exports.bridgeSetupSettingsButton=e=>W()?(A(ve,e),{status:!0}):(Q(ve,1),{status:a}),exports.bridgeSetupSwipeBehavior=e=>D()?(A(Me,e),{status:!0}):(Q(Me,1),{status:a}),exports.bridgeSwitchInlineQuery=e=>L()?(e.query.length>256&&Q(fe,9),A(fe,e),{status:!0}):(Q(fe,1),{status:a}),exports.bridgeTriggerHapticFeedback=e=>N()?(A(ye,e),{status:!0}):(Q(ye,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((()=>{K(j,o),A(ge)})),t.onCleanup((()=>{X(j,o)})),e},exports.debug=Q,exports.getPlatform=p,exports.listener=Z,exports.sender=A,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=S,exports.supportOpenPopup=v,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.supportSetupSwipeBehavior=D,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((()=>{De(We,o),ve(at)})),a((()=>{Je(We,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()?(ve(Qe),{status:!0}):(he(Qe,1),{status:p}),b=()=>u(0,[o,i,n]),l=()=>w()?(ve(je),{status:!0}):(he(je,1),{status:p}),w=()=>u(6.4,[n]),m=e=>h()?(ve(Fe,e),{status:!0}):(he(Fe,1),{status:p}),h=()=>u(0,[o,i,n]),f=()=>v()?(ve(He),{status:!0}):(he(He,1),{status:p}),v=()=>u(0,[n]),S=e=>y()?(ve(ze,e),{status:!0}):(he(ze,1),{status:p}),y=()=>u(0,[o]),q=()=>x()?(ve(ze),{status:!0}):(he(ze,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()),ve(k,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),Je(qe,a))};De(qe,a)}))):(he(k,1),{status:p}),O=()=>u(6.9,[o,i,n]),I=e=>R()?(ve(Xe,e),{status:!0}):(he(Xe,1),{status:p}),R=()=>u(6.1,[o,i,n]),T=e=>N()?(ve(Ye,e),{status:!0}):(he(Ye,1),{status:p}),N=()=>u(6.4,[o,i,n]),C=async e=>L()?(e.title.length>64&&he(Ze,3),e.message.length<1&&he(Ze,4),e.message.length>256&&he(Ze,5),e.buttons.length<1&&he(Ze,6),e.buttons.length>3&&he(Ze,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&he(Ze,8),ve(Ze,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),Je(Oe,a)};De(Oe,a)}))):(he(Ze,1),{status:p}),L=()=>u(6.2,[o,i,n]),W=async e=>E()?(ve(Ue,e),new Promise(((t,s)=>{$e(Re,(s=>{e.is_close&&l(),t({status:!0,data:s})})),$e(Te,(()=>{t({status:"closed"})}))}))):(he(Ue,1),{status:p}),E=()=>u(6.4,[n]),B=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),D()?(ve(et,e),{status:!0}):(he(et,1),{status:p})),D=()=>u(7,[o,i,n]),J=async e=>$()?(void 0===e.req_id&&(e.req_id=d()),ve(Ge,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),Je(ye,a))};De(ye,a)}))):(he(Ge,1),{status:p}),$=()=>u(6.4,[o,i,n]),M=()=>A()?(ve(tt),{status:!0}):(he(tt,1),{status:p}),A=()=>u(6.9,[o,i,n]),U=async()=>G()?(ve(Ve),new Promise(((e,t)=>{$e(Pe,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(he(Ve,1),{status:p}),G=()=>u(6.9,[o,i,n]),V=()=>Q()?(ve(st),{status:!0}):(he(st,1),{status:p}),Q=()=>u(0,[o,i,n]),j=()=>F()?(ve(at),{status:!0}):(he(at,1),{status:p}),F=()=>u(0,[o,i,n]),H=()=>z()?(ve(rt),{status:!0}):(he(rt,1),{status:p}),z=()=>u(6.9,[o,i,n]),K=e=>X()?(ve(ot,e),{status:!0}):(he(ot,1),{status:p}),X=()=>u(6.1,[o,i,n]),Y=e=>Z()?(ve(nt,e),{status:!0}):(he(nt,1),{status:p}),Z=()=>u(6.1,[o,i,n]),ee=e=>te()?(ve(it,e),{status:!0}):(he(it,1),{status:p}),te=()=>u(6.1,[o,i,n]),se=e=>ae()?(ve(_t,e),{status:!0}):(he(_t,1),{status:p}),ae=()=>u(0,[o,i,n]),re=e=>oe()?(ve(pt,e),{status:!0}):(he(pt,1),{status:p}),oe=()=>u(0,[o,i,n]),ne=e=>ie()?(ve(ut,e),{status:!0}):(he(ut,1),{status:p}),ie=()=>u(6.1,[o,i,n]),_e=e=>pe()?(e.query.length>256&&he(dt,9),ve(dt,e),{status:!0}):(he(dt,1),{status:p}),pe=()=>u(6.7,[o,i,n]),ue=e=>de()?(ve(ct,e),{status:!0}):(he(ct,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,we=e=>me()?(ve(gt,e),{status:!0}):(he(gt,1),{status:p}),me=()=>u(7.7,[o,i,n]);var he=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};const fe=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return he("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 ve=(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 Se="back_button_pressed",ye="clipboard_text_received",qe="custom_method_invoked",xe="invoice_closed",ke="main_button_pressed",Pe="phone_requested",Oe="popup_closed",Ie="reload_iframe",Re="qr_text_received",Te="scan_qr_popup_closed",Ne="set_custom_style",Ce="settings_button_pressed",Le="theme_changed",We="viewport_changed",Ee="write_access_requested",Be=((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===Le&&(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)),Be.emit(e,t),Be.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const De=(e,t)=>{Be.on(e,t)},Je=(e,t)=>{Be.off(e,t)},$e=(e,t)=>{Be.once(e,t)};var Me=Object.freeze({__proto__:null,off:Je,on:De,once:$e});const Ae="web_app_invoke_custom_method",Ue="web_app_open_scan_qr_popup",Ge="web_app_read_text_from_clipboard",Ve="web_app_request_phone",Qe="web_app_close",je="web_app_close_scan_qr_popup",Fe="web_app_data_send",He="web_app_expand",ze="iframe_ready",Ke="iframe_will_reload",Xe="web_app_open_invoice",Ye="web_app_open_link",Ze="web_app_open_popup",et="web_app_open_tg_link",tt="web_app_ready",st="web_app_request_theme",at="web_app_request_viewport",rt="web_app_request_write_access",ot="web_app_set_background_color",nt="web_app_set_header_color",it="web_app_setup_back_button",_t="web_app_setup_closing_behavior",pt="web_app_setup_main_button",ut="web_app_setup_settings_button",dt="web_app_switch_inline_query",ct="web_app_trigger_haptic_feedback",gt="web_app_setup_swipe_behavior";export{Se as EventBackButtonPressed,ye as EventClipboardTextReceived,qe as EventCustomMethodInvoked,xe as EventInvoiceClosed,ke as EventMainButtonPressed,Pe as EventPhoneRequested,Oe as EventPopupClosed,Re as EventQrTextReceived,Ie as EventReloadIframe,Te as EventScanQrPopupClosed,Ne as EventSetCustomStyle,Ce as EventSettingsButtonPressed,Le as EventThemeChanged,We as EventViewportChanged,Ee as EventWriteAccessRequested,Qe as MethodClose,je as MethodCloseScanQrPopup,Fe as MethodDataSend,He as MethodExpand,ze as MethodIframeReady,Ke as MethodIframeWillReload,Ae as MethodInvokeCustomMethod,Xe as MethodOpenInvoice,Ye as MethodOpenLink,Ze as MethodOpenPopup,Ue as MethodOpenScanQrPopup,et as MethodOpenTgLink,Ge as MethodReadTextFromClipboard,tt as MethodReady,Ve as MethodRequestPhone,st as MethodRequestTheme,at as MethodRequestViewport,rt as MethodRequestWriteAccess,ot as MethodSetBackgroundColor,nt as MethodSetHeaderColor,it as MethodSetupBackButton,_t as MethodSetupClosingBehavior,pt as MethodSetupMainButton,ut as MethodSetupSettingsButton,gt as MethodSetupSwipeBehavior,dt as MethodSwitchInlineQuery,ct 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,fe as bridgeGetInitData,S as bridgeIframeReady,q as bridgeIframeWillReload,P as bridgeInvokeCustomMethod,I as bridgeOpenInvoice,T as bridgeOpenLink,C as bridgeOpenPopup,W as bridgeOpenScanQrPopup,B as bridgeOpenTgLink,J 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,we as bridgeSetupSwipeBehavior,_e as bridgeSwitchInlineQuery,ue as bridgeTriggerHapticFeedback,r as createIsViewportChanged,he as debug,_ as getPlatform,Me as listener,ve as sender,b as supportClose,w as supportCloseScanQrPopup,h as supportDataSend,v as supportExpand,y as supportIframeReady,x as supportIframeWillReload,O as supportInvokeCustomMethod,R as supportOpenInvoice,N as supportOpenLink,L as supportOpenPopup,E as supportOpenScanQrPopup,D as supportOpenTgLink,$ 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,me as supportSetupSwipeBehavior,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};