@apiteam/twa-bridge 7.0.0-beta.2 → 7.0.0-beta.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apiteam/twa-bridge",
3
- "version": "7.0.0-beta.2",
3
+ "version": "7.0.0-beta.4",
4
4
  "description": "Telegram bridge",
5
5
  "license": "MIT",
6
6
  "types": "index.ts",
package/react/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("solid"),t=require("utils");const s="web",o="phone",r="desktop",p="not_supported",a=(e,t)=>{const p=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(p)>=e&&-1!==t.indexOf((()=>{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})())},n=()=>Math.random().toString(36).substring(3,9),u=()=>a(0,[s,r,o]),i=()=>d()?(D(J),{status:!0}):(Q(J,1),{status:p}),d=()=>a(6.4,[o]),_=()=>a(0,[s,r,o]),c=()=>a(0,[o]),x=()=>a(0,[s]),l=()=>a(0,[s]),h="web_app_invoke_custom_method",g=()=>a(6.9,[s,r,o]),b=()=>a(6.1,[s,r,o]),w=()=>a(6.4,[s,r,o]),m=()=>a(6.2,[s,r,o]),v=()=>a(6.4,[o]),S=()=>a(7,[s,r,o]),f=()=>a(6.4,[s,r,o]),P=()=>a(6.9,[s,r,o]),q=()=>a(6.9,[s,r,o]),M=()=>a(0,[s,r,o]),R=()=>a(0,[s,r,o]),k=()=>a(6.9,[s,r,o]),y=()=>a(6.1,[s,r,o]),C=()=>a(6.1,[s,r,o]),E=()=>a(6.1,[s,r,o]),T=()=>a(0,[s,r,o]),O=()=>a(0,[s,r,o]),B=()=>a(6.1,[s,r,o]),I=()=>a(6.7,[s,r,o]),W=()=>a(6.1,[o]);var Q=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};var D=(e,t)=>{window.TelegramWebviewProxy?window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t)):window.external&&"notify"in window.external&&window.external.notify(JSON.stringify({eventType:e,eventData:t}))};const L=((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 s(s,o){s===e.EventThemeChanged&&(o.theme_params=t.getThemeParams(o.theme_params)),L.emit(s,o),L.emit("*",{name:s,data:o})}window.TelegramGameProxy_receiveEvent=s,window.Telegram={WebView:{receiveEvent:s}},window.TelegramGameProxy={receiveEvent:s}})();const N=(e,t)=>{L.on(e,t)},A=(e,t)=>{L.off(e,t)},H=(e,t)=>{L.once(e,t)};var V=Object.freeze({__proto__:null,off:A,on:N,once:H});const F="web_app_open_scan_qr_popup",G="web_app_read_text_from_clipboard",U="web_app_request_phone",$="web_app_close",J="web_app_close_scan_qr_popup",j="web_app_data_send",z="web_app_expand",K="iframe_ready",X="web_app_open_invoice",Y="web_app_open_link",Z="web_app_open_popup",ee="web_app_open_tg_link",te="web_app_ready",se="web_app_request_theme",oe="web_app_request_viewport",re="web_app_request_write_access",pe="web_app_set_background_color",ae="web_app_set_header_color",ne="web_app_setup_back_button",ue="web_app_setup_closing_behavior",ie="web_app_setup_main_button",de="web_app_setup_settings_button",_e="web_app_switch_inline_query",ce="web_app_trigger_haptic_feedback",xe="clipboard_text_received",le="custom_method_invoked",he="phone_requested",ge="popup_closed",be="qr_text_received",we="scan_qr_popup_closed";exports.EventBackButtonPressed="back_button_pressed",exports.EventClipboardTextReceived=xe,exports.EventCustomMethodInvoked=le,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=he,exports.EventPopupClosed=ge,exports.EventQrTextReceived=be,exports.EventReloadIframe="reload_iframe",exports.EventScanQrPopupClosed=we,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged="theme_changed",exports.EventViewportChanged="viewport_changed",exports.EventWriteAccessRequested="write_access_requested",exports.MethodClose=$,exports.MethodCloseScanQrPopup=J,exports.MethodDataSend=j,exports.MethodExpand=z,exports.MethodIframeReady=K,exports.MethodIframeWillReload="iframe_will_reload",exports.MethodInvokeCustomMethod="web_app_invoke_custom_method",exports.MethodOpenInvoice=X,exports.MethodOpenLink=Y,exports.MethodOpenPopup=Z,exports.MethodOpenScanQrPopup=F,exports.MethodOpenTgLink=ee,exports.MethodReadTextFromClipboard=G,exports.MethodReady=te,exports.MethodRequestPhone=U,exports.MethodRequestTheme=se,exports.MethodRequestViewport=oe,exports.MethodRequestWriteAccess=re,exports.MethodSetBackgroundColor=pe,exports.MethodSetHeaderColor=ae,exports.MethodSetupBackButton=ne,exports.MethodSetupClosingBehavior=ue,exports.MethodSetupMainButton=ie,exports.MethodSetupSettingsButton=de,exports.MethodSwitchInlineQuery=_e,exports.MethodTriggerHapticFeedback=ce,exports.NOT_SUPPORTED=p,exports.TG_DESKTOP=r,exports.TG_PHONE=o,exports.TG_WEB=s,exports.bridgeClose=()=>u()?(D($),{status:!0}):(Q($,1),{status:p}),exports.bridgeCloseScanQrPopup=i,exports.bridgeDataSend=e=>_()?(D(j,e),{status:!0}):(Q(j,1),{status:p}),exports.bridgeExpand=()=>c()?(D(z),{status:!0}):(Q(z,1),{status:p}),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=>x()?(D(K,e),{status:!0}):(Q(K,1),{status:p}),exports.bridgeIframeWillReload=()=>l()?(D(K),{status:!0}):(Q(K,1),{status:p}),exports.bridgeInvokeCustomMethod=async e=>g()?(void 0===e.req_id&&(e.req_id=n()),D(h,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),A(le,o))};N(le,o)}))):(Q(h,1),{status:p}),exports.bridgeOpenInvoice=e=>b()?(D(X,e),{status:!0}):(Q(X,1),{status:p}),exports.bridgeOpenLink=e=>w()?(D(Y,e),{status:!0}):(Q(Y,1),{status:p}),exports.bridgeOpenPopup=async e=>m()?(e.title.length>64&&Q(Z,3),e.message.length<1&&Q(Z,4),e.message.length>256&&Q(Z,5),e.buttons.length<1&&Q(Z,6),e.buttons.length>3&&Q(Z,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&Q(Z,8),D(Z,e),new Promise(((t,s)=>{const o=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),A(ge,o)};N(ge,o)}))):(Q(Z,1),{status:p}),exports.bridgeOpenScanQrPopup=async e=>v()?(D(F,e),new Promise(((t,s)=>{H(be,(s=>{e.is_close&&i(),t({status:!0,data:s})})),H(we,(()=>{t({status:"closed"})}))}))):(Q(F,1),{status:p}),exports.bridgeOpenTgLink=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),S()?(D(ee,e),{status:!0}):(Q(ee,1),{status:p})),exports.bridgeReadTextFromClipboard=async e=>f()?(void 0===e.req_id&&(e.req_id=n()),D(G,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),A(xe,o))};N(xe,o)}))):(Q(G,1),{status:p}),exports.bridgeReady=()=>P()?(D(te),{status:!0}):(Q(te,1),{status:p}),exports.bridgeRequestPhone=async()=>q()?(D(U),new Promise(((e,t)=>{H(he,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(Q(U,1),{status:p}),exports.bridgeRequestTheme=()=>M()?(D(se),{status:!0}):(Q(se,1),{status:p}),exports.bridgeRequestViewport=()=>R()?(D(oe),{status:!0}):(Q(oe,1),{status:p}),exports.bridgeRequestWriteAccess=()=>k()?(D(re),{status:!0}):(Q(re,1),{status:p}),exports.bridgeSetBackgroundColor=e=>y()?(D(pe,e),{status:!0}):(Q(pe,1),{status:p}),exports.bridgeSetHeaderColor=e=>C()?(D(ae,e),{status:!0}):(Q(ae,1),{status:p}),exports.bridgeSetupBackButton=e=>E()?(D(ne,e),{status:!0}):(Q(ne,1),{status:p}),exports.bridgeSetupClosingBehavior=e=>T()?(D(ue,e),{status:!0}):(Q(ue,1),{status:p}),exports.bridgeSetupMainButton=e=>O()?(D(ie,e),{status:!0}):(Q(ie,1),{status:p}),exports.bridgeSetupSettingsButton=e=>B()?(D(de,e),{status:!0}):(Q(de,1),{status:p}),exports.bridgeSwitchInlineQuery=e=>I()?(e.query.length>256&&Q(_e,9),D(_e,e),{status:!0}):(Q(_e,1),{status:p}),exports.bridgeTriggerHapticFeedback=e=>W()?(D(ce,e),{status:!0}):(Q(ce,1),{status:p}),exports.debug=Q,exports.listener=V,exports.sender=D,exports.supportClose=u,exports.supportCloseScanQrPopup=d,exports.supportDataSend=_,exports.supportExpand=c,exports.supportIframeReady=x,exports.supportIframeWillReload=l,exports.supportInvokeCustomMethod=g,exports.supportOpenInvoice=b,exports.supportOpenLink=w,exports.supportOpenPopup=m,exports.supportOpenScanQrPopup=v,exports.supportOpenTgLink=S,exports.supportReadTextFromClipboard=f,exports.supportReady=P,exports.supportRequestPhone=q,exports.supportRequestTheme=M,exports.supportRequestViewport=R,exports.supportRequestWriteAccess=k,exports.supportSetBackgroundColor=y,exports.supportSetHeaderColor=C,exports.supportSetupBackButton=E,exports.supportSetupClosingBehavior=T,exports.supportSetupMainButton=O,exports.supportSetupSettingsButton=B,exports.supportSwitchInlineQuery=I,exports.supportTriggerHapticFeedback=W;
1
+ "use strict";var e=require("utils");const t="web",s="phone",o="desktop",r="not_supported",p=(e,r)=>{const p=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(p)>=e&&-1!==r.indexOf((()=>{const e=window.location.hash.slice(1),r=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(r)?s:["tdesktop","macos"].includes(r)?o:t})())},a=()=>Math.random().toString(36).substring(3,9),n=()=>p(0,[t,o,s]),u=()=>i()?(Q(Z),{status:!0}):(W(Z,1),{status:r}),i=()=>p(6.4,[s]),d=()=>p(0,[t,o,s]),_=()=>p(0,[s]),c=()=>p(0,[t]),x=()=>p(0,[t]),l="web_app_invoke_custom_method",g=()=>p(6.9,[t,o,s]),h=()=>p(6.1,[t,o,s]),b=()=>p(6.4,[t,o,s]),w=()=>p(6.2,[t,o,s]),m=()=>p(6.4,[s]),v=()=>p(7,[t,o,s]),S=()=>p(6.4,[t,o,s]),f=()=>p(6.9,[t,o,s]),P=()=>p(6.9,[t,o,s]),M=()=>p(0,[t,o,s]),q=()=>p(0,[t,o,s]),R=()=>p(6.9,[t,o,s]),k=()=>p(6.1,[t,o,s]),y=()=>p(6.1,[t,o,s]),C=()=>p(6.1,[t,o,s]),E=()=>p(0,[t,o,s]),T=()=>p(0,[t,o,s]),O=()=>p(6.1,[t,o,s]),B=()=>p(6.7,[t,o,s]),I=()=>p(6.1,[s]);var W=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};var Q=(e,t)=>{window.TelegramWebviewProxy?window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t)):window.external&&"notify"in window.external&&window.external.notify(JSON.stringify({eventType:e,eventData:t}))};const D="clipboard_text_received",L="custom_method_invoked",N="phone_requested",A="popup_closed",H="qr_text_received",V="scan_qr_popup_closed",F="theme_changed",G=((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 t(t,s){t===F&&(s.theme_params=e.getThemeParams(s.theme_params)),G.emit(t,s),G.emit("*",{name:t,data:s})}window.TelegramGameProxy_receiveEvent=t,window.Telegram={WebView:{receiveEvent:t}},window.TelegramGameProxy={receiveEvent:t}})();const U=(e,t)=>{G.on(e,t)},$=(e,t)=>{G.off(e,t)},J=(e,t)=>{G.once(e,t)};var j=Object.freeze({__proto__:null,off:$,on:U,once:J});const z="web_app_open_scan_qr_popup",K="web_app_read_text_from_clipboard",X="web_app_request_phone",Y="web_app_close",Z="web_app_close_scan_qr_popup",ee="web_app_data_send",te="web_app_expand",se="iframe_ready",oe="web_app_open_invoice",re="web_app_open_link",pe="web_app_open_popup",ae="web_app_open_tg_link",ne="web_app_ready",ue="web_app_request_theme",ie="web_app_request_viewport",de="web_app_request_write_access",_e="web_app_set_background_color",ce="web_app_set_header_color",xe="web_app_setup_back_button",le="web_app_setup_closing_behavior",ge="web_app_setup_main_button",he="web_app_setup_settings_button",be="web_app_switch_inline_query",we="web_app_trigger_haptic_feedback";exports.EventBackButtonPressed="back_button_pressed",exports.EventClipboardTextReceived=D,exports.EventCustomMethodInvoked=L,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=N,exports.EventPopupClosed=A,exports.EventQrTextReceived=H,exports.EventReloadIframe="reload_iframe",exports.EventScanQrPopupClosed=V,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged=F,exports.EventViewportChanged="viewport_changed",exports.EventWriteAccessRequested="write_access_requested",exports.MethodClose=Y,exports.MethodCloseScanQrPopup=Z,exports.MethodDataSend=ee,exports.MethodExpand=te,exports.MethodIframeReady=se,exports.MethodIframeWillReload="iframe_will_reload",exports.MethodInvokeCustomMethod="web_app_invoke_custom_method",exports.MethodOpenInvoice=oe,exports.MethodOpenLink=re,exports.MethodOpenPopup=pe,exports.MethodOpenScanQrPopup=z,exports.MethodOpenTgLink=ae,exports.MethodReadTextFromClipboard=K,exports.MethodReady=ne,exports.MethodRequestPhone=X,exports.MethodRequestTheme=ue,exports.MethodRequestViewport=ie,exports.MethodRequestWriteAccess=de,exports.MethodSetBackgroundColor=_e,exports.MethodSetHeaderColor=ce,exports.MethodSetupBackButton=xe,exports.MethodSetupClosingBehavior=le,exports.MethodSetupMainButton=ge,exports.MethodSetupSettingsButton=he,exports.MethodSwitchInlineQuery=be,exports.MethodTriggerHapticFeedback=we,exports.NOT_SUPPORTED=r,exports.TG_DESKTOP=o,exports.TG_PHONE=s,exports.TG_WEB=t,exports.bridgeClose=()=>n()?(Q(Y),{status:!0}):(W(Y,1),{status:r}),exports.bridgeCloseScanQrPopup=u,exports.bridgeDataSend=e=>d()?(Q(ee,e),{status:!0}):(W(ee,1),{status:r}),exports.bridgeExpand=()=>_()?(Q(te),{status:!0}):(W(te,1),{status:r}),exports.bridgeGetInitData=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return W("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=>c()?(Q(se,e),{status:!0}):(W(se,1),{status:r}),exports.bridgeIframeWillReload=()=>x()?(Q(se),{status:!0}):(W(se,1),{status:r}),exports.bridgeInvokeCustomMethod=async e=>g()?(void 0===e.req_id&&(e.req_id=a()),Q(l,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),$(L,o))};U(L,o)}))):(W(l,1),{status:r}),exports.bridgeOpenInvoice=e=>h()?(Q(oe,e),{status:!0}):(W(oe,1),{status:r}),exports.bridgeOpenLink=e=>b()?(Q(re,e),{status:!0}):(W(re,1),{status:r}),exports.bridgeOpenPopup=async e=>w()?(e.title.length>64&&W(pe,3),e.message.length<1&&W(pe,4),e.message.length>256&&W(pe,5),e.buttons.length<1&&W(pe,6),e.buttons.length>3&&W(pe,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&W(pe,8),Q(pe,e),new Promise(((t,s)=>{const o=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),$(A,o)};U(A,o)}))):(W(pe,1),{status:r}),exports.bridgeOpenScanQrPopup=async e=>m()?(Q(z,e),new Promise(((t,s)=>{J(H,(s=>{e.is_close&&u(),t({status:!0,data:s})})),J(V,(()=>{t({status:"closed"})}))}))):(W(z,1),{status:r}),exports.bridgeOpenTgLink=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),v()?(Q(ae,e),{status:!0}):(W(ae,1),{status:r})),exports.bridgeReadTextFromClipboard=async e=>S()?(void 0===e.req_id&&(e.req_id=a()),Q(K,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),$(D,o))};U(D,o)}))):(W(K,1),{status:r}),exports.bridgeReady=()=>f()?(Q(ne),{status:!0}):(W(ne,1),{status:r}),exports.bridgeRequestPhone=async()=>P()?(Q(X),new Promise(((e,t)=>{J(N,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(W(X,1),{status:r}),exports.bridgeRequestTheme=()=>M()?(Q(ue),{status:!0}):(W(ue,1),{status:r}),exports.bridgeRequestViewport=()=>q()?(Q(ie),{status:!0}):(W(ie,1),{status:r}),exports.bridgeRequestWriteAccess=()=>R()?(Q(de),{status:!0}):(W(de,1),{status:r}),exports.bridgeSetBackgroundColor=e=>k()?(Q(_e,e),{status:!0}):(W(_e,1),{status:r}),exports.bridgeSetHeaderColor=e=>y()?(Q(ce,e),{status:!0}):(W(ce,1),{status:r}),exports.bridgeSetupBackButton=e=>C()?(Q(xe,e),{status:!0}):(W(xe,1),{status:r}),exports.bridgeSetupClosingBehavior=e=>E()?(Q(le,e),{status:!0}):(W(le,1),{status:r}),exports.bridgeSetupMainButton=e=>T()?(Q(ge,e),{status:!0}):(W(ge,1),{status:r}),exports.bridgeSetupSettingsButton=e=>O()?(Q(he,e),{status:!0}):(W(he,1),{status:r}),exports.bridgeSwitchInlineQuery=e=>B()?(e.query.length>256&&W(be,9),Q(be,e),{status:!0}):(W(be,1),{status:r}),exports.bridgeTriggerHapticFeedback=e=>I()?(Q(we,e),{status:!0}):(W(we,1),{status:r}),exports.debug=W,exports.listener=j,exports.sender=Q,exports.supportClose=n,exports.supportCloseScanQrPopup=i,exports.supportDataSend=d,exports.supportExpand=_,exports.supportIframeReady=c,exports.supportIframeWillReload=x,exports.supportInvokeCustomMethod=g,exports.supportOpenInvoice=h,exports.supportOpenLink=b,exports.supportOpenPopup=w,exports.supportOpenScanQrPopup=m,exports.supportOpenTgLink=v,exports.supportReadTextFromClipboard=S,exports.supportReady=f,exports.supportRequestPhone=P,exports.supportRequestTheme=M,exports.supportRequestViewport=q,exports.supportRequestWriteAccess=R,exports.supportSetBackgroundColor=k,exports.supportSetHeaderColor=y,exports.supportSetupBackButton=C,exports.supportSetupClosingBehavior=E,exports.supportSetupMainButton=T,exports.supportSetupSettingsButton=O,exports.supportSwitchInlineQuery=B,exports.supportTriggerHapticFeedback=I;
package/react/index.mjs CHANGED
@@ -1 +1 @@
1
- import{EventThemeChanged as e}from"solid";import{getThemeParams as t}from"utils";const s="web",a="phone",o="desktop",n="not_supported",r=(e,t)=>{const n=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(n)>=e&&-1!==t.indexOf((()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?a:["tdesktop","macos"].includes(t)?o:s})())},i=()=>Math.random().toString(36).substring(3,9),_=()=>p()?(pe(fe),{status:!0}):(ie(fe,1),{status:n}),p=()=>r(0,[s,o,a]),u=()=>d()?(pe(ve),{status:!0}):(ie(ve,1),{status:n}),d=()=>r(6.4,[a]),c=e=>b()?(pe(qe,e),{status:!0}):(ie(qe,1),{status:n}),b=()=>r(0,[s,o,a]),g=()=>l()?(pe(ye),{status:!0}):(ie(ye,1),{status:n}),l=()=>r(0,[a]),w=e=>m()?(pe(Pe,e),{status:!0}):(ie(Pe,1),{status:n}),m=()=>r(0,[s]),h=()=>f()?(pe(Pe),{status:!0}):(ie(Pe,1),{status:n}),f=()=>r(0,[s]),v="web_app_invoke_custom_method",q=async e=>y()?(void 0===e.req_id&&(e.req_id=i()),pe(v,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),ce(Ge,a))};de(Ge,a)}))):(ie(v,1),{status:n}),y=()=>r(6.9,[s,o,a]),P=e=>S()?(pe(ke,e),{status:!0}):(ie(ke,1),{status:n}),S=()=>r(6.1,[s,o,a]),k=e=>x()?(pe(xe,e),{status:!0}):(ie(xe,1),{status:n}),x=()=>r(6.4,[s,o,a]),O=async e=>R()?(e.title.length>64&&ie(Oe,3),e.message.length<1&&ie(Oe,4),e.message.length>256&&ie(Oe,5),e.buttons.length<1&&ie(Oe,6),e.buttons.length>3&&ie(Oe,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&ie(Oe,8),pe(Oe,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),ce(He,a)};de(He,a)}))):(ie(Oe,1),{status:n}),R=()=>r(6.2,[s,o,a]),T=async e=>E()?(pe(we,e),new Promise(((t,s)=>{be(ze,(s=>{e.is_close&&u(),t({status:!0,data:s})})),be(Ke,(()=>{t({status:"closed"})}))}))):(ie(we,1),{status:n}),E=()=>r(6.4,[a]),C=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),W()?(pe(Re,e),{status:!0}):(ie(Re,1),{status:n})),W=()=>r(7,[s,o,a]),I=async e=>B()?(void 0===e.req_id&&(e.req_id=i()),pe(me,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),ce($e,a))};de($e,a)}))):(ie(me,1),{status:n}),B=()=>r(6.4,[s,o,a]),D=()=>L()?(pe(Te),{status:!0}):(ie(Te,1),{status:n}),L=()=>r(6.9,[s,o,a]),N=async()=>A()?(pe(he),new Promise(((e,t)=>{be(Fe,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(ie(he,1),{status:n}),A=()=>r(6.9,[s,o,a]),M=()=>U()?(pe(Ee),{status:!0}):(ie(Ee,1),{status:n}),U=()=>r(0,[s,o,a]),V=()=>$()?(pe(Ce),{status:!0}):(ie(Ce,1),{status:n}),$=()=>r(0,[s,o,a]),G=()=>J()?(pe(We),{status:!0}):(ie(We,1),{status:n}),J=()=>r(6.9,[s,o,a]),Q=e=>F()?(pe(Ie,e),{status:!0}):(ie(Ie,1),{status:n}),F=()=>r(6.1,[s,o,a]),H=e=>j()?(pe(Be,e),{status:!0}):(ie(Be,1),{status:n}),j=()=>r(6.1,[s,o,a]),z=e=>K()?(pe(De,e),{status:!0}):(ie(De,1),{status:n}),K=()=>r(6.1,[s,o,a]),X=e=>Y()?(pe(Le,e),{status:!0}):(ie(Le,1),{status:n}),Y=()=>r(0,[s,o,a]),Z=e=>ee()?(pe(Ne,e),{status:!0}):(ie(Ne,1),{status:n}),ee=()=>r(0,[s,o,a]),te=e=>se()?(pe(Ae,e),{status:!0}):(ie(Ae,1),{status:n}),se=()=>r(6.1,[s,o,a]),ae=e=>oe()?(e.query.length>256&&ie(Me,9),pe(Me,e),{status:!0}):(ie(Me,1),{status:n}),oe=()=>r(6.7,[s,o,a]),ne=e=>re()?(pe(Ue,e),{status:!0}):(ie(Ue,1),{status:n}),re=()=>r(6.1,[a]);var ie=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};const _e=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return ie("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 pe=(e,t)=>{window.TelegramWebviewProxy?window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t)):window.external&&"notify"in window.external&&window.external.notify(JSON.stringify({eventType:e,eventData:t}))};const ue=((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 s(s,a){s===e&&(a.theme_params=t(a.theme_params)),ue.emit(s,a),ue.emit("*",{name:s,data:a})}window.TelegramGameProxy_receiveEvent=s,window.Telegram={WebView:{receiveEvent:s}},window.TelegramGameProxy={receiveEvent:s}})();const de=(e,t)=>{ue.on(e,t)},ce=(e,t)=>{ue.off(e,t)},be=(e,t)=>{ue.once(e,t)};var ge=Object.freeze({__proto__:null,off:ce,on:de,once:be});const le="web_app_invoke_custom_method",we="web_app_open_scan_qr_popup",me="web_app_read_text_from_clipboard",he="web_app_request_phone",fe="web_app_close",ve="web_app_close_scan_qr_popup",qe="web_app_data_send",ye="web_app_expand",Pe="iframe_ready",Se="iframe_will_reload",ke="web_app_open_invoice",xe="web_app_open_link",Oe="web_app_open_popup",Re="web_app_open_tg_link",Te="web_app_ready",Ee="web_app_request_theme",Ce="web_app_request_viewport",We="web_app_request_write_access",Ie="web_app_set_background_color",Be="web_app_set_header_color",De="web_app_setup_back_button",Le="web_app_setup_closing_behavior",Ne="web_app_setup_main_button",Ae="web_app_setup_settings_button",Me="web_app_switch_inline_query",Ue="web_app_trigger_haptic_feedback",Ve="back_button_pressed",$e="clipboard_text_received",Ge="custom_method_invoked",Je="invoice_closed",Qe="main_button_pressed",Fe="phone_requested",He="popup_closed",je="reload_iframe",ze="qr_text_received",Ke="scan_qr_popup_closed",Xe="set_custom_style",Ye="settings_button_pressed",Ze="theme_changed",et="viewport_changed",tt="write_access_requested";export{Ve as EventBackButtonPressed,$e as EventClipboardTextReceived,Ge as EventCustomMethodInvoked,Je as EventInvoiceClosed,Qe as EventMainButtonPressed,Fe as EventPhoneRequested,He as EventPopupClosed,ze as EventQrTextReceived,je as EventReloadIframe,Ke as EventScanQrPopupClosed,Xe as EventSetCustomStyle,Ye as EventSettingsButtonPressed,Ze as EventThemeChanged,et as EventViewportChanged,tt as EventWriteAccessRequested,fe as MethodClose,ve as MethodCloseScanQrPopup,qe as MethodDataSend,ye as MethodExpand,Pe as MethodIframeReady,Se as MethodIframeWillReload,le as MethodInvokeCustomMethod,ke as MethodOpenInvoice,xe as MethodOpenLink,Oe as MethodOpenPopup,we as MethodOpenScanQrPopup,Re as MethodOpenTgLink,me as MethodReadTextFromClipboard,Te as MethodReady,he as MethodRequestPhone,Ee as MethodRequestTheme,Ce as MethodRequestViewport,We as MethodRequestWriteAccess,Ie as MethodSetBackgroundColor,Be as MethodSetHeaderColor,De as MethodSetupBackButton,Le as MethodSetupClosingBehavior,Ne as MethodSetupMainButton,Ae as MethodSetupSettingsButton,Me as MethodSwitchInlineQuery,Ue as MethodTriggerHapticFeedback,n as NOT_SUPPORTED,o as TG_DESKTOP,a as TG_PHONE,s as TG_WEB,_ as bridgeClose,u as bridgeCloseScanQrPopup,c as bridgeDataSend,g as bridgeExpand,_e as bridgeGetInitData,w as bridgeIframeReady,h as bridgeIframeWillReload,q as bridgeInvokeCustomMethod,P as bridgeOpenInvoice,k as bridgeOpenLink,O as bridgeOpenPopup,T as bridgeOpenScanQrPopup,C as bridgeOpenTgLink,I as bridgeReadTextFromClipboard,D as bridgeReady,N as bridgeRequestPhone,M as bridgeRequestTheme,V as bridgeRequestViewport,G as bridgeRequestWriteAccess,Q as bridgeSetBackgroundColor,H as bridgeSetHeaderColor,z as bridgeSetupBackButton,X as bridgeSetupClosingBehavior,Z as bridgeSetupMainButton,te as bridgeSetupSettingsButton,ae as bridgeSwitchInlineQuery,ne as bridgeTriggerHapticFeedback,ie as debug,ge as listener,pe as sender,p as supportClose,d as supportCloseScanQrPopup,b as supportDataSend,l as supportExpand,m as supportIframeReady,f as supportIframeWillReload,y as supportInvokeCustomMethod,S as supportOpenInvoice,x as supportOpenLink,R as supportOpenPopup,E as supportOpenScanQrPopup,W as supportOpenTgLink,B as supportReadTextFromClipboard,L as supportReady,A as supportRequestPhone,U as supportRequestTheme,$ as supportRequestViewport,J as supportRequestWriteAccess,F as supportSetBackgroundColor,j as supportSetHeaderColor,K as supportSetupBackButton,Y as supportSetupClosingBehavior,ee as supportSetupMainButton,se as supportSetupSettingsButton,oe as supportSwitchInlineQuery,re as supportTriggerHapticFeedback};
1
+ import{getThemeParams as e}from"utils";const t="web",s="phone",a="desktop",n="not_supported",o=(e,n)=>{const o=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(o)>=e&&-1!==n.indexOf((()=>{const e=window.location.hash.slice(1),n=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(n)?s:["tdesktop","macos"].includes(n)?a:t})())},r=()=>Math.random().toString(36).substring(3,9),i=()=>_()?(_e(Ie),{status:!0}):(re(Ie,1),{status:n}),_=()=>o(0,[t,a,s]),p=()=>u()?(_e(Be),{status:!0}):(re(Be,1),{status:n}),u=()=>o(6.4,[s]),d=e=>c()?(_e(De,e),{status:!0}):(re(De,1),{status:n}),c=()=>o(0,[t,a,s]),b=()=>g()?(_e(Le),{status:!0}):(re(Le,1),{status:n}),g=()=>o(0,[s]),l=e=>w()?(_e(Ne,e),{status:!0}):(re(Ne,1),{status:n}),w=()=>o(0,[t]),m=()=>h()?(_e(Ne),{status:!0}):(re(Ne,1),{status:n}),h=()=>o(0,[t]),f="web_app_invoke_custom_method",v=async e=>q()?(void 0===e.req_id&&(e.req_id=r()),_e(f,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),xe(de,a))};ke(de,a)}))):(re(f,1),{status:n}),q=()=>o(6.9,[t,a,s]),y=e=>P()?(_e(Me,e),{status:!0}):(re(Me,1),{status:n}),P=()=>o(6.1,[t,a,s]),S=e=>k()?(_e(Ue,e),{status:!0}):(re(Ue,1),{status:n}),k=()=>o(6.4,[t,a,s]),x=async e=>O()?(e.title.length>64&&re(Ve,3),e.message.length<1&&re(Ve,4),e.message.length>256&&re(Ve,5),e.buttons.length<1&&re(Ve,6),e.buttons.length>3&&re(Ve,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&re(Ve,8),_e(Ve,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),xe(le,a)};ke(le,a)}))):(re(Ve,1),{status:n}),O=()=>o(6.2,[t,a,s]),R=async e=>T()?(_e(Ee,e),new Promise(((t,s)=>{Oe(me,(s=>{e.is_close&&p(),t({status:!0,data:s})})),Oe(he,(()=>{t({status:"closed"})}))}))):(re(Ee,1),{status:n}),T=()=>o(6.4,[s]),E=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),W()?(_e($e,e),{status:!0}):(re($e,1),{status:n})),W=()=>o(7,[t,a,s]),C=async e=>I()?(void 0===e.req_id&&(e.req_id=r()),_e(We,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),xe(ue,a))};ke(ue,a)}))):(re(We,1),{status:n}),I=()=>o(6.4,[t,a,s]),B=()=>D()?(_e(Ge),{status:!0}):(re(Ge,1),{status:n}),D=()=>o(6.9,[t,a,s]),L=async()=>N()?(_e(Ce),new Promise(((e,t)=>{Oe(ge,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(re(Ce,1),{status:n}),N=()=>o(6.9,[t,a,s]),A=()=>M()?(_e(Je),{status:!0}):(re(Je,1),{status:n}),M=()=>o(0,[t,a,s]),U=()=>V()?(_e(Qe),{status:!0}):(re(Qe,1),{status:n}),V=()=>o(0,[t,a,s]),$=()=>G()?(_e(Fe),{status:!0}):(re(Fe,1),{status:n}),G=()=>o(6.9,[t,a,s]),J=e=>Q()?(_e(He,e),{status:!0}):(re(He,1),{status:n}),Q=()=>o(6.1,[t,a,s]),F=e=>H()?(_e(je,e),{status:!0}):(re(je,1),{status:n}),H=()=>o(6.1,[t,a,s]),j=e=>z()?(_e(ze,e),{status:!0}):(re(ze,1),{status:n}),z=()=>o(6.1,[t,a,s]),K=e=>X()?(_e(Ke,e),{status:!0}):(re(Ke,1),{status:n}),X=()=>o(0,[t,a,s]),Y=e=>Z()?(_e(Xe,e),{status:!0}):(re(Xe,1),{status:n}),Z=()=>o(0,[t,a,s]),ee=e=>te()?(_e(Ye,e),{status:!0}):(re(Ye,1),{status:n}),te=()=>o(6.1,[t,a,s]),se=e=>ae()?(e.query.length>256&&re(Ze,9),_e(Ze,e),{status:!0}):(re(Ze,1),{status:n}),ae=()=>o(6.7,[t,a,s]),ne=e=>oe()?(_e(et,e),{status:!0}):(re(et,1),{status:n}),oe=()=>o(6.1,[s]);var re=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};const ie=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return re("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 _e=(e,t)=>{window.TelegramWebviewProxy?window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t)):window.external&&"notify"in window.external&&window.external.notify(JSON.stringify({eventType:e,eventData:t}))};const pe="back_button_pressed",ue="clipboard_text_received",de="custom_method_invoked",ce="invoice_closed",be="main_button_pressed",ge="phone_requested",le="popup_closed",we="reload_iframe",me="qr_text_received",he="scan_qr_popup_closed",fe="set_custom_style",ve="settings_button_pressed",qe="theme_changed",ye="viewport_changed",Pe="write_access_requested",Se=((e=new Map)=>({once:(t,s,a=e.get(t),n=(e=>{s(e),a&&a.splice(a.indexOf(s)>>>0,1)}))=>a?a.push(n):e.set(t,[n]),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 t(t,s){t===qe&&(s.theme_params=e(s.theme_params)),Se.emit(t,s),Se.emit("*",{name:t,data:s})}window.TelegramGameProxy_receiveEvent=t,window.Telegram={WebView:{receiveEvent:t}},window.TelegramGameProxy={receiveEvent:t}})();const ke=(e,t)=>{Se.on(e,t)},xe=(e,t)=>{Se.off(e,t)},Oe=(e,t)=>{Se.once(e,t)};var Re=Object.freeze({__proto__:null,off:xe,on:ke,once:Oe});const Te="web_app_invoke_custom_method",Ee="web_app_open_scan_qr_popup",We="web_app_read_text_from_clipboard",Ce="web_app_request_phone",Ie="web_app_close",Be="web_app_close_scan_qr_popup",De="web_app_data_send",Le="web_app_expand",Ne="iframe_ready",Ae="iframe_will_reload",Me="web_app_open_invoice",Ue="web_app_open_link",Ve="web_app_open_popup",$e="web_app_open_tg_link",Ge="web_app_ready",Je="web_app_request_theme",Qe="web_app_request_viewport",Fe="web_app_request_write_access",He="web_app_set_background_color",je="web_app_set_header_color",ze="web_app_setup_back_button",Ke="web_app_setup_closing_behavior",Xe="web_app_setup_main_button",Ye="web_app_setup_settings_button",Ze="web_app_switch_inline_query",et="web_app_trigger_haptic_feedback";export{pe as EventBackButtonPressed,ue as EventClipboardTextReceived,de as EventCustomMethodInvoked,ce as EventInvoiceClosed,be as EventMainButtonPressed,ge as EventPhoneRequested,le as EventPopupClosed,me as EventQrTextReceived,we as EventReloadIframe,he as EventScanQrPopupClosed,fe as EventSetCustomStyle,ve as EventSettingsButtonPressed,qe as EventThemeChanged,ye as EventViewportChanged,Pe as EventWriteAccessRequested,Ie as MethodClose,Be as MethodCloseScanQrPopup,De as MethodDataSend,Le as MethodExpand,Ne as MethodIframeReady,Ae as MethodIframeWillReload,Te as MethodInvokeCustomMethod,Me as MethodOpenInvoice,Ue as MethodOpenLink,Ve as MethodOpenPopup,Ee as MethodOpenScanQrPopup,$e as MethodOpenTgLink,We as MethodReadTextFromClipboard,Ge as MethodReady,Ce as MethodRequestPhone,Je as MethodRequestTheme,Qe as MethodRequestViewport,Fe as MethodRequestWriteAccess,He as MethodSetBackgroundColor,je as MethodSetHeaderColor,ze as MethodSetupBackButton,Ke as MethodSetupClosingBehavior,Xe as MethodSetupMainButton,Ye as MethodSetupSettingsButton,Ze as MethodSwitchInlineQuery,et as MethodTriggerHapticFeedback,n as NOT_SUPPORTED,a as TG_DESKTOP,s as TG_PHONE,t as TG_WEB,i as bridgeClose,p as bridgeCloseScanQrPopup,d as bridgeDataSend,b as bridgeExpand,ie as bridgeGetInitData,l as bridgeIframeReady,m as bridgeIframeWillReload,v as bridgeInvokeCustomMethod,y as bridgeOpenInvoice,S as bridgeOpenLink,x as bridgeOpenPopup,R as bridgeOpenScanQrPopup,E as bridgeOpenTgLink,C as bridgeReadTextFromClipboard,B as bridgeReady,L as bridgeRequestPhone,A as bridgeRequestTheme,U as bridgeRequestViewport,$ as bridgeRequestWriteAccess,J as bridgeSetBackgroundColor,F as bridgeSetHeaderColor,j as bridgeSetupBackButton,K as bridgeSetupClosingBehavior,Y as bridgeSetupMainButton,ee as bridgeSetupSettingsButton,se as bridgeSwitchInlineQuery,ne as bridgeTriggerHapticFeedback,re as debug,Re as listener,_e as sender,_ as supportClose,u as supportCloseScanQrPopup,c as supportDataSend,g as supportExpand,w as supportIframeReady,h as supportIframeWillReload,q as supportInvokeCustomMethod,P as supportOpenInvoice,k as supportOpenLink,O as supportOpenPopup,T as supportOpenScanQrPopup,W as supportOpenTgLink,I as supportReadTextFromClipboard,D as supportReady,N as supportRequestPhone,M as supportRequestTheme,V as supportRequestViewport,G as supportRequestWriteAccess,Q as supportSetBackgroundColor,H as supportSetHeaderColor,z as supportSetupBackButton,X as supportSetupClosingBehavior,Z as supportSetupMainButton,te as supportSetupSettingsButton,ae as supportSwitchInlineQuery,oe as supportTriggerHapticFeedback};
package/solid/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("solid"),t=require("utils"),s=require("solid-js");const o="web",r="phone",p="desktop",a="not_supported",n=(e,t)=>{const s=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(s)>=e&&-1!==t.indexOf((()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?r:["tdesktop","macos"].includes(t)?p:o})())},i=()=>Math.random().toString(36).substring(3,9),u=()=>n(0,[o,p,r]),d=()=>_()?(L(j),{status:!0}):(D(j,1),{status:a}),_=()=>n(6.4,[r]),c=()=>n(0,[o,p,r]),x=()=>n(0,[r]),l=()=>n(0,[o]),h=()=>n(0,[o]),g="web_app_invoke_custom_method",b=()=>n(6.9,[o,p,r]),w=()=>n(6.1,[o,p,r]),m=()=>n(6.4,[o,p,r]),v=()=>n(6.2,[o,p,r]),S=()=>n(6.4,[r]),f=()=>n(7,[o,p,r]),q=()=>n(6.4,[o,p,r]),M=()=>n(6.9,[o,p,r]),P=()=>n(6.9,[o,p,r]),R=()=>n(0,[o,p,r]),k=()=>n(0,[o,p,r]),C=()=>n(6.9,[o,p,r]),y=()=>n(6.1,[o,p,r]),E=()=>n(6.1,[o,p,r]),T=()=>n(6.1,[o,p,r]),O=()=>n(0,[o,p,r]),B=()=>n(0,[o,p,r]),I=()=>n(6.1,[o,p,r]),W=()=>n(6.7,[o,p,r]),Q=()=>n(6.1,[r]);var D=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};var L=(e,t)=>{window.TelegramWebviewProxy?window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t)):window.external&&"notify"in window.external&&window.external.notify(JSON.stringify({eventType:e,eventData:t}))};const N=((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 s(s,o){s===e.EventThemeChanged&&(o.theme_params=t.getThemeParams(o.theme_params)),N.emit(s,o),N.emit("*",{name:s,data:o})}window.TelegramGameProxy_receiveEvent=s,window.Telegram={WebView:{receiveEvent:s}},window.TelegramGameProxy={receiveEvent:s}})();const V=(e,t)=>{N.on(e,t)},A=(e,t)=>{N.off(e,t)},H=(e,t)=>{N.once(e,t)};var F=Object.freeze({__proto__:null,off:A,on:V,once:H});const G="web_app_open_scan_qr_popup",U="web_app_read_text_from_clipboard",$="web_app_request_phone",J="web_app_close",j="web_app_close_scan_qr_popup",z="web_app_data_send",K="web_app_expand",X="iframe_ready",Y="web_app_open_invoice",Z="web_app_open_link",ee="web_app_open_popup",te="web_app_open_tg_link",se="web_app_ready",oe="web_app_request_theme",re="web_app_request_viewport",pe="web_app_request_write_access",ae="web_app_set_background_color",ne="web_app_set_header_color",ie="web_app_setup_back_button",ue="web_app_setup_closing_behavior",de="web_app_setup_main_button",_e="web_app_setup_settings_button",ce="web_app_switch_inline_query",xe="web_app_trigger_haptic_feedback",le="clipboard_text_received",he="custom_method_invoked",ge="phone_requested",be="popup_closed",we="qr_text_received",me="scan_qr_popup_closed",ve="viewport_changed";exports.EventBackButtonPressed="back_button_pressed",exports.EventClipboardTextReceived=le,exports.EventCustomMethodInvoked=he,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=ge,exports.EventPopupClosed=be,exports.EventQrTextReceived=we,exports.EventReloadIframe="reload_iframe",exports.EventScanQrPopupClosed=me,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged="theme_changed",exports.EventViewportChanged=ve,exports.EventWriteAccessRequested="write_access_requested",exports.MethodClose=J,exports.MethodCloseScanQrPopup=j,exports.MethodDataSend=z,exports.MethodExpand=K,exports.MethodIframeReady=X,exports.MethodIframeWillReload="iframe_will_reload",exports.MethodInvokeCustomMethod="web_app_invoke_custom_method",exports.MethodOpenInvoice=Y,exports.MethodOpenLink=Z,exports.MethodOpenPopup=ee,exports.MethodOpenScanQrPopup=G,exports.MethodOpenTgLink=te,exports.MethodReadTextFromClipboard=U,exports.MethodReady=se,exports.MethodRequestPhone=$,exports.MethodRequestTheme=oe,exports.MethodRequestViewport=re,exports.MethodRequestWriteAccess=pe,exports.MethodSetBackgroundColor=ae,exports.MethodSetHeaderColor=ne,exports.MethodSetupBackButton=ie,exports.MethodSetupClosingBehavior=ue,exports.MethodSetupMainButton=de,exports.MethodSetupSettingsButton=_e,exports.MethodSwitchInlineQuery=ce,exports.MethodTriggerHapticFeedback=xe,exports.NOT_SUPPORTED=a,exports.TG_DESKTOP=p,exports.TG_PHONE=r,exports.TG_WEB=o,exports.bridgeClose=()=>u()?(L(J),{status:!0}):(D(J,1),{status:a}),exports.bridgeCloseScanQrPopup=d,exports.bridgeDataSend=e=>c()?(L(z,e),{status:!0}):(D(z,1),{status:a}),exports.bridgeExpand=()=>x()?(L(K),{status:!0}):(D(K,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()?(L(X,e),{status:!0}):(D(X,1),{status:a}),exports.bridgeIframeWillReload=()=>h()?(L(X),{status:!0}):(D(X,1),{status:a}),exports.bridgeInvokeCustomMethod=async e=>b()?(void 0===e.req_id&&(e.req_id=i()),L(g,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),A(he,o))};V(he,o)}))):(D(g,1),{status:a}),exports.bridgeOpenInvoice=e=>w()?(L(Y,e),{status:!0}):(D(Y,1),{status:a}),exports.bridgeOpenLink=e=>m()?(L(Z,e),{status:!0}):(D(Z,1),{status:a}),exports.bridgeOpenPopup=async e=>v()?(e.title.length>64&&D(ee,3),e.message.length<1&&D(ee,4),e.message.length>256&&D(ee,5),e.buttons.length<1&&D(ee,6),e.buttons.length>3&&D(ee,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&D(ee,8),L(ee,e),new Promise(((t,s)=>{const o=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),A(be,o)};V(be,o)}))):(D(ee,1),{status:a}),exports.bridgeOpenScanQrPopup=async e=>S()?(L(G,e),new Promise(((t,s)=>{H(we,(s=>{e.is_close&&d(),t({status:!0,data:s})})),H(me,(()=>{t({status:"closed"})}))}))):(D(G,1),{status:a}),exports.bridgeOpenTgLink=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),f()?(L(te,e),{status:!0}):(D(te,1),{status:a})),exports.bridgeReadTextFromClipboard=async e=>q()?(void 0===e.req_id&&(e.req_id=i()),L(U,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),A(le,o))};V(le,o)}))):(D(U,1),{status:a}),exports.bridgeReady=()=>M()?(L(se),{status:!0}):(D(se,1),{status:a}),exports.bridgeRequestPhone=async()=>P()?(L($),new Promise(((e,t)=>{H(ge,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(D($,1),{status:a}),exports.bridgeRequestTheme=()=>R()?(L(oe),{status:!0}):(D(oe,1),{status:a}),exports.bridgeRequestViewport=()=>k()?(L(re),{status:!0}):(D(re,1),{status:a}),exports.bridgeRequestWriteAccess=()=>C()?(L(pe),{status:!0}):(D(pe,1),{status:a}),exports.bridgeSetBackgroundColor=e=>y()?(L(ae,e),{status:!0}):(D(ae,1),{status:a}),exports.bridgeSetHeaderColor=e=>E()?(L(ne,e),{status:!0}):(D(ne,1),{status:a}),exports.bridgeSetupBackButton=e=>T()?(L(ie,e),{status:!0}):(D(ie,1),{status:a}),exports.bridgeSetupClosingBehavior=e=>O()?(L(ue,e),{status:!0}):(D(ue,1),{status:a}),exports.bridgeSetupMainButton=e=>B()?(L(de,e),{status:!0}):(D(de,1),{status:a}),exports.bridgeSetupSettingsButton=e=>I()?(L(_e,e),{status:!0}):(D(_e,1),{status:a}),exports.bridgeSwitchInlineQuery=e=>W()?(e.query.length>256&&D(ce,9),L(ce,e),{status:!0}):(D(ce,1),{status:a}),exports.bridgeTriggerHapticFeedback=e=>Q()?(L(xe,e),{status:!0}):(D(xe,1),{status:a}),exports.createIsViewportChanged=()=>{const[e,t]=s.createSignal({height:0,is_expanded:!1,is_state_stable:!1}),o=e=>t(e);return s.onMount((()=>{V(ve,o),L(re)})),s.onCleanup((()=>{A(ve,o)})),e},exports.debug=D,exports.listener=F,exports.sender=L,exports.supportClose=u,exports.supportCloseScanQrPopup=_,exports.supportDataSend=c,exports.supportExpand=x,exports.supportIframeReady=l,exports.supportIframeWillReload=h,exports.supportInvokeCustomMethod=b,exports.supportOpenInvoice=w,exports.supportOpenLink=m,exports.supportOpenPopup=v,exports.supportOpenScanQrPopup=S,exports.supportOpenTgLink=f,exports.supportReadTextFromClipboard=q,exports.supportReady=M,exports.supportRequestPhone=P,exports.supportRequestTheme=R,exports.supportRequestViewport=k,exports.supportRequestWriteAccess=C,exports.supportSetBackgroundColor=y,exports.supportSetHeaderColor=E,exports.supportSetupBackButton=T,exports.supportSetupClosingBehavior=O,exports.supportSetupMainButton=B,exports.supportSetupSettingsButton=I,exports.supportSwitchInlineQuery=W,exports.supportTriggerHapticFeedback=Q;
1
+ "use strict";var e=require("utils"),t=require("solid-js");const s="web",o="phone",r="desktop",p="not_supported",a=(e,t)=>{const p=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(p)>=e&&-1!==t.indexOf((()=>{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})())},n=()=>Math.random().toString(36).substring(3,9),u=()=>a(0,[s,r,o]),i=()=>d()?(D(te),{status:!0}):(Q(te,1),{status:p}),d=()=>a(6.4,[o]),_=()=>a(0,[s,r,o]),c=()=>a(0,[o]),x=()=>a(0,[s]),l=()=>a(0,[s]),g="web_app_invoke_custom_method",h=()=>a(6.9,[s,r,o]),b=()=>a(6.1,[s,r,o]),w=()=>a(6.4,[s,r,o]),m=()=>a(6.2,[s,r,o]),v=()=>a(6.4,[o]),S=()=>a(7,[s,r,o]),f=()=>a(6.4,[s,r,o]),M=()=>a(6.9,[s,r,o]),P=()=>a(6.9,[s,r,o]),q=()=>a(0,[s,r,o]),R=()=>a(0,[s,r,o]),k=()=>a(6.9,[s,r,o]),C=()=>a(6.1,[s,r,o]),y=()=>a(6.1,[s,r,o]),E=()=>a(6.1,[s,r,o]),T=()=>a(0,[s,r,o]),O=()=>a(0,[s,r,o]),B=()=>a(6.1,[s,r,o]),I=()=>a(6.7,[s,r,o]),W=()=>a(6.1,[o]);var Q=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};var D=(e,t)=>{window.TelegramWebviewProxy?window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t)):window.external&&"notify"in window.external&&window.external.notify(JSON.stringify({eventType:e,eventData:t}))};const L="clipboard_text_received",N="custom_method_invoked",V="phone_requested",A="popup_closed",H="qr_text_received",F="scan_qr_popup_closed",G="theme_changed",U="viewport_changed",$=((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 t(t,s){t===G&&(s.theme_params=e.getThemeParams(s.theme_params)),$.emit(t,s),$.emit("*",{name:t,data:s})}window.TelegramGameProxy_receiveEvent=t,window.Telegram={WebView:{receiveEvent:t}},window.TelegramGameProxy={receiveEvent:t}})();const J=(e,t)=>{$.on(e,t)},j=(e,t)=>{$.off(e,t)},z=(e,t)=>{$.once(e,t)};var K=Object.freeze({__proto__:null,off:j,on:J,once:z});const X="web_app_open_scan_qr_popup",Y="web_app_read_text_from_clipboard",Z="web_app_request_phone",ee="web_app_close",te="web_app_close_scan_qr_popup",se="web_app_data_send",oe="web_app_expand",re="iframe_ready",pe="web_app_open_invoice",ae="web_app_open_link",ne="web_app_open_popup",ue="web_app_open_tg_link",ie="web_app_ready",de="web_app_request_theme",_e="web_app_request_viewport",ce="web_app_request_write_access",xe="web_app_set_background_color",le="web_app_set_header_color",ge="web_app_setup_back_button",he="web_app_setup_closing_behavior",be="web_app_setup_main_button",we="web_app_setup_settings_button",me="web_app_switch_inline_query",ve="web_app_trigger_haptic_feedback";exports.EventBackButtonPressed="back_button_pressed",exports.EventClipboardTextReceived=L,exports.EventCustomMethodInvoked=N,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=V,exports.EventPopupClosed=A,exports.EventQrTextReceived=H,exports.EventReloadIframe="reload_iframe",exports.EventScanQrPopupClosed=F,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged=G,exports.EventViewportChanged=U,exports.EventWriteAccessRequested="write_access_requested",exports.MethodClose=ee,exports.MethodCloseScanQrPopup=te,exports.MethodDataSend=se,exports.MethodExpand=oe,exports.MethodIframeReady=re,exports.MethodIframeWillReload="iframe_will_reload",exports.MethodInvokeCustomMethod="web_app_invoke_custom_method",exports.MethodOpenInvoice=pe,exports.MethodOpenLink=ae,exports.MethodOpenPopup=ne,exports.MethodOpenScanQrPopup=X,exports.MethodOpenTgLink=ue,exports.MethodReadTextFromClipboard=Y,exports.MethodReady=ie,exports.MethodRequestPhone=Z,exports.MethodRequestTheme=de,exports.MethodRequestViewport=_e,exports.MethodRequestWriteAccess=ce,exports.MethodSetBackgroundColor=xe,exports.MethodSetHeaderColor=le,exports.MethodSetupBackButton=ge,exports.MethodSetupClosingBehavior=he,exports.MethodSetupMainButton=be,exports.MethodSetupSettingsButton=we,exports.MethodSwitchInlineQuery=me,exports.MethodTriggerHapticFeedback=ve,exports.NOT_SUPPORTED=p,exports.TG_DESKTOP=r,exports.TG_PHONE=o,exports.TG_WEB=s,exports.bridgeClose=()=>u()?(D(ee),{status:!0}):(Q(ee,1),{status:p}),exports.bridgeCloseScanQrPopup=i,exports.bridgeDataSend=e=>_()?(D(se,e),{status:!0}):(Q(se,1),{status:p}),exports.bridgeExpand=()=>c()?(D(oe),{status:!0}):(Q(oe,1),{status:p}),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=>x()?(D(re,e),{status:!0}):(Q(re,1),{status:p}),exports.bridgeIframeWillReload=()=>l()?(D(re),{status:!0}):(Q(re,1),{status:p}),exports.bridgeInvokeCustomMethod=async e=>h()?(void 0===e.req_id&&(e.req_id=n()),D(g,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),j(N,o))};J(N,o)}))):(Q(g,1),{status:p}),exports.bridgeOpenInvoice=e=>b()?(D(pe,e),{status:!0}):(Q(pe,1),{status:p}),exports.bridgeOpenLink=e=>w()?(D(ae,e),{status:!0}):(Q(ae,1),{status:p}),exports.bridgeOpenPopup=async e=>m()?(e.title.length>64&&Q(ne,3),e.message.length<1&&Q(ne,4),e.message.length>256&&Q(ne,5),e.buttons.length<1&&Q(ne,6),e.buttons.length>3&&Q(ne,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&Q(ne,8),D(ne,e),new Promise(((t,s)=>{const o=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),j(A,o)};J(A,o)}))):(Q(ne,1),{status:p}),exports.bridgeOpenScanQrPopup=async e=>v()?(D(X,e),new Promise(((t,s)=>{z(H,(s=>{e.is_close&&i(),t({status:!0,data:s})})),z(F,(()=>{t({status:"closed"})}))}))):(Q(X,1),{status:p}),exports.bridgeOpenTgLink=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),S()?(D(ue,e),{status:!0}):(Q(ue,1),{status:p})),exports.bridgeReadTextFromClipboard=async e=>f()?(void 0===e.req_id&&(e.req_id=n()),D(Y,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),j(L,o))};J(L,o)}))):(Q(Y,1),{status:p}),exports.bridgeReady=()=>M()?(D(ie),{status:!0}):(Q(ie,1),{status:p}),exports.bridgeRequestPhone=async()=>P()?(D(Z),new Promise(((e,t)=>{z(V,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(Q(Z,1),{status:p}),exports.bridgeRequestTheme=()=>q()?(D(de),{status:!0}):(Q(de,1),{status:p}),exports.bridgeRequestViewport=()=>R()?(D(_e),{status:!0}):(Q(_e,1),{status:p}),exports.bridgeRequestWriteAccess=()=>k()?(D(ce),{status:!0}):(Q(ce,1),{status:p}),exports.bridgeSetBackgroundColor=e=>C()?(D(xe,e),{status:!0}):(Q(xe,1),{status:p}),exports.bridgeSetHeaderColor=e=>y()?(D(le,e),{status:!0}):(Q(le,1),{status:p}),exports.bridgeSetupBackButton=e=>E()?(D(ge,e),{status:!0}):(Q(ge,1),{status:p}),exports.bridgeSetupClosingBehavior=e=>T()?(D(he,e),{status:!0}):(Q(he,1),{status:p}),exports.bridgeSetupMainButton=e=>O()?(D(be,e),{status:!0}):(Q(be,1),{status:p}),exports.bridgeSetupSettingsButton=e=>B()?(D(we,e),{status:!0}):(Q(we,1),{status:p}),exports.bridgeSwitchInlineQuery=e=>I()?(e.query.length>256&&Q(me,9),D(me,e),{status:!0}):(Q(me,1),{status:p}),exports.bridgeTriggerHapticFeedback=e=>W()?(D(ve,e),{status:!0}):(Q(ve,1),{status:p}),exports.createIsViewportChanged=()=>{const[e,s]=t.createSignal({height:0,is_expanded:!1,is_state_stable:!1}),o=e=>s(e);return t.onMount((()=>{J(U,o),D(_e)})),t.onCleanup((()=>{j(U,o)})),e},exports.debug=Q,exports.listener=K,exports.sender=D,exports.supportClose=u,exports.supportCloseScanQrPopup=d,exports.supportDataSend=_,exports.supportExpand=c,exports.supportIframeReady=x,exports.supportIframeWillReload=l,exports.supportInvokeCustomMethod=h,exports.supportOpenInvoice=b,exports.supportOpenLink=w,exports.supportOpenPopup=m,exports.supportOpenScanQrPopup=v,exports.supportOpenTgLink=S,exports.supportReadTextFromClipboard=f,exports.supportReady=M,exports.supportRequestPhone=P,exports.supportRequestTheme=q,exports.supportRequestViewport=R,exports.supportRequestWriteAccess=k,exports.supportSetBackgroundColor=C,exports.supportSetHeaderColor=y,exports.supportSetupBackButton=E,exports.supportSetupClosingBehavior=T,exports.supportSetupMainButton=O,exports.supportSetupSettingsButton=B,exports.supportSwitchInlineQuery=I,exports.supportTriggerHapticFeedback=W;
package/solid/index.mjs CHANGED
@@ -1 +1 @@
1
- import{EventThemeChanged as e}from"solid";import{getThemeParams as t}from"utils";import{createSignal as s,onMount as a,onCleanup as o}from"solid-js";const n=()=>{const[e,t]=s({height:0,is_expanded:!1,is_state_stable:!1}),n=e=>t(e);return a((()=>{ge(ot,n),be(De)})),o((()=>{we(ot,n)})),e},r="web",i="phone",_="desktop",p="not_supported",u=(e,t)=>{const s=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(s)>=e&&-1!==t.indexOf((()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?i:["tdesktop","macos"].includes(t)?_:r})())},d=()=>Math.random().toString(36).substring(3,9),c=()=>b()?(be(xe),{status:!0}):(de(xe,1),{status:p}),b=()=>u(0,[r,_,i]),l=()=>g()?(be(Pe),{status:!0}):(de(Pe,1),{status:p}),g=()=>u(6.4,[i]),w=e=>m()?(be(Se,e),{status:!0}):(de(Se,1),{status:p}),m=()=>u(0,[r,_,i]),h=()=>f()?(be(ke),{status:!0}):(de(ke,1),{status:p}),f=()=>u(0,[i]),v=e=>q()?(be(Oe,e),{status:!0}):(de(Oe,1),{status:p}),q=()=>u(0,[r]),y=()=>x()?(be(Oe),{status:!0}):(de(Oe,1),{status:p}),x=()=>u(0,[r]),P="web_app_invoke_custom_method",S=async e=>k()?(void 0===e.req_id&&(e.req_id=d()),be(P,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),we(Fe,a))};ge(Fe,a)}))):(de(P,1),{status:p}),k=()=>u(6.9,[r,_,i]),O=e=>R()?(be(Te,e),{status:!0}):(de(Te,1),{status:p}),R=()=>u(6.1,[r,_,i]),T=e=>E()?(be(Ee,e),{status:!0}):(de(Ee,1),{status:p}),E=()=>u(6.4,[r,_,i]),C=async e=>W()?(e.title.length>64&&de(Ce,3),e.message.length<1&&de(Ce,4),e.message.length>256&&de(Ce,5),e.buttons.length<1&&de(Ce,6),e.buttons.length>3&&de(Ce,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&de(Ce,8),be(Ce,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),we(Xe,a)};ge(Xe,a)}))):(de(Ce,1),{status:p}),W=()=>u(6.2,[r,_,i]),I=async e=>B()?(be(ve,e),new Promise(((t,s)=>{me(Ze,(s=>{e.is_close&&l(),t({status:!0,data:s})})),me(et,(()=>{t({status:"closed"})}))}))):(de(ve,1),{status:p}),B=()=>u(6.4,[i]),D=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),L()?(be(We,e),{status:!0}):(de(We,1),{status:p})),L=()=>u(7,[r,_,i]),N=async e=>A()?(void 0===e.req_id&&(e.req_id=d()),be(qe,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),we(je,a))};ge(je,a)}))):(de(qe,1),{status:p}),A=()=>u(6.4,[r,_,i]),M=()=>U()?(be(Ie),{status:!0}):(de(Ie,1),{status:p}),U=()=>u(6.9,[r,_,i]),V=async()=>$()?(be(ye),new Promise(((e,t)=>{me(Ke,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(de(ye,1),{status:p}),$=()=>u(6.9,[r,_,i]),G=()=>J()?(be(Be),{status:!0}):(de(Be,1),{status:p}),J=()=>u(0,[r,_,i]),Q=()=>j()?(be(De),{status:!0}):(de(De,1),{status:p}),j=()=>u(0,[r,_,i]),F=()=>H()?(be(Le),{status:!0}):(de(Le,1),{status:p}),H=()=>u(6.9,[r,_,i]),z=e=>K()?(be(Ne,e),{status:!0}):(de(Ne,1),{status:p}),K=()=>u(6.1,[r,_,i]),X=e=>Y()?(be(Ae,e),{status:!0}):(de(Ae,1),{status:p}),Y=()=>u(6.1,[r,_,i]),Z=e=>ee()?(be(Me,e),{status:!0}):(de(Me,1),{status:p}),ee=()=>u(6.1,[r,_,i]),te=e=>se()?(be(Ue,e),{status:!0}):(de(Ue,1),{status:p}),se=()=>u(0,[r,_,i]),ae=e=>oe()?(be(Ve,e),{status:!0}):(de(Ve,1),{status:p}),oe=()=>u(0,[r,_,i]),ne=e=>re()?(be($e,e),{status:!0}):(de($e,1),{status:p}),re=()=>u(6.1,[r,_,i]),ie=e=>_e()?(e.query.length>256&&de(Ge,9),be(Ge,e),{status:!0}):(de(Ge,1),{status:p}),_e=()=>u(6.7,[r,_,i]),pe=e=>ue()?(be(Je,e),{status:!0}):(de(Je,1),{status:p}),ue=()=>u(6.1,[i]);var de=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};const ce=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return de("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 be=(e,t)=>{window.TelegramWebviewProxy?window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t)):window.external&&"notify"in window.external&&window.external.notify(JSON.stringify({eventType:e,eventData:t}))};const le=((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 s(s,a){s===e&&(a.theme_params=t(a.theme_params)),le.emit(s,a),le.emit("*",{name:s,data:a})}window.TelegramGameProxy_receiveEvent=s,window.Telegram={WebView:{receiveEvent:s}},window.TelegramGameProxy={receiveEvent:s}})();const ge=(e,t)=>{le.on(e,t)},we=(e,t)=>{le.off(e,t)},me=(e,t)=>{le.once(e,t)};var he=Object.freeze({__proto__:null,off:we,on:ge,once:me});const fe="web_app_invoke_custom_method",ve="web_app_open_scan_qr_popup",qe="web_app_read_text_from_clipboard",ye="web_app_request_phone",xe="web_app_close",Pe="web_app_close_scan_qr_popup",Se="web_app_data_send",ke="web_app_expand",Oe="iframe_ready",Re="iframe_will_reload",Te="web_app_open_invoice",Ee="web_app_open_link",Ce="web_app_open_popup",We="web_app_open_tg_link",Ie="web_app_ready",Be="web_app_request_theme",De="web_app_request_viewport",Le="web_app_request_write_access",Ne="web_app_set_background_color",Ae="web_app_set_header_color",Me="web_app_setup_back_button",Ue="web_app_setup_closing_behavior",Ve="web_app_setup_main_button",$e="web_app_setup_settings_button",Ge="web_app_switch_inline_query",Je="web_app_trigger_haptic_feedback",Qe="back_button_pressed",je="clipboard_text_received",Fe="custom_method_invoked",He="invoice_closed",ze="main_button_pressed",Ke="phone_requested",Xe="popup_closed",Ye="reload_iframe",Ze="qr_text_received",et="scan_qr_popup_closed",tt="set_custom_style",st="settings_button_pressed",at="theme_changed",ot="viewport_changed",nt="write_access_requested";export{Qe as EventBackButtonPressed,je as EventClipboardTextReceived,Fe as EventCustomMethodInvoked,He as EventInvoiceClosed,ze as EventMainButtonPressed,Ke as EventPhoneRequested,Xe as EventPopupClosed,Ze as EventQrTextReceived,Ye as EventReloadIframe,et as EventScanQrPopupClosed,tt as EventSetCustomStyle,st as EventSettingsButtonPressed,at as EventThemeChanged,ot as EventViewportChanged,nt as EventWriteAccessRequested,xe as MethodClose,Pe as MethodCloseScanQrPopup,Se as MethodDataSend,ke as MethodExpand,Oe as MethodIframeReady,Re as MethodIframeWillReload,fe as MethodInvokeCustomMethod,Te as MethodOpenInvoice,Ee as MethodOpenLink,Ce as MethodOpenPopup,ve as MethodOpenScanQrPopup,We as MethodOpenTgLink,qe as MethodReadTextFromClipboard,Ie as MethodReady,ye as MethodRequestPhone,Be as MethodRequestTheme,De as MethodRequestViewport,Le as MethodRequestWriteAccess,Ne as MethodSetBackgroundColor,Ae as MethodSetHeaderColor,Me as MethodSetupBackButton,Ue as MethodSetupClosingBehavior,Ve as MethodSetupMainButton,$e as MethodSetupSettingsButton,Ge as MethodSwitchInlineQuery,Je as MethodTriggerHapticFeedback,p as NOT_SUPPORTED,_ as TG_DESKTOP,i as TG_PHONE,r as TG_WEB,c as bridgeClose,l as bridgeCloseScanQrPopup,w as bridgeDataSend,h as bridgeExpand,ce as bridgeGetInitData,v as bridgeIframeReady,y as bridgeIframeWillReload,S as bridgeInvokeCustomMethod,O as bridgeOpenInvoice,T as bridgeOpenLink,C as bridgeOpenPopup,I as bridgeOpenScanQrPopup,D as bridgeOpenTgLink,N as bridgeReadTextFromClipboard,M as bridgeReady,V as bridgeRequestPhone,G as bridgeRequestTheme,Q as bridgeRequestViewport,F as bridgeRequestWriteAccess,z as bridgeSetBackgroundColor,X as bridgeSetHeaderColor,Z as bridgeSetupBackButton,te as bridgeSetupClosingBehavior,ae as bridgeSetupMainButton,ne as bridgeSetupSettingsButton,ie as bridgeSwitchInlineQuery,pe as bridgeTriggerHapticFeedback,n as createIsViewportChanged,de as debug,he as listener,be as sender,b as supportClose,g as supportCloseScanQrPopup,m as supportDataSend,f as supportExpand,q as supportIframeReady,x as supportIframeWillReload,k as supportInvokeCustomMethod,R as supportOpenInvoice,E as supportOpenLink,W as supportOpenPopup,B as supportOpenScanQrPopup,L as supportOpenTgLink,A as supportReadTextFromClipboard,U as supportReady,$ as supportRequestPhone,J as supportRequestTheme,j as supportRequestViewport,H as supportRequestWriteAccess,K as supportSetBackgroundColor,Y as supportSetHeaderColor,ee as supportSetupBackButton,se as supportSetupClosingBehavior,oe as supportSetupMainButton,re as supportSetupSettingsButton,_e as supportSwitchInlineQuery,ue as supportTriggerHapticFeedback};
1
+ import{getThemeParams as e}from"utils";import{createSignal as t,onMount as s,onCleanup as a}from"solid-js";const o=()=>{const[e,o]=t({height:0,is_expanded:!1,is_state_stable:!1}),n=e=>o(e);return s((()=>{Te(ke,n),ce(ze)})),a((()=>{Ee(ke,n)})),e},n="web",r="phone",i="desktop",_="not_supported",p=(e,t)=>{const s=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(s)>=e&&-1!==t.indexOf((()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?r:["tdesktop","macos"].includes(t)?i:n})())},u=()=>Math.random().toString(36).substring(3,9),d=()=>c()?(ce(Ne),{status:!0}):(ue(Ne,1),{status:_}),c=()=>p(0,[n,i,r]),b=()=>l()?(ce(Ae),{status:!0}):(ue(Ae,1),{status:_}),l=()=>p(6.4,[r]),g=e=>w()?(ce(Me,e),{status:!0}):(ue(Me,1),{status:_}),w=()=>p(0,[n,i,r]),m=()=>h()?(ce(Ue),{status:!0}):(ue(Ue,1),{status:_}),h=()=>p(0,[r]),f=e=>v()?(ce(Ve,e),{status:!0}):(ue(Ve,1),{status:_}),v=()=>p(0,[n]),q=()=>y()?(ce(Ve),{status:!0}):(ue(Ve,1),{status:_}),y=()=>p(0,[n]),x="web_app_invoke_custom_method",P=async e=>S()?(void 0===e.req_id&&(e.req_id=u()),ce(x,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),Ee(ge,a))};Te(ge,a)}))):(ue(x,1),{status:_}),S=()=>p(6.9,[n,i,r]),k=e=>O()?(ce(Ge,e),{status:!0}):(ue(Ge,1),{status:_}),O=()=>p(6.1,[n,i,r]),R=e=>T()?(ce(Je,e),{status:!0}):(ue(Je,1),{status:_}),T=()=>p(6.4,[n,i,r]),E=async e=>W()?(e.title.length>64&&ue(Qe,3),e.message.length<1&&ue(Qe,4),e.message.length>256&&ue(Qe,5),e.buttons.length<1&&ue(Qe,6),e.buttons.length>3&&ue(Qe,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&ue(Qe,8),ce(Qe,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),Ee(fe,a)};Te(fe,a)}))):(ue(Qe,1),{status:_}),W=()=>p(6.2,[n,i,r]),C=async e=>I()?(ce(Be,e),new Promise(((t,s)=>{We(qe,(s=>{e.is_close&&b(),t({status:!0,data:s})})),We(ye,(()=>{t({status:"closed"})}))}))):(ue(Be,1),{status:_}),I=()=>p(6.4,[r]),B=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),D()?(ce(je,e),{status:!0}):(ue(je,1),{status:_})),D=()=>p(7,[n,i,r]),L=async e=>N()?(void 0===e.req_id&&(e.req_id=u()),ce(De,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),Ee(le,a))};Te(le,a)}))):(ue(De,1),{status:_}),N=()=>p(6.4,[n,i,r]),A=()=>M()?(ce(Fe),{status:!0}):(ue(Fe,1),{status:_}),M=()=>p(6.9,[n,i,r]),U=async()=>V()?(ce(Le),new Promise(((e,t)=>{We(he,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(ue(Le,1),{status:_}),V=()=>p(6.9,[n,i,r]),$=()=>G()?(ce(He),{status:!0}):(ue(He,1),{status:_}),G=()=>p(0,[n,i,r]),J=()=>Q()?(ce(ze),{status:!0}):(ue(ze,1),{status:_}),Q=()=>p(0,[n,i,r]),j=()=>F()?(ce(Ke),{status:!0}):(ue(Ke,1),{status:_}),F=()=>p(6.9,[n,i,r]),H=e=>z()?(ce(Xe,e),{status:!0}):(ue(Xe,1),{status:_}),z=()=>p(6.1,[n,i,r]),K=e=>X()?(ce(Ye,e),{status:!0}):(ue(Ye,1),{status:_}),X=()=>p(6.1,[n,i,r]),Y=e=>Z()?(ce(Ze,e),{status:!0}):(ue(Ze,1),{status:_}),Z=()=>p(6.1,[n,i,r]),ee=e=>te()?(ce(et,e),{status:!0}):(ue(et,1),{status:_}),te=()=>p(0,[n,i,r]),se=e=>ae()?(ce(tt,e),{status:!0}):(ue(tt,1),{status:_}),ae=()=>p(0,[n,i,r]),oe=e=>ne()?(ce(st,e),{status:!0}):(ue(st,1),{status:_}),ne=()=>p(6.1,[n,i,r]),re=e=>ie()?(e.query.length>256&&ue(at,9),ce(at,e),{status:!0}):(ue(at,1),{status:_}),ie=()=>p(6.7,[n,i,r]),_e=e=>pe()?(ce(ot,e),{status:!0}):(ue(ot,1),{status:_}),pe=()=>p(6.1,[r]);var ue=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};const de=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return ue("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 ce=(e,t)=>{window.TelegramWebviewProxy?window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t)):window.external&&"notify"in window.external&&window.external.notify(JSON.stringify({eventType:e,eventData:t}))};const be="back_button_pressed",le="clipboard_text_received",ge="custom_method_invoked",we="invoice_closed",me="main_button_pressed",he="phone_requested",fe="popup_closed",ve="reload_iframe",qe="qr_text_received",ye="scan_qr_popup_closed",xe="set_custom_style",Pe="settings_button_pressed",Se="theme_changed",ke="viewport_changed",Oe="write_access_requested",Re=((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 t(t,s){t===Se&&(s.theme_params=e(s.theme_params)),Re.emit(t,s),Re.emit("*",{name:t,data:s})}window.TelegramGameProxy_receiveEvent=t,window.Telegram={WebView:{receiveEvent:t}},window.TelegramGameProxy={receiveEvent:t}})();const Te=(e,t)=>{Re.on(e,t)},Ee=(e,t)=>{Re.off(e,t)},We=(e,t)=>{Re.once(e,t)};var Ce=Object.freeze({__proto__:null,off:Ee,on:Te,once:We});const Ie="web_app_invoke_custom_method",Be="web_app_open_scan_qr_popup",De="web_app_read_text_from_clipboard",Le="web_app_request_phone",Ne="web_app_close",Ae="web_app_close_scan_qr_popup",Me="web_app_data_send",Ue="web_app_expand",Ve="iframe_ready",$e="iframe_will_reload",Ge="web_app_open_invoice",Je="web_app_open_link",Qe="web_app_open_popup",je="web_app_open_tg_link",Fe="web_app_ready",He="web_app_request_theme",ze="web_app_request_viewport",Ke="web_app_request_write_access",Xe="web_app_set_background_color",Ye="web_app_set_header_color",Ze="web_app_setup_back_button",et="web_app_setup_closing_behavior",tt="web_app_setup_main_button",st="web_app_setup_settings_button",at="web_app_switch_inline_query",ot="web_app_trigger_haptic_feedback";export{be as EventBackButtonPressed,le as EventClipboardTextReceived,ge as EventCustomMethodInvoked,we as EventInvoiceClosed,me as EventMainButtonPressed,he as EventPhoneRequested,fe as EventPopupClosed,qe as EventQrTextReceived,ve as EventReloadIframe,ye as EventScanQrPopupClosed,xe as EventSetCustomStyle,Pe as EventSettingsButtonPressed,Se as EventThemeChanged,ke as EventViewportChanged,Oe as EventWriteAccessRequested,Ne as MethodClose,Ae as MethodCloseScanQrPopup,Me as MethodDataSend,Ue as MethodExpand,Ve as MethodIframeReady,$e as MethodIframeWillReload,Ie as MethodInvokeCustomMethod,Ge as MethodOpenInvoice,Je as MethodOpenLink,Qe as MethodOpenPopup,Be as MethodOpenScanQrPopup,je as MethodOpenTgLink,De as MethodReadTextFromClipboard,Fe as MethodReady,Le as MethodRequestPhone,He as MethodRequestTheme,ze as MethodRequestViewport,Ke as MethodRequestWriteAccess,Xe as MethodSetBackgroundColor,Ye as MethodSetHeaderColor,Ze as MethodSetupBackButton,et as MethodSetupClosingBehavior,tt as MethodSetupMainButton,st as MethodSetupSettingsButton,at as MethodSwitchInlineQuery,ot as MethodTriggerHapticFeedback,_ as NOT_SUPPORTED,i as TG_DESKTOP,r as TG_PHONE,n as TG_WEB,d as bridgeClose,b as bridgeCloseScanQrPopup,g as bridgeDataSend,m as bridgeExpand,de as bridgeGetInitData,f as bridgeIframeReady,q as bridgeIframeWillReload,P as bridgeInvokeCustomMethod,k as bridgeOpenInvoice,R as bridgeOpenLink,E as bridgeOpenPopup,C as bridgeOpenScanQrPopup,B as bridgeOpenTgLink,L as bridgeReadTextFromClipboard,A as bridgeReady,U as bridgeRequestPhone,$ as bridgeRequestTheme,J as bridgeRequestViewport,j as bridgeRequestWriteAccess,H as bridgeSetBackgroundColor,K as bridgeSetHeaderColor,Y as bridgeSetupBackButton,ee as bridgeSetupClosingBehavior,se as bridgeSetupMainButton,oe as bridgeSetupSettingsButton,re as bridgeSwitchInlineQuery,_e as bridgeTriggerHapticFeedback,o as createIsViewportChanged,ue as debug,Ce as listener,ce as sender,c as supportClose,l as supportCloseScanQrPopup,w as supportDataSend,h as supportExpand,v as supportIframeReady,y as supportIframeWillReload,S as supportInvokeCustomMethod,O as supportOpenInvoice,T as supportOpenLink,W as supportOpenPopup,I as supportOpenScanQrPopup,D as supportOpenTgLink,N as supportReadTextFromClipboard,M as supportReady,V as supportRequestPhone,G as supportRequestTheme,Q as supportRequestViewport,F as supportRequestWriteAccess,z as supportSetBackgroundColor,X as supportSetHeaderColor,Z as supportSetupBackButton,te as supportSetupClosingBehavior,ae as supportSetupMainButton,ne as supportSetupSettingsButton,ie as supportSwitchInlineQuery,pe as supportTriggerHapticFeedback};