@apiteam/twa-bridge 0.0.2-beta.4 → 7.0.0-beta.1

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