@apiteam/twa-bridge 7.1.1 → 7.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/solid/index.js CHANGED
@@ -1 +1,491 @@
1
- "use strict";var e=require("solid-js"),t=require("solid-js/store");const s="web",o="phone",r="desktop",p=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?o:["tdesktop","macos"].includes(t)?r:s},a="not_supported",n=(e,t)=>{const s=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(s?.replace(".",""))>=Number(String(e)?.replace(".",""))&&-1!==t.indexOf(p())},i=()=>Math.random().toString(36).substring(3,9),u=e=>{var t;if(t=/^\s*#([0-9a-f]{6})\s*$/i.exec(e+=""))return"#"+t[1].toLowerCase();if(t=/^\s*#([0-9a-f])([0-9a-f])([0-9a-f])\s*$/i.exec(e))return("#"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]).toLowerCase();if(t=/^\s*rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)\s*$/.exec(e)){var s=parseInt(t[1]),o=parseInt(t[2]),r=parseInt(t[3]);return"#"+((s<16?"0":"")+s.toString(16))+((o<16?"0":"")+o.toString(16))+((r<16?"0":"")+r.toString(16))}return!1},d=e=>{"#1c1c1d"==e.bg_color&&e.bg_color==e.secondary_bg_color&&(e.secondary_bg_color="#2c2c2e");const t=window.location.hash.slice(1),s=new URLSearchParams(t);var o=JSON.parse(s.get("tgWebAppThemeParams")??"");for(var r of Object.keys(e)){var p=u(e[r]);"string"==typeof p&&(o[r]=p)}return o},_=e=>c()?(le(ve,e),{status:!0}):(xe(ve,1),{status:a}),c=()=>n(0,[s,r,o]),x=e=>g()?(le(Se,e),{status:!0}):(xe(Se,1),{status:a}),g=()=>n(6.4,[o]),l=e=>h()?(le(fe,e),{status:!0}):(xe(fe,1),{status:a}),h=()=>n(0,[s,r,o]),b=e=>w()?(le(ye,e),{status:!0}):(xe(ye,1),{status:a}),w=()=>n(0,[o]),m=e=>v()?(le(Me,e),{status:!0}):(xe(Me,1),{status:a}),v=()=>n(0,[s]),S=()=>f()?(le(Me),{status:!0}):(xe(Me,1),{status:a}),f=()=>n(0,[s]),y=async e=>M()?(void 0===e.req_id&&(e.req_id=i()),le(he,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),et($e,o))};Ze($e,o)}))):(xe(he,1),{status:a}),M=()=>n(6.9,[s,r,o]),P=e=>C()?(le(Ce,e),{status:!0}):(xe(Ce,1),{status:a}),C=()=>n(6.1,[s,r,o]),q=e=>R()?(le(qe,e),{status:!0}):(xe(qe,1),{status:a}),R=()=>n(6.4,[s,r,o]),k=async e=>B()?(e.title.length>64&&xe(Re,3),e.message.length<1&&xe(Re,4),e.message.length>256&&xe(Re,5),e.buttons.length<1&&xe(Re,6),e.buttons.length>3&&xe(Re,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&xe(Re,8),le(Re,e),new Promise(((t,s)=>{const o=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),et(Fe,o)};Ze(Fe,o)}))):(xe(Re,1),{status:a}),B=()=>n(6.2,[s,r,o]),O=async e=>T()?(le(be,e),new Promise(((t,s)=>{tt(Ue,(s=>{e.is_close&&x(),t({status:!0,data:s})})),tt(ze,(()=>{t({status:"closed"})}))}))):(xe(be,1),{status:a}),T=()=>n(6.4,[o]),E=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),I()?(le(ke,e),{status:!0}):(xe(ke,1),{status:a})),I=()=>n(7,[s,r,o]),W=async e=>L()?(e||(e={req_id:void 0}),void 0===e.req_id&&(e.req_id=i()),le(we,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e?.req_id&&(t({status:!0,data:s}),et(Je,o))};Ze(Je,o)}))):(xe(we,1),{status:a}),L=()=>n(6.4,[s,r,o]),N=e=>D()?(le(Be,e),{status:!0}):(xe(Be,1),{status:a}),D=()=>n(6.9,[s,r,o]),Q=async()=>A()?(le(me),new Promise(((e,t)=>{tt(je,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(xe(me,1),{status:a}),A=()=>n(6.9,[s,r,o]),G=e=>H()?(le(Oe,e),{status:!0}):(xe(Oe,1),{status:a}),H=()=>n(0,[s,r,o]),V=e=>J()?(le(Te,e),{status:!0}):(xe(Te,1),{status:a}),J=()=>n(0,[s,r,o]),$=()=>j()?(le(Ee),{status:!0}):(xe(Ee,1),{status:a}),j=()=>n(6.9,[s,r,o]),F=e=>U()?(le(Ie,e),{status:!0}):(xe(Ie,1),{status:a}),U=()=>n(6.1,[s,r,o]),z=e=>K()?(le(We,e),{status:!0}):(xe(We,1),{status:a}),K=()=>n(6.1,[s,r,o]),X=e=>Y()?(le(Le,{color:e?.color||e?.color_key}),{status:!0}):(xe(Le,1),{status:a}),Y=()=>n(710,[s,r,o]),Z=e=>ee()?(le(Ne,e),{status:!0}):(xe(Ne,1),{status:a}),ee=()=>n(6.1,[s,r,o]),te=e=>se()?(le(De,e),{status:!0}):(xe(De,1),{status:a}),se=()=>n(0,[s,r,o]),oe=e=>re()?(le(Qe,e),{status:!0}):(xe(Qe,1),{status:a}),re=()=>n(0,[s,r,o]),pe=e=>ae()?(le(Ae,e),{status:!0}):(xe(Ae,1),{status:a}),ae=()=>n(6.1,[s,r,o]),ne=e=>ie()?(e.query.length>256&&xe(Ge,9),le(Ge,e),{status:!0}):(xe(Ge,1),{status:a}),ie=()=>n(6.7,[s,r,o]),ue=e=>de()?(le(He,e),{status:!0}):(xe(He,1),{status:a}),de=()=>n(6.1,[o]),_e=e=>ce()?(le(Ve,e),{status:!0}):(xe(Ve,1),{status:a}),ce=()=>n(7.7,[s,r,o]);var xe=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};const ge=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppData");if(!t)return void xe("getInitData",2);const s=new URLSearchParams(t);let o={};return s.forEach(((e,t)=>{if(o[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{o[t]=JSON.parse(e)}catch{}})),o};var le=(e,t)=>{if(window.TelegramWebviewProxy)window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t));else if(window.external&&"notify"in window.external)window.external.notify(JSON.stringify({eventType:e,eventData:t}));else try{"*",window.parent.postMessage(JSON.stringify({eventType:e,eventData:t}),"*")}catch(e){xe("postMessage Iframe",10)}};const he="web_app_invoke_custom_method",be="web_app_open_scan_qr_popup",we="web_app_read_text_from_clipboard",me="web_app_request_phone",ve="web_app_close",Se="web_app_close_scan_qr_popup",fe="web_app_data_send",ye="web_app_expand",Me="iframe_ready",Pe="iframe_will_reload",Ce="web_app_open_invoice",qe="web_app_open_link",Re="web_app_open_popup",ke="web_app_open_tg_link",Be="web_app_ready",Oe="web_app_request_theme",Te="web_app_request_viewport",Ee="web_app_request_write_access",Ie="web_app_set_background_color",We="web_app_set_header_color",Le="web_app_set_bottom_bar_color",Ne="web_app_setup_back_button",De="web_app_setup_closing_behavior",Qe="web_app_setup_main_button",Ae="web_app_setup_settings_button",Ge="web_app_switch_inline_query",He="web_app_trigger_haptic_feedback",Ve="web_app_setup_swipe_behavior";const Je="clipboard_text_received",$e="custom_method_invoked",je="phone_requested",Fe="popup_closed",Ue="qr_text_received",ze="scan_qr_popup_closed",Ke="theme_changed",Xe="viewport_changed",Ye=((e=new Map)=>({once:(t,s,o=e.get(t),r=(e=>{s(e),o&&o.splice(o.indexOf(s)>>>0,1)}))=>o?o.push(r):e.set(t,[r]),on:(t,s,o=e.get(t))=>o?o.push(s):e.set(t,[s]),off:(t,s,o=e.get(t))=>o&&s?o.splice(o.indexOf(s)>>>0,1):e.set(t,[]),emit:(t,s,o=e.get(t)||[])=>{for(const e of o)e(s)}}))();(()=>{function e(e,t){e===Ke&&(t.theme_params=d(t.theme_params)),Ye.emit(e,t),Ye.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const Ze=(e,t)=>{Ye.on(e,t)},et=(e,t)=>{Ye.off(e,t)},tt=(e,t)=>{Ye.once(e,t)};var st=Object.freeze({__proto__:null,off:et,on:Ze,once:tt});const ot=e.createContext({viewport:void 0,theme:void 0,init:void 0});exports.ContextTwa=ot,exports.EventBackButtonPressed="back_button_pressed",exports.EventClipboardTextReceived=Je,exports.EventCustomMethodInvoked=$e,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=je,exports.EventPopupClosed=Fe,exports.EventQrTextReceived=Ue,exports.EventReloadIframe="reload_iframe",exports.EventScanQrPopupClosed=ze,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged=Ke,exports.EventViewportChanged=Xe,exports.EventWriteAccessRequested="write_access_requested",exports.MethodClose=ve,exports.MethodCloseScanQrPopup=Se,exports.MethodDataSend=fe,exports.MethodExpand=ye,exports.MethodIframeReady=Me,exports.MethodIframeWillReload=Pe,exports.MethodInvokeCustomMethod=he,exports.MethodOpenInvoice=Ce,exports.MethodOpenLink=qe,exports.MethodOpenPopup=Re,exports.MethodOpenScanQrPopup=be,exports.MethodOpenTgLink=ke,exports.MethodReadTextFromClipboard=we,exports.MethodReady=Be,exports.MethodRequestPhone=me,exports.MethodRequestTheme=Oe,exports.MethodRequestViewport=Te,exports.MethodRequestWriteAccess=Ee,exports.MethodSetBackgroundColor=Ie,exports.MethodSetBottomBarColor=Le,exports.MethodSetHeaderColor=We,exports.MethodSetupBackButton=Ne,exports.MethodSetupClosingBehavior=De,exports.MethodSetupMainButton=Qe,exports.MethodSetupSettingsButton=Ae,exports.MethodSetupSwipeBehavior=Ve,exports.MethodSwitchInlineQuery=Ge,exports.MethodTriggerHapticFeedback=He,exports.NOT_SUPPORTED=a,exports.ProviderTWA=s=>{const[o,r]=t.createStore({viewport:void 0,theme:void 0,init:void 0});return e.onMount((()=>{const t=()=>{r("init",ge())};t();const s=e=>{t(),r("viewport",{...e,safe_area_bottom:e.is_expanded&&e.is_state_stable?window.outerHeight-e.height:0})};Ze(Xe,s),V();const o=e=>{t(),r("theme",e)};Ze(Ke,o),V(),e.onCleanup((()=>{et(Xe,s),et(Ke,o)}))})),React.createElement(ot.Provider,{value:o},s.children)},exports.TG_DESKTOP=r,exports.TG_PHONE=o,exports.TG_WEB=s,exports.bridgeClose=_,exports.bridgeCloseScanQrPopup=x,exports.bridgeDataSend=l,exports.bridgeExpand=b,exports.bridgeGetInitData=ge,exports.bridgeGetThemeParams=d,exports.bridgeIframeReady=m,exports.bridgeIframeWillReload=S,exports.bridgeInvokeCustomMethod=y,exports.bridgeOpenInvoice=P,exports.bridgeOpenLink=q,exports.bridgeOpenPopup=k,exports.bridgeOpenScanQrPopup=O,exports.bridgeOpenTgLink=E,exports.bridgeReadTextFromClipboard=W,exports.bridgeReady=N,exports.bridgeRequestPhone=Q,exports.bridgeRequestTheme=G,exports.bridgeRequestViewport=V,exports.bridgeRequestWriteAccess=$,exports.bridgeSend=le,exports.bridgeSessionStorageGet=({key:e})=>{try{return{is_json:!0,value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(t){return{is_json:!1,value:window.sessionStorage.getItem("__telegram__"+e)??"",status:!0}}},exports.bridgeSessionStorageSet=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(s){return window.sessionStorage.setItem("__telegram__"+e,t),{status:!0}}},exports.bridgeSetBackgroundColor=F,exports.bridgeSetBottomBarColor=X,exports.bridgeSetHeaderColor=z,exports.bridgeSetupBackButton=Z,exports.bridgeSetupClosingBehavior=te,exports.bridgeSetupMainButton=oe,exports.bridgeSetupSettingsButton=pe,exports.bridgeSetupSwipeBehavior=_e,exports.bridgeSwitchInlineQuery=ne,exports.bridgeTriggerHapticFeedback=ue,exports.createIsViewportChanged=()=>{const[t,s]=e.createSignal({height:0,is_expanded:!1,is_state_stable:!1}),o=e=>s(e);return e.onMount((()=>{Ze(Xe,o),le(Te)})),e.onCleanup((()=>{et(Xe,o)})),t},exports.debug=xe,exports.getPlatform=p,exports.listener=st,exports.sender=le,exports.supportClose=c,exports.supportCloseScanQrPopup=g,exports.supportDataSend=h,exports.supportExpand=w,exports.supportIframeReady=v,exports.supportIframeWillReload=f,exports.supportInvokeCustomMethod=M,exports.supportOpenInvoice=C,exports.supportOpenLink=R,exports.supportOpenPopup=B,exports.supportOpenScanQrPopup=T,exports.supportOpenTgLink=I,exports.supportReadTextFromClipboard=L,exports.supportReady=D,exports.supportRequestPhone=A,exports.supportRequestTheme=H,exports.supportRequestViewport=J,exports.supportRequestWriteAccess=j,exports.supportSessionStorageGet=()=>!0,exports.supportSessionStorageSet=()=>!0,exports.supportSetBackgroundColor=U,exports.supportSetBottomBarColor=Y,exports.supportSetHeaderColor=K,exports.supportSetupBackButton=ee,exports.supportSetupClosingBehavior=se,exports.supportSetupMainButton=re,exports.supportSetupSettingsButton=ae,exports.supportSetupSwipeBehavior=ce,exports.supportSwitchInlineQuery=ie,exports.supportTriggerHapticFeedback=de;
1
+ 'use strict'
2
+ var e = require('solid-js'),
3
+ t = require('solid-js/store')
4
+ const s = 'web',
5
+ o = 'phone',
6
+ r = 'desktop',
7
+ p = () => {
8
+ const e = window.location.hash.slice(1),
9
+ t = new URLSearchParams(e).get('tgWebAppPlatform') ?? 'ios'
10
+ return ['android', 'ios'].includes(t)
11
+ ? o
12
+ : ['tdesktop', 'macos'].includes(t)
13
+ ? r
14
+ : s
15
+ },
16
+ a = 'not_supported',
17
+ n = (e, t) => {
18
+ const s = new URLSearchParams(window.location.hash.slice(1)).get(
19
+ 'tgWebAppVersion'
20
+ )
21
+ return (
22
+ Number(s?.replace('.', '')) >= Number(String(e)?.replace('.', '')) &&
23
+ -1 !== t.indexOf(p())
24
+ )
25
+ },
26
+ i = () => Math.random().toString(36).substring(3, 9),
27
+ u = e => {
28
+ var t
29
+ if ((t = /^\s*#([0-9a-f]{6})\s*$/i.exec((e += ''))))
30
+ return '#' + t[1].toLowerCase()
31
+ if ((t = /^\s*#([0-9a-f])([0-9a-f])([0-9a-f])\s*$/i.exec(e)))
32
+ return ('#' + t[1] + t[1] + t[2] + t[2] + t[3] + t[3]).toLowerCase()
33
+ if (
34
+ (t =
35
+ /^\s*rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)\s*$/.exec(
36
+ e
37
+ ))
38
+ ) {
39
+ var s = parseInt(t[1]),
40
+ o = parseInt(t[2]),
41
+ r = parseInt(t[3])
42
+ return (
43
+ '#' +
44
+ ((s < 16 ? '0' : '') + s.toString(16)) +
45
+ ((o < 16 ? '0' : '') + o.toString(16)) +
46
+ ((r < 16 ? '0' : '') + r.toString(16))
47
+ )
48
+ }
49
+ return !1
50
+ },
51
+ d = e => {
52
+ '#1c1c1d' == e.bg_color &&
53
+ e.bg_color == e.secondary_bg_color &&
54
+ (e.secondary_bg_color = '#2c2c2e')
55
+ const t = window.location.hash.slice(1),
56
+ s = new URLSearchParams(t)
57
+ var o = JSON.parse(s.get('tgWebAppThemeParams') ?? '')
58
+ for (var r of Object.keys(e)) {
59
+ var p = u(e[r])
60
+ 'string' == typeof p && (o[r] = p)
61
+ }
62
+ return o
63
+ },
64
+ _ = e => (c() ? (le(ve, e), { status: !0 }) : (xe(ve, 1), { status: a })),
65
+ c = () => n(0, [s, r, o]),
66
+ x = e => (g() ? (le(Se, e), { status: !0 }) : (xe(Se, 1), { status: a })),
67
+ g = () => n(6.4, [o]),
68
+ l = e => (h() ? (le(fe, e), { status: !0 }) : (xe(fe, 1), { status: a })),
69
+ h = () => n(0, [s, r, o]),
70
+ b = e => (w() ? (le(ye, e), { status: !0 }) : (xe(ye, 1), { status: a })),
71
+ w = () => n(0, [o]),
72
+ m = e => (v() ? (le(Me, e), { status: !0 }) : (xe(Me, 1), { status: a })),
73
+ v = () => n(0, [s]),
74
+ S = () => (f() ? (le(Me), { status: !0 }) : (xe(Me, 1), { status: a })),
75
+ f = () => n(0, [s]),
76
+ y = async e =>
77
+ M()
78
+ ? (void 0 === e.req_id && (e.req_id = i()),
79
+ le(he, e),
80
+ new Promise((t, s) => {
81
+ const o = s => {
82
+ s.req_id === e.req_id && (t({ status: !0, data: s }), et($e, o))
83
+ }
84
+ Ze($e, o)
85
+ }))
86
+ : (xe(he, 1), { status: a }),
87
+ M = () => n(6.9, [s, r, o]),
88
+ P = e => (C() ? (le(Ce, e), { status: !0 }) : (xe(Ce, 1), { status: a })),
89
+ C = () => n(6.1, [s, r, o]),
90
+ q = e => (R() ? (le(qe, e), { status: !0 }) : (xe(qe, 1), { status: a })),
91
+ R = () => n(6.4, [s, r, o]),
92
+ k = async e =>
93
+ B()
94
+ ? (e.title.length > 64 && xe(Re, 3),
95
+ e.message.length < 1 && xe(Re, 4),
96
+ e.message.length > 256 && xe(Re, 5),
97
+ e.buttons.length < 1 && xe(Re, 6),
98
+ e.buttons.length > 3 && xe(Re, 7),
99
+ void 0 !== e.buttons.find(e => e.text?.match(/^(ok|close|cancel)$/g)) &&
100
+ xe(Re, 8),
101
+ le(Re, e),
102
+ new Promise((t, s) => {
103
+ const o = s => {
104
+ t({
105
+ status: !!e.buttons.find(e => e.id === s?.button_id),
106
+ data: s,
107
+ }),
108
+ et(Fe, o)
109
+ }
110
+ Ze(Fe, o)
111
+ }))
112
+ : (xe(Re, 1), { status: a }),
113
+ B = () => n(6.2, [s, r, o]),
114
+ O = async e =>
115
+ T()
116
+ ? (le(be, e),
117
+ new Promise((t, s) => {
118
+ tt(Ue, s => {
119
+ e.is_close && x(), t({ status: !0, data: s })
120
+ }),
121
+ tt(ze, () => {
122
+ t({ status: 'closed' })
123
+ })
124
+ }))
125
+ : (xe(be, 1), { status: a }),
126
+ T = () => n(6.4, [o]),
127
+ E = e => (
128
+ '/' !== e.path_full[0] && (e.path_full = '/' + e.path_full),
129
+ I() ? (le(ke, e), { status: !0 }) : (xe(ke, 1), { status: a })
130
+ ),
131
+ I = () => n(7, [s, r, o]),
132
+ W = async e =>
133
+ L()
134
+ ? (e || (e = { req_id: void 0 }),
135
+ void 0 === e.req_id && (e.req_id = i()),
136
+ le(we, e),
137
+ new Promise((t, s) => {
138
+ const o = s => {
139
+ s.req_id === e?.req_id && (t({ status: !0, data: s }), et(Je, o))
140
+ }
141
+ Ze(Je, o)
142
+ }))
143
+ : (xe(we, 1), { status: a }),
144
+ L = () => n(6.4, [s, r, o]),
145
+ N = e => (D() ? (le(Be, e), { status: !0 }) : (xe(Be, 1), { status: a })),
146
+ D = () => n(6.9, [s, r, o]),
147
+ Q = async () =>
148
+ A()
149
+ ? (le(me),
150
+ new Promise((e, t) => {
151
+ tt(je, t => {
152
+ 'sent' === t.status && e({ status: !0 }), e({ status: !1 })
153
+ })
154
+ }))
155
+ : (xe(me, 1), { status: a }),
156
+ A = () => n(6.9, [s, r, o]),
157
+ G = e => (H() ? (le(Oe, e), { status: !0 }) : (xe(Oe, 1), { status: a })),
158
+ H = () => n(0, [s, r, o]),
159
+ V = e => (J() ? (le(Te, e), { status: !0 }) : (xe(Te, 1), { status: a })),
160
+ J = () => n(0, [s, r, o]),
161
+ $ = () => (j() ? (le(Ee), { status: !0 }) : (xe(Ee, 1), { status: a })),
162
+ j = () => n(6.9, [s, r, o]),
163
+ F = e => (U() ? (le(Ie, e), { status: !0 }) : (xe(Ie, 1), { status: a })),
164
+ U = () => n(6.1, [s, r, o]),
165
+ z = e => (K() ? (le(We, e), { status: !0 }) : (xe(We, 1), { status: a })),
166
+ K = () => n(6.1, [s, r, o]),
167
+ X = e =>
168
+ Y()
169
+ ? (le(Le, { color: e?.color || e?.color_key }), { status: !0 })
170
+ : (xe(Le, 1), { status: a }),
171
+ Y = () => n(710, [s, r, o]),
172
+ Z = e => (ee() ? (le(Ne, e), { status: !0 }) : (xe(Ne, 1), { status: a })),
173
+ ee = () => n(6.1, [s, r, o]),
174
+ te = e => (se() ? (le(De, e), { status: !0 }) : (xe(De, 1), { status: a })),
175
+ se = () => n(0, [s, r, o]),
176
+ oe = e => (re() ? (le(Qe, e), { status: !0 }) : (xe(Qe, 1), { status: a })),
177
+ re = () => n(0, [s, r, o]),
178
+ pe = e => (ae() ? (le(Ae, e), { status: !0 }) : (xe(Ae, 1), { status: a })),
179
+ ae = () => n(6.1, [s, r, o]),
180
+ ne = e =>
181
+ ie()
182
+ ? (e.query.length > 256 && xe(Ge, 9), le(Ge, e), { status: !0 })
183
+ : (xe(Ge, 1), { status: a }),
184
+ ie = () => n(6.7, [s, r, o]),
185
+ ue = e => (de() ? (le(He, e), { status: !0 }) : (xe(He, 1), { status: a })),
186
+ de = () => n(6.1, [o]),
187
+ _e = e => (ce() ? (le(Ve, e), { status: !0 }) : (xe(Ve, 1), { status: a })),
188
+ ce = () => n(7.7, [s, r, o])
189
+ var xe = (e, t) => {
190
+ 'development' === process.env.NODE_ENV &&
191
+ console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)
192
+ }
193
+ const ge = () => {
194
+ const e = window.location.hash.slice(1),
195
+ t = new URLSearchParams(e).get('tgWebAppData')
196
+ if (!t) return void xe('getInitData', 2)
197
+ const s = new URLSearchParams(t)
198
+ let o = {}
199
+ return (
200
+ s.forEach((e, t) => {
201
+ if (((o[t] = e), void 0 !== t.match(/^(chat|receiver|user)$/g)))
202
+ try {
203
+ o[t] = JSON.parse(e)
204
+ } catch {}
205
+ }),
206
+ o
207
+ )
208
+ }
209
+ var le = (e, t) => {
210
+ if (window.TelegramWebviewProxy)
211
+ window.TelegramWebviewProxy.postEvent(e, JSON.stringify(t))
212
+ else if (window.external && 'notify' in window.external)
213
+ window.external.notify(JSON.stringify({ eventType: e, eventData: t }))
214
+ else
215
+ try {
216
+ '*',
217
+ window.parent.postMessage(
218
+ JSON.stringify({ eventType: e, eventData: t }),
219
+ '*'
220
+ )
221
+ } catch (e) {
222
+ xe('postMessage Iframe', 10)
223
+ }
224
+ }
225
+ const he = 'web_app_invoke_custom_method',
226
+ be = 'web_app_open_scan_qr_popup',
227
+ we = 'web_app_read_text_from_clipboard',
228
+ me = 'web_app_request_phone',
229
+ ve = 'web_app_close',
230
+ Se = 'web_app_close_scan_qr_popup',
231
+ fe = 'web_app_data_send',
232
+ ye = 'web_app_expand',
233
+ Me = 'iframe_ready',
234
+ Pe = 'iframe_will_reload',
235
+ Ce = 'web_app_open_invoice',
236
+ qe = 'web_app_open_link',
237
+ Re = 'web_app_open_popup',
238
+ ke = 'web_app_open_tg_link',
239
+ Be = 'web_app_ready',
240
+ Oe = 'web_app_request_theme',
241
+ Te = 'web_app_request_viewport',
242
+ Ee = 'web_app_request_write_access',
243
+ Ie = 'web_app_set_background_color',
244
+ We = 'web_app_set_header_color',
245
+ Le = 'web_app_set_bottom_bar_color',
246
+ Ne = 'web_app_setup_back_button',
247
+ De = 'web_app_setup_closing_behavior',
248
+ Qe = 'web_app_setup_main_button',
249
+ Ae = 'web_app_setup_settings_button',
250
+ Ge = 'web_app_switch_inline_query',
251
+ He = 'web_app_trigger_haptic_feedback',
252
+ Ve = 'web_app_setup_swipe_behavior'
253
+ const Je = 'clipboard_text_received',
254
+ $e = 'custom_method_invoked',
255
+ je = 'phone_requested',
256
+ Fe = 'popup_closed',
257
+ Ue = 'qr_text_received',
258
+ ze = 'scan_qr_popup_closed',
259
+ Ke = 'theme_changed',
260
+ Xe = 'viewport_changed',
261
+ Ye = ((e = new Map()) => ({
262
+ once: (
263
+ t,
264
+ s,
265
+ o = e.get(t),
266
+ r = e => {
267
+ s(e), o && o.splice(o.indexOf(s) >>> 0, 1)
268
+ }
269
+ ) => (o ? o.push(r) : e.set(t, [r])),
270
+ on: (t, s, o = e.get(t)) => (o ? o.push(s) : e.set(t, [s])),
271
+ off: (t, s, o = e.get(t)) =>
272
+ o && s ? o.splice(o.indexOf(s) >>> 0, 1) : e.set(t, []),
273
+ emit: (t, s, o = e.get(t) || []) => {
274
+ for (const e of o) e(s)
275
+ },
276
+ }))()
277
+ ;(() => {
278
+ function e(e, t) {
279
+ e === Ke && (t.theme_params = d(t.theme_params)),
280
+ Ye.emit(e, t),
281
+ Ye.emit('*', { name: e, data: t })
282
+ }
283
+ ;(window.TelegramGameProxy_receiveEvent = e),
284
+ (window.Telegram = { WebView: { receiveEvent: e } }),
285
+ (window.TelegramGameProxy = { receiveEvent: e })
286
+ })()
287
+ const Ze = (e, t) => {
288
+ Ye.on(e, t)
289
+ },
290
+ et = (e, t) => {
291
+ Ye.off(e, t)
292
+ },
293
+ tt = (e, t) => {
294
+ Ye.once(e, t)
295
+ }
296
+ var st = Object.freeze({ __proto__: null, off: et, on: Ze, once: tt })
297
+ const ot = e.createContext({ viewport: void 0, theme: void 0, init: void 0 })
298
+ ;(exports.ContextTwa = ot),
299
+ (exports.EventBackButtonPressed = 'back_button_pressed'),
300
+ (exports.EventClipboardTextReceived = Je),
301
+ (exports.EventCustomMethodInvoked = $e),
302
+ (exports.EventInvoiceClosed = 'invoice_closed'),
303
+ (exports.EventMainButtonPressed = 'main_button_pressed'),
304
+ (exports.EventPhoneRequested = je),
305
+ (exports.EventPopupClosed = Fe),
306
+ (exports.EventQrTextReceived = Ue),
307
+ (exports.EventReloadIframe = 'reload_iframe'),
308
+ (exports.EventScanQrPopupClosed = ze),
309
+ (exports.EventSetCustomStyle = 'set_custom_style'),
310
+ (exports.EventSettingsButtonPressed = 'settings_button_pressed'),
311
+ (exports.EventThemeChanged = Ke),
312
+ (exports.EventViewportChanged = Xe),
313
+ (exports.EventWriteAccessRequested = 'write_access_requested'),
314
+ (exports.MethodClose = ve),
315
+ (exports.MethodCloseScanQrPopup = Se),
316
+ (exports.MethodDataSend = fe),
317
+ (exports.MethodExpand = ye),
318
+ (exports.MethodIframeReady = Me),
319
+ (exports.MethodIframeWillReload = Pe),
320
+ (exports.MethodInvokeCustomMethod = he),
321
+ (exports.MethodOpenInvoice = Ce),
322
+ (exports.MethodOpenLink = qe),
323
+ (exports.MethodOpenPopup = Re),
324
+ (exports.MethodOpenScanQrPopup = be),
325
+ (exports.MethodOpenTgLink = ke),
326
+ (exports.MethodReadTextFromClipboard = we),
327
+ (exports.MethodReady = Be),
328
+ (exports.MethodRequestPhone = me),
329
+ (exports.MethodRequestTheme = Oe),
330
+ (exports.MethodRequestViewport = Te),
331
+ (exports.MethodRequestWriteAccess = Ee),
332
+ (exports.MethodSetBackgroundColor = Ie),
333
+ (exports.MethodSetBottomBarColor = Le),
334
+ (exports.MethodSetHeaderColor = We),
335
+ (exports.MethodSetupBackButton = Ne),
336
+ (exports.MethodSetupClosingBehavior = De),
337
+ (exports.MethodSetupMainButton = Qe),
338
+ (exports.MethodSetupSettingsButton = Ae),
339
+ (exports.MethodSetupSwipeBehavior = Ve),
340
+ (exports.MethodSwitchInlineQuery = Ge),
341
+ (exports.MethodTriggerHapticFeedback = He),
342
+ (exports.NOT_SUPPORTED = a),
343
+ (exports.ProviderTWA = s => {
344
+ const [o, r] = t.createStore({
345
+ viewport: void 0,
346
+ theme: void 0,
347
+ init: void 0,
348
+ })
349
+ return (
350
+ e.onMount(() => {
351
+ const t = () => {
352
+ r('init', ge())
353
+ }
354
+ t()
355
+ const s = e => {
356
+ t(),
357
+ r('viewport', {
358
+ ...e,
359
+ safe_area_bottom:
360
+ e.is_expanded && e.is_state_stable
361
+ ? window.outerHeight - e.height
362
+ : 0,
363
+ })
364
+ }
365
+ Ze(Xe, s), V()
366
+ const o = e => {
367
+ t(), r('theme', e)
368
+ }
369
+ Ze(Ke, o),
370
+ V(),
371
+ e.onCleanup(() => {
372
+ et(Xe, s), et(Ke, o)
373
+ })
374
+ }),
375
+ s.children
376
+ )
377
+ }),
378
+ (exports.TG_DESKTOP = r),
379
+ (exports.TG_PHONE = o),
380
+ (exports.TG_WEB = s),
381
+ (exports.bridgeClose = _),
382
+ (exports.bridgeCloseScanQrPopup = x),
383
+ (exports.bridgeDataSend = l),
384
+ (exports.bridgeExpand = b),
385
+ (exports.bridgeGetInitData = ge),
386
+ (exports.bridgeGetThemeParams = d),
387
+ (exports.bridgeIframeReady = m),
388
+ (exports.bridgeIframeWillReload = S),
389
+ (exports.bridgeInvokeCustomMethod = y),
390
+ (exports.bridgeOpenInvoice = P),
391
+ (exports.bridgeOpenLink = q),
392
+ (exports.bridgeOpenPopup = k),
393
+ (exports.bridgeOpenScanQrPopup = O),
394
+ (exports.bridgeOpenTgLink = E),
395
+ (exports.bridgeReadTextFromClipboard = W),
396
+ (exports.bridgeReady = N),
397
+ (exports.bridgeRequestPhone = Q),
398
+ (exports.bridgeRequestTheme = G),
399
+ (exports.bridgeRequestViewport = V),
400
+ (exports.bridgeRequestWriteAccess = $),
401
+ (exports.bridgeSend = le),
402
+ (exports.bridgeSessionStorageGet = ({ key: e }) => {
403
+ try {
404
+ return {
405
+ is_json: !0,
406
+ value: JSON.parse(
407
+ window.sessionStorage.getItem('__telegram__' + e) ?? ''
408
+ ),
409
+ status: !0,
410
+ }
411
+ } catch (t) {
412
+ return {
413
+ is_json: !1,
414
+ value: window.sessionStorage.getItem('__telegram__' + e) ?? '',
415
+ status: !0,
416
+ }
417
+ }
418
+ }),
419
+ (exports.bridgeSessionStorageSet = ({ key: e, value: t }) => {
420
+ try {
421
+ return (
422
+ window.sessionStorage.setItem('__telegram__' + e, JSON.stringify(t)),
423
+ { status: !0 }
424
+ )
425
+ } catch (s) {
426
+ return (
427
+ window.sessionStorage.setItem('__telegram__' + e, t), { status: !0 }
428
+ )
429
+ }
430
+ }),
431
+ (exports.bridgeSetBackgroundColor = F),
432
+ (exports.bridgeSetBottomBarColor = X),
433
+ (exports.bridgeSetHeaderColor = z),
434
+ (exports.bridgeSetupBackButton = Z),
435
+ (exports.bridgeSetupClosingBehavior = te),
436
+ (exports.bridgeSetupMainButton = oe),
437
+ (exports.bridgeSetupSettingsButton = pe),
438
+ (exports.bridgeSetupSwipeBehavior = _e),
439
+ (exports.bridgeSwitchInlineQuery = ne),
440
+ (exports.bridgeTriggerHapticFeedback = ue),
441
+ (exports.createIsViewportChanged = () => {
442
+ const [t, s] = e.createSignal({
443
+ height: 0,
444
+ is_expanded: !1,
445
+ is_state_stable: !1,
446
+ }),
447
+ o = e => s(e)
448
+ return (
449
+ e.onMount(() => {
450
+ Ze(Xe, o), le(Te)
451
+ }),
452
+ e.onCleanup(() => {
453
+ et(Xe, o)
454
+ }),
455
+ t
456
+ )
457
+ }),
458
+ (exports.debug = xe),
459
+ (exports.getPlatform = p),
460
+ (exports.listener = st),
461
+ (exports.sender = le),
462
+ (exports.supportClose = c),
463
+ (exports.supportCloseScanQrPopup = g),
464
+ (exports.supportDataSend = h),
465
+ (exports.supportExpand = w),
466
+ (exports.supportIframeReady = v),
467
+ (exports.supportIframeWillReload = f),
468
+ (exports.supportInvokeCustomMethod = M),
469
+ (exports.supportOpenInvoice = C),
470
+ (exports.supportOpenLink = R),
471
+ (exports.supportOpenPopup = B),
472
+ (exports.supportOpenScanQrPopup = T),
473
+ (exports.supportOpenTgLink = I),
474
+ (exports.supportReadTextFromClipboard = L),
475
+ (exports.supportReady = D),
476
+ (exports.supportRequestPhone = A),
477
+ (exports.supportRequestTheme = H),
478
+ (exports.supportRequestViewport = J),
479
+ (exports.supportRequestWriteAccess = j),
480
+ (exports.supportSessionStorageGet = () => !0),
481
+ (exports.supportSessionStorageSet = () => !0),
482
+ (exports.supportSetBackgroundColor = U),
483
+ (exports.supportSetBottomBarColor = Y),
484
+ (exports.supportSetHeaderColor = K),
485
+ (exports.supportSetupBackButton = ee),
486
+ (exports.supportSetupClosingBehavior = se),
487
+ (exports.supportSetupMainButton = re),
488
+ (exports.supportSetupSettingsButton = ae),
489
+ (exports.supportSetupSwipeBehavior = ce),
490
+ (exports.supportSwitchInlineQuery = ie),
491
+ (exports.supportTriggerHapticFeedback = de)