@apiteam/twa-bridge 0.0.2-beta.1 → 0.0.2-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@apiteam/twa-bridge",
3
- "version": "0.0.2-beta.1",
3
+ "version": "0.0.2-beta.3",
4
4
  "description": "undefined",
5
5
  "license": "MIT",
6
+ "types": "index.ts",
6
7
  "author": {
7
8
  "name": "Egor Kytyukov",
8
9
  "url": "https://vk.com/xuserz"
package/solid/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("sender"),t=require("solid"),s=require("solid-js");const p=e=>{},o="web",r="phone",a="desktop",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)?a:o})())},u="web_app_close",i=()=>n(0,[o,a,r]);var _=(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="web_app_close_scan_qr_popup",c=()=>l()?(_(d),{status:!0}):{status:"not_supported"},l=()=>n(6.4,[r]),x="web_app_data_send",b=()=>n(0,[o,a,r]),g="web_app_expand",w=()=>n(0,[r]),h="iframe_ready",m=()=>n(0,[o]),f="iframe_will_reload",v=()=>n(0,[o]),S="web_app_invoke_custom_method",q=()=>n(6.9,[o,a,r]),y="web_app_open_invoice",k=()=>n(6.1,[o,a,r]),P="web_app_open_link",R=()=>n(6.4,[o,a,r]),O="web_app_open_popup",T=()=>n(6.2,[o,a,r]),C="web_app_open_scan_qr_popup",B=()=>n(6.4,[r]),I="web_app_open_tg_link",W=()=>n(7,[o,a,r]),E="web_app_read_text_from_clipboard",L=()=>n(6.4,[o,a,r]),D="web_app_ready",G=()=>n(6.9,[o,a,r]),M="web_app_request_phone",Q=()=>n(6.9,[o,a,r]),A="web_app_request_theme",H=()=>n(0,[o,a,r]),N="web_app_request_viewport",V=()=>n(0,[o,a,r]),F="web_app_request_write_access",U=()=>n(6.9,[o,a,r]),J="web_app_set_background_color",j=()=>n(6.1,[o,a,r]),$="web_app_set_header_color",z=()=>n(6.1,[o,a,r]),K="web_app_setup_back_button",X=()=>n(6.1,[o,a,r]),Y="web_app_setup_closing_behavior",Z=()=>n(0,[o,a,r]),ee="web_app_setup_main_button",te=()=>n(0,[o,a,r]),se="web_app_setup_settings_button",pe=()=>n(6.1,[o,a,r]),oe="web_app_switch_inline_query",re=()=>n(6.7,[o,a,r]),ae="web_app_trigger_haptic_feedback",ne=()=>n(6.1,[r]),ue=((e=new Map)=>({once:(t,s,p=e.get(t),o=(e=>{s(e),p&&p.splice(p.indexOf(s)>>>0,1)}))=>p?p.push(o):e.set(t,[o]),on:(t,s,p=e.get(t))=>p?p.push(s):e.set(t,[s]),off:(t,s,p=e.get(t))=>p&&s?p.splice(p.indexOf(s)>>>0,1):e.set(t,[]),emit:(t,s,p=e.get(t)||[])=>{for(const e of p)e(s)}}))(),ie=()=>{function e(e,t){ue.emit(e,t),ue.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}};ie();const _e=(e,t)=>{ue.once(e,t)};var de=Object.freeze({__proto__:null,listenerStart:ie,off:(e,t)=>{ue.off(e,t)},on:(e,t)=>{ue.on(e,t)},once:_e});exports.TG_DESKTOP=a,exports.TG_PHONE=r,exports.TG_WEB=o,exports.bridgeClose=()=>i()?(_(u),{status:!0}):{status:"not_supported"},exports.bridgeCloseScanQrPopup=c,exports.bridgeDataSend=e=>b()?(_(x,e),{status:!0}):{status:"not_supported"},exports.bridgeExpand=()=>w()?(_(g),{status:!0}):{status:"not_supported"},exports.bridgeGetInitData=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return 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=>m()?(_(h,e),{status:!0}):{status:"not_supported"},exports.bridgeIframeWillReload=()=>v()?(_(f),{status:!0}):{status:"not_supported"},exports.bridgeInvokeCustomMethod=e=>q()?(_(S,e),{status:!0}):{status:"not_supported"},exports.bridgeOpenInvoice=e=>k()?(_(y,e),{status:!0}):{status:"not_supported"},exports.bridgeOpenLink=e=>R()?(_(P,e),{status:!0}):{status:"not_supported"},exports.bridgeOpenPopup=e=>T()?(e.title.length,e.message.length,e.message.length,e.buttons.length,e.buttons.length,e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g))),_(O,e),{status:!0}):{status:"not_supported"},exports.bridgeOpenScanQrPopup=async e=>B()?(_(C,e),new Promise(((t,s)=>{_e("qr_text_received",(s=>{e.is_close&&c(),t({status:!0,data:s})})),_e("scan_qr_popup_closed",(()=>{t({status:"closed",data:{data:void 0}})}))}))):{status:"not_supported",data:{data:void 0}},exports.bridgeOpenTgLink=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),W()?(_(I,e),{status:!0}):{status:"not_supported"}),exports.bridgeReadTextFromClipboard=e=>L()?(_(E,e),{status:!0}):{status:"not_supported"},exports.bridgeReady=()=>G()?(_(D),{status:!0}):{status:"not_supported"},exports.bridgeRequestPhone=async()=>Q()?(_(M),new Promise(((e,t)=>{_e("phone_requested",(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):{status:"not_supported"},exports.bridgeRequestTheme=()=>H()?(_(A),{status:!0}):{status:"not_supported"},exports.bridgeRequestViewport=()=>V()?(_(N),{status:!0}):{status:"not_supported"},exports.bridgeRequestWriteAccess=()=>U()?(_(F),{status:!0}):{status:"not_supported"},exports.bridgeSetBackgroundColor=e=>j()?(_(J,e),{status:!0}):{status:"not_supported"},exports.bridgeSetHeaderColor=e=>z()?(_($,e),{status:!0}):{status:"not_supported"},exports.bridgeSetupBackButton=e=>X()?(_(K,e),{status:!0}):{status:"not_supported"},exports.bridgeSetupClosingBehavior=e=>Z()?(_(Y,e),{status:!0}):{status:"not_supported"},exports.bridgeSetupMainButton=e=>te()?(_(ee,e),{status:!0}):{status:"not_supported"},exports.bridgeSetupSettingsButton=e=>pe()?(_(se,e),{status:!0}):{status:"not_supported"},exports.bridgeSwitchInlineQuery=e=>re()?(e.query.length,_(oe,e),{status:!0}):{status:"not_supported"},exports.bridgeTriggerHapticFeedback=e=>ne()?(_(ae,e),{status:!0}):{status:"not_supported"},exports.createIsViewportChanged=()=>{const[p,o]=s.createSignal({height:0,is_expanded:!1,is_state_stable:!1}),r=e=>o(e);return s.onMount((()=>{t.listener.on("viewport_changed",r),e("web_app_request_viewport")})),s.onCleanup((()=>{t.listener.off("viewport_changed",r)})),p},exports.debug=p,exports.listener=de,exports.sender=_,exports.supportClose=i,exports.supportCloseScanQrPopup=l,exports.supportDataSend=b,exports.supportExpand=w,exports.supportIframeReady=m,exports.supportIframeWillReload=v,exports.supportInvokeCustomMethod=q,exports.supportOpenInvoice=k,exports.supportOpenLink=R,exports.supportOpenPopup=T,exports.supportOpenScanQrPopup=B,exports.supportOpenTgLink=W,exports.supportReadTextFromClipboard=L,exports.supportReady=G,exports.supportRequestPhone=Q,exports.supportRequestTheme=H,exports.supportRequestViewport=V,exports.supportRequestWriteAccess=U,exports.supportSetBackgroundColor=j,exports.supportSetHeaderColor=z,exports.supportSetupBackButton=X,exports.supportSetupClosingBehavior=Z,exports.supportSetupMainButton=te,exports.supportSetupSettingsButton=pe,exports.supportSwitchInlineQuery=re,exports.supportTriggerHapticFeedback=ne;
1
+ "use strict";var e=require("solid-js");const t=e=>{},s="web",p="phone",o="desktop",r=(e,t)=>{const r=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(r)>=e&&-1!==t.indexOf((()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?p:["tdesktop","macos"].includes(t)?o:s})())},a="web_app_close",n=()=>r(0,[s,o,p]);var u=(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 i="web_app_close_scan_qr_popup",_=()=>d()?(u(i),{status:!0}):{status:"not_supported"},d=()=>r(6.4,[p]),c="web_app_data_send",l=()=>r(0,[s,o,p]),x="web_app_expand",b=()=>r(0,[p]),g="iframe_ready",w=()=>r(0,[s]),h="iframe_will_reload",m=()=>r(0,[s]),f="web_app_invoke_custom_method",v=()=>r(6.9,[s,o,p]),S="web_app_open_invoice",y=()=>r(6.1,[s,o,p]),k="web_app_open_link",q=()=>r(6.4,[s,o,p]),P="web_app_open_popup",R=()=>r(6.2,[s,o,p]),O="web_app_open_scan_qr_popup",T=()=>r(6.4,[p]),C="web_app_open_tg_link",B=()=>r(7,[s,o,p]),I="web_app_read_text_from_clipboard",W=()=>r(6.4,[s,o,p]),E="web_app_ready",L=()=>r(6.9,[s,o,p]),D="web_app_request_phone",G=()=>r(6.9,[s,o,p]),M="web_app_request_theme",Q=()=>r(0,[s,o,p]),A="web_app_request_viewport",H=()=>r(0,[s,o,p]),N="web_app_request_write_access",V=()=>r(6.9,[s,o,p]),F="web_app_set_background_color",U=()=>r(6.1,[s,o,p]),J="web_app_set_header_color",j=()=>r(6.1,[s,o,p]),$="web_app_setup_back_button",z=()=>r(6.1,[s,o,p]),K="web_app_setup_closing_behavior",X=()=>r(0,[s,o,p]),Y="web_app_setup_main_button",Z=()=>r(0,[s,o,p]),ee="web_app_setup_settings_button",te=()=>r(6.1,[s,o,p]),se="web_app_switch_inline_query",pe=()=>r(6.7,[s,o,p]),oe="web_app_trigger_haptic_feedback",re=()=>r(6.1,[p]),ae=((e=new Map)=>({once:(t,s,p=e.get(t),o=(e=>{s(e),p&&p.splice(p.indexOf(s)>>>0,1)}))=>p?p.push(o):e.set(t,[o]),on:(t,s,p=e.get(t))=>p?p.push(s):e.set(t,[s]),off:(t,s,p=e.get(t))=>p&&s?p.splice(p.indexOf(s)>>>0,1):e.set(t,[]),emit:(t,s,p=e.get(t)||[])=>{for(const e of p)e(s)}}))(),ne=()=>{function e(e,t){ae.emit(e,t),ae.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}};ne();const ue=(e,t)=>{ae.on(e,t)},ie=(e,t)=>{ae.off(e,t)},_e=(e,t)=>{ae.once(e,t)};var de=Object.freeze({__proto__:null,listenerStart:ne,off:ie,on:ue,once:_e});exports.TG_DESKTOP=o,exports.TG_PHONE=p,exports.TG_WEB=s,exports.bridgeClose=()=>n()?(u(a),{status:!0}):{status:"not_supported"},exports.bridgeCloseScanQrPopup=_,exports.bridgeDataSend=e=>l()?(u(c,e),{status:!0}):{status:"not_supported"},exports.bridgeExpand=()=>b()?(u(x),{status:!0}):{status:"not_supported"},exports.bridgeGetInitData=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return 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=>w()?(u(g,e),{status:!0}):{status:"not_supported"},exports.bridgeIframeWillReload=()=>m()?(u(h),{status:!0}):{status:"not_supported"},exports.bridgeInvokeCustomMethod=e=>v()?(u(f,e),{status:!0}):{status:"not_supported"},exports.bridgeOpenInvoice=e=>y()?(u(S,e),{status:!0}):{status:"not_supported"},exports.bridgeOpenLink=e=>q()?(u(k,e),{status:!0}):{status:"not_supported"},exports.bridgeOpenPopup=e=>R()?(e.title.length,e.message.length,e.message.length,e.buttons.length,e.buttons.length,e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g))),u(P,e),{status:!0}):{status:"not_supported"},exports.bridgeOpenScanQrPopup=async e=>T()?(u(O,e),new Promise(((t,s)=>{_e("qr_text_received",(s=>{e.is_close&&_(),t({status:!0,data:s})})),_e("scan_qr_popup_closed",(()=>{t({status:"closed",data:{data:void 0}})}))}))):{status:"not_supported",data:{data:void 0}},exports.bridgeOpenTgLink=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),B()?(u(C,e),{status:!0}):{status:"not_supported"}),exports.bridgeReadTextFromClipboard=e=>W()?(u(I,e),{status:!0}):{status:"not_supported"},exports.bridgeReady=()=>L()?(u(E),{status:!0}):{status:"not_supported"},exports.bridgeRequestPhone=async()=>G()?(u(D),new Promise(((e,t)=>{_e("phone_requested",(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):{status:"not_supported"},exports.bridgeRequestTheme=()=>Q()?(u(M),{status:!0}):{status:"not_supported"},exports.bridgeRequestViewport=()=>H()?(u(A),{status:!0}):{status:"not_supported"},exports.bridgeRequestWriteAccess=()=>V()?(u(N),{status:!0}):{status:"not_supported"},exports.bridgeSetBackgroundColor=e=>U()?(u(F,e),{status:!0}):{status:"not_supported"},exports.bridgeSetHeaderColor=e=>j()?(u(J,e),{status:!0}):{status:"not_supported"},exports.bridgeSetupBackButton=e=>z()?(u($,e),{status:!0}):{status:"not_supported"},exports.bridgeSetupClosingBehavior=e=>X()?(u(K,e),{status:!0}):{status:"not_supported"},exports.bridgeSetupMainButton=e=>Z()?(u(Y,e),{status:!0}):{status:"not_supported"},exports.bridgeSetupSettingsButton=e=>te()?(u(ee,e),{status:!0}):{status:"not_supported"},exports.bridgeSwitchInlineQuery=e=>pe()?(e.query.length,u(se,e),{status:!0}):{status:"not_supported"},exports.bridgeTriggerHapticFeedback=e=>re()?(u(oe,e),{status:!0}):{status:"not_supported"},exports.createIsViewportChanged=()=>{const[t,s]=e.createSignal({height:0,is_expanded:!1,is_state_stable:!1}),p=e=>s(e);return e.onMount((()=>{ue("viewport_changed",p),u("web_app_request_viewport")})),e.onCleanup((()=>{ie("viewport_changed",p)})),t},exports.debug=t,exports.listener=de,exports.sender=u,exports.supportClose=n,exports.supportCloseScanQrPopup=d,exports.supportDataSend=l,exports.supportExpand=b,exports.supportIframeReady=w,exports.supportIframeWillReload=m,exports.supportInvokeCustomMethod=v,exports.supportOpenInvoice=y,exports.supportOpenLink=q,exports.supportOpenPopup=R,exports.supportOpenScanQrPopup=T,exports.supportOpenTgLink=B,exports.supportReadTextFromClipboard=W,exports.supportReady=L,exports.supportRequestPhone=G,exports.supportRequestTheme=Q,exports.supportRequestViewport=H,exports.supportRequestWriteAccess=V,exports.supportSetBackgroundColor=U,exports.supportSetHeaderColor=j,exports.supportSetupBackButton=z,exports.supportSetupClosingBehavior=X,exports.supportSetupMainButton=Z,exports.supportSetupSettingsButton=te,exports.supportSwitchInlineQuery=pe,exports.supportTriggerHapticFeedback=re;
package/solid/index.mjs CHANGED
@@ -1 +1 @@
1
- import e from"sender";import{listener as t}from"solid";import{createSignal as s,onMount as a,onCleanup as o}from"solid-js";const p=e=>{},n="web",r="phone",u="desktop",_=(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)?u:n})())},i="web_app_close",d=()=>c()?(b(i),{status:!0}):{status:"not_supported"},c=()=>_(0,[n,u,r]);var b=(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="web_app_close_scan_qr_popup",g=()=>w()?(b(l),{status:!0}):{status:"not_supported"},w=()=>_(6.4,[r]),h="web_app_data_send",m=e=>f()?(b(h,e),{status:!0}):{status:"not_supported"},f=()=>_(0,[n,u,r]),v="web_app_expand",y=()=>S()?(b(v),{status:!0}):{status:"not_supported"},S=()=>_(0,[r]),x="iframe_ready",q=e=>k()?(b(x,e),{status:!0}):{status:"not_supported"},k=()=>_(0,[n]),P="iframe_will_reload",O=()=>R()?(b(P),{status:!0}):{status:"not_supported"},R=()=>_(0,[n]),T="web_app_invoke_custom_method",W=e=>C()?(b(T,e),{status:!0}):{status:"not_supported"},C=()=>_(6.9,[n,u,r]),B="web_app_open_invoice",E=e=>I()?(b(B,e),{status:!0}):{status:"not_supported"},I=()=>_(6.1,[n,u,r]),L="web_app_open_link",A=e=>D()?(b(L,e),{status:!0}):{status:"not_supported"},D=()=>_(6.4,[n,u,r]),N="web_app_open_popup",U=e=>G()?(e.title.length,e.message.length,e.message.length,e.buttons.length,e.buttons.length,e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g))),b(N,e),{status:!0}):{status:"not_supported"},G=()=>_(6.2,[n,u,r]),J="web_app_open_scan_qr_popup",M=async e=>Q()?(b(J,e),new Promise(((t,s)=>{Ue("qr_text_received",(s=>{e.is_close&&g(),t({status:!0,data:s})})),Ue("scan_qr_popup_closed",(()=>{t({status:"closed",data:{data:void 0}})}))}))):{status:"not_supported",data:{data:void 0}},Q=()=>_(6.4,[r]),V="web_app_open_tg_link",j=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),F()?(b(V,e),{status:!0}):{status:"not_supported"}),F=()=>_(7,[n,u,r]),H="web_app_read_text_from_clipboard",$=e=>z()?(b(H,e),{status:!0}):{status:"not_supported"},z=()=>_(6.4,[n,u,r]),K="web_app_ready",X=()=>Y()?(b(K),{status:!0}):{status:"not_supported"},Y=()=>_(6.9,[n,u,r]),Z="web_app_request_phone",ee=async()=>te()?(b(Z),new Promise(((e,t)=>{Ue("phone_requested",(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):{status:"not_supported"},te=()=>_(6.9,[n,u,r]),se="web_app_request_theme",ae=()=>oe()?(b(se),{status:!0}):{status:"not_supported"},oe=()=>_(0,[n,u,r]),pe="web_app_request_viewport",ne=()=>re()?(b(pe),{status:!0}):{status:"not_supported"},re=()=>_(0,[n,u,r]),ue="web_app_request_write_access",_e=()=>ie()?(b(ue),{status:!0}):{status:"not_supported"},ie=()=>_(6.9,[n,u,r]),de="web_app_set_background_color",ce=e=>be()?(b(de,e),{status:!0}):{status:"not_supported"},be=()=>_(6.1,[n,u,r]),le="web_app_set_header_color",ge=e=>we()?(b(le,e),{status:!0}):{status:"not_supported"},we=()=>_(6.1,[n,u,r]),he="web_app_setup_back_button",me=e=>fe()?(b(he,e),{status:!0}):{status:"not_supported"},fe=()=>_(6.1,[n,u,r]),ve="web_app_setup_closing_behavior",ye=e=>Se()?(b(ve,e),{status:!0}):{status:"not_supported"},Se=()=>_(0,[n,u,r]),xe="web_app_setup_main_button",qe=e=>ke()?(b(xe,e),{status:!0}):{status:"not_supported"},ke=()=>_(0,[n,u,r]),Pe="web_app_setup_settings_button",Oe=e=>Re()?(b(Pe,e),{status:!0}):{status:"not_supported"},Re=()=>_(6.1,[n,u,r]),Te="web_app_switch_inline_query",We=e=>Ce()?(e.query.length,b(Te,e),{status:!0}):{status:"not_supported"},Ce=()=>_(6.7,[n,u,r]),Be="web_app_trigger_haptic_feedback",Ee=e=>Ie()?(b(Be,e),{status:!0}):{status:"not_supported"},Ie=()=>_(6.1,[r]),Le=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return 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},Ae=()=>{const[p,n]=s({height:0,is_expanded:!1,is_state_stable:!1}),r=e=>n(e);return a((()=>{t.on("viewport_changed",r),e("web_app_request_viewport")})),o((()=>{t.off("viewport_changed",r)})),p},De=((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)}}))(),Ne=()=>{function e(e,t){De.emit(e,t),De.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}};Ne();const Ue=(e,t)=>{De.once(e,t)};var Ge=Object.freeze({__proto__:null,listenerStart:Ne,off:(e,t)=>{De.off(e,t)},on:(e,t)=>{De.on(e,t)},once:Ue});export{u as TG_DESKTOP,r as TG_PHONE,n as TG_WEB,d as bridgeClose,g as bridgeCloseScanQrPopup,m as bridgeDataSend,y as bridgeExpand,Le as bridgeGetInitData,q as bridgeIframeReady,O as bridgeIframeWillReload,W as bridgeInvokeCustomMethod,E as bridgeOpenInvoice,A as bridgeOpenLink,U as bridgeOpenPopup,M as bridgeOpenScanQrPopup,j as bridgeOpenTgLink,$ as bridgeReadTextFromClipboard,X as bridgeReady,ee as bridgeRequestPhone,ae as bridgeRequestTheme,ne as bridgeRequestViewport,_e as bridgeRequestWriteAccess,ce as bridgeSetBackgroundColor,ge as bridgeSetHeaderColor,me as bridgeSetupBackButton,ye as bridgeSetupClosingBehavior,qe as bridgeSetupMainButton,Oe as bridgeSetupSettingsButton,We as bridgeSwitchInlineQuery,Ee as bridgeTriggerHapticFeedback,Ae as createIsViewportChanged,p as debug,Ge as listener,b as sender,c as supportClose,w as supportCloseScanQrPopup,f as supportDataSend,S as supportExpand,k as supportIframeReady,R as supportIframeWillReload,C as supportInvokeCustomMethod,I as supportOpenInvoice,D as supportOpenLink,G as supportOpenPopup,Q as supportOpenScanQrPopup,F as supportOpenTgLink,z as supportReadTextFromClipboard,Y as supportReady,te as supportRequestPhone,oe as supportRequestTheme,re as supportRequestViewport,ie as supportRequestWriteAccess,be as supportSetBackgroundColor,we as supportSetHeaderColor,fe as supportSetupBackButton,Se as supportSetupClosingBehavior,ke as supportSetupMainButton,Re as supportSetupSettingsButton,Ce as supportSwitchInlineQuery,Ie as supportTriggerHapticFeedback};
1
+ import{createSignal as e,onMount as t,onCleanup as s}from"solid-js";const a=e=>{},o="web",p="phone",n="desktop",r=(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)?p:["tdesktop","macos"].includes(t)?n:o})())},u="web_app_close",_=()=>i()?(d(u),{status:!0}):{status:"not_supported"},i=()=>r(0,[o,n,p]);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 c="web_app_close_scan_qr_popup",b=()=>l()?(d(c),{status:!0}):{status:"not_supported"},l=()=>r(6.4,[p]),g="web_app_data_send",w=e=>h()?(d(g,e),{status:!0}):{status:"not_supported"},h=()=>r(0,[o,n,p]),m="web_app_expand",f=()=>v()?(d(m),{status:!0}):{status:"not_supported"},v=()=>r(0,[p]),y="iframe_ready",S=e=>x()?(d(y,e),{status:!0}):{status:"not_supported"},x=()=>r(0,[o]),q="iframe_will_reload",k=()=>P()?(d(q),{status:!0}):{status:"not_supported"},P=()=>r(0,[o]),O="web_app_invoke_custom_method",R=e=>T()?(d(O,e),{status:!0}):{status:"not_supported"},T=()=>r(6.9,[o,n,p]),W="web_app_open_invoice",C=e=>B()?(d(W,e),{status:!0}):{status:"not_supported"},B=()=>r(6.1,[o,n,p]),E="web_app_open_link",I=e=>L()?(d(E,e),{status:!0}):{status:"not_supported"},L=()=>r(6.4,[o,n,p]),A="web_app_open_popup",D=e=>N()?(e.title.length,e.message.length,e.message.length,e.buttons.length,e.buttons.length,e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g))),d(A,e),{status:!0}):{status:"not_supported"},N=()=>r(6.2,[o,n,p]),U="web_app_open_scan_qr_popup",G=async e=>J()?(d(U,e),new Promise(((t,s)=>{Ue("qr_text_received",(s=>{e.is_close&&b(),t({status:!0,data:s})})),Ue("scan_qr_popup_closed",(()=>{t({status:"closed",data:{data:void 0}})}))}))):{status:"not_supported",data:{data:void 0}},J=()=>r(6.4,[p]),M="web_app_open_tg_link",Q=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),V()?(d(M,e),{status:!0}):{status:"not_supported"}),V=()=>r(7,[o,n,p]),j="web_app_read_text_from_clipboard",F=e=>H()?(d(j,e),{status:!0}):{status:"not_supported"},H=()=>r(6.4,[o,n,p]),$="web_app_ready",z=()=>K()?(d($),{status:!0}):{status:"not_supported"},K=()=>r(6.9,[o,n,p]),X="web_app_request_phone",Y=async()=>Z()?(d(X),new Promise(((e,t)=>{Ue("phone_requested",(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):{status:"not_supported"},Z=()=>r(6.9,[o,n,p]),ee="web_app_request_theme",te=()=>se()?(d(ee),{status:!0}):{status:"not_supported"},se=()=>r(0,[o,n,p]),ae="web_app_request_viewport",oe=()=>pe()?(d(ae),{status:!0}):{status:"not_supported"},pe=()=>r(0,[o,n,p]),ne="web_app_request_write_access",re=()=>ue()?(d(ne),{status:!0}):{status:"not_supported"},ue=()=>r(6.9,[o,n,p]),_e="web_app_set_background_color",ie=e=>de()?(d(_e,e),{status:!0}):{status:"not_supported"},de=()=>r(6.1,[o,n,p]),ce="web_app_set_header_color",be=e=>le()?(d(ce,e),{status:!0}):{status:"not_supported"},le=()=>r(6.1,[o,n,p]),ge="web_app_setup_back_button",we=e=>he()?(d(ge,e),{status:!0}):{status:"not_supported"},he=()=>r(6.1,[o,n,p]),me="web_app_setup_closing_behavior",fe=e=>ve()?(d(me,e),{status:!0}):{status:"not_supported"},ve=()=>r(0,[o,n,p]),ye="web_app_setup_main_button",Se=e=>xe()?(d(ye,e),{status:!0}):{status:"not_supported"},xe=()=>r(0,[o,n,p]),qe="web_app_setup_settings_button",ke=e=>Pe()?(d(qe,e),{status:!0}):{status:"not_supported"},Pe=()=>r(6.1,[o,n,p]),Oe="web_app_switch_inline_query",Re=e=>Te()?(e.query.length,d(Oe,e),{status:!0}):{status:"not_supported"},Te=()=>r(6.7,[o,n,p]),We="web_app_trigger_haptic_feedback",Ce=e=>Be()?(d(We,e),{status:!0}):{status:"not_supported"},Be=()=>r(6.1,[p]),Ee=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return 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},Ie=()=>{const[a,o]=e({height:0,is_expanded:!1,is_state_stable:!1}),p=e=>o(e);return t((()=>{De("viewport_changed",p),d("web_app_request_viewport")})),s((()=>{Ne("viewport_changed",p)})),a},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)}}))(),Ae=()=>{function e(e,t){Le.emit(e,t),Le.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}};Ae();const De=(e,t)=>{Le.on(e,t)},Ne=(e,t)=>{Le.off(e,t)},Ue=(e,t)=>{Le.once(e,t)};var Ge=Object.freeze({__proto__:null,listenerStart:Ae,off:Ne,on:De,once:Ue});export{n as TG_DESKTOP,p as TG_PHONE,o as TG_WEB,_ as bridgeClose,b as bridgeCloseScanQrPopup,w as bridgeDataSend,f as bridgeExpand,Ee as bridgeGetInitData,S as bridgeIframeReady,k as bridgeIframeWillReload,R as bridgeInvokeCustomMethod,C as bridgeOpenInvoice,I as bridgeOpenLink,D as bridgeOpenPopup,G as bridgeOpenScanQrPopup,Q as bridgeOpenTgLink,F as bridgeReadTextFromClipboard,z as bridgeReady,Y as bridgeRequestPhone,te as bridgeRequestTheme,oe as bridgeRequestViewport,re as bridgeRequestWriteAccess,ie as bridgeSetBackgroundColor,be as bridgeSetHeaderColor,we as bridgeSetupBackButton,fe as bridgeSetupClosingBehavior,Se as bridgeSetupMainButton,ke as bridgeSetupSettingsButton,Re as bridgeSwitchInlineQuery,Ce as bridgeTriggerHapticFeedback,Ie as createIsViewportChanged,a as debug,Ge as listener,d as sender,i as supportClose,l as supportCloseScanQrPopup,h as supportDataSend,v as supportExpand,x as supportIframeReady,P as supportIframeWillReload,T as supportInvokeCustomMethod,B as supportOpenInvoice,L as supportOpenLink,N as supportOpenPopup,J as supportOpenScanQrPopup,V as supportOpenTgLink,H as supportReadTextFromClipboard,K as supportReady,Z as supportRequestPhone,se as supportRequestTheme,pe as supportRequestViewport,ue as supportRequestWriteAccess,de as supportSetBackgroundColor,le as supportSetHeaderColor,he as supportSetupBackButton,ve as supportSetupClosingBehavior,xe as supportSetupMainButton,Pe as supportSetupSettingsButton,Te as supportSwitchInlineQuery,Be as supportTriggerHapticFeedback};