@apiteam/twa-bridge 8.0.1-beta → 8.0.3-beta

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": "8.0.1-beta",
3
+ "version": "8.0.3-beta",
4
4
  "description": "Telegram bridge",
5
5
  "license": "MIT",
6
6
  "types": "index.ts",
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "repository": {
12
12
  "type": "git",
13
- "url": "https://github.com/APITEAMRU/twa-bridge"
13
+ "url": "git+https://github.com/APITEAMRU/twa-bridge.git"
14
14
  },
15
15
  "contributors": [],
16
16
  "keywords": [
package/solid/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import * as solid_js from 'solid-js';
2
- import { Context, Component } from 'solid-js';
3
- import { JSX } from 'solid-js/jsx-runtime';
2
+ import { Context, JSX, Component } from 'solid-js';
4
3
 
5
4
  declare const createIsViewportChanged: () => solid_js.Accessor<{
6
5
  height: number;
@@ -202,6 +201,7 @@ declare const supportSetupSwipeBehavior: () => boolean;
202
201
 
203
202
  type ShareToStory = (eventData?: SenderData[typeof MethodShareToStory]) => {
204
203
  status: boolean | typeof NOT_SUPPORTED;
204
+ error_id?: number;
205
205
  };
206
206
  declare const shareToStory: ShareToStory;
207
207
  declare const supportShareToStory: () => boolean;
@@ -243,6 +243,30 @@ type SetupOrientation = (eventData?: SenderData[typeof MethodToggleOrientationLo
243
243
  declare const setupOrientation: SetupOrientation;
244
244
  declare const supportSetupOrientation: () => boolean;
245
245
 
246
+ type RequestEmojiStatus = (eventData?: SenderData[typeof MethodRequestEmojiStatusAccess]) => Promise<{
247
+ status: boolean | typeof NOT_SUPPORTED;
248
+ }>;
249
+ declare const requestEmojiStatus: RequestEmojiStatus;
250
+ declare const supportRequestEmojiStatus: () => boolean;
251
+
252
+ type SetEmojiStatus = (eventData?: SenderData[typeof MethodSetEmojiStatus]) => Promise<{
253
+ status: boolean | typeof NOT_SUPPORTED;
254
+ }>;
255
+ declare const setEmojiStatus: SetEmojiStatus;
256
+ declare const supportSetEmojiStatus: () => boolean;
257
+
258
+ type ShareMessage = (eventData?: SenderData[typeof MethodSendPreparedMessage]) => Promise<{
259
+ status: boolean | typeof NOT_SUPPORTED;
260
+ }>;
261
+ declare const shareMessage: ShareMessage;
262
+ declare const supportShareMessage: () => boolean;
263
+
264
+ type DownloadFile = (eventData?: SenderData[typeof MethodRequestFileDownload]) => Promise<{
265
+ status: boolean | typeof NOT_SUPPORTED;
266
+ }>;
267
+ declare const downloadFile: DownloadFile;
268
+ declare const supportDownloadFile: () => boolean;
269
+
246
270
  type User = {
247
271
  added_to_attachment_menu?: boolean;
248
272
  allows_write_to_pm?: boolean;
@@ -316,6 +340,12 @@ declare const EventWriteAccessRequested = "write_access_requested";
316
340
  declare const EventSafeAreaChanged = "safe_area_changed";
317
341
  declare const EventContentSafeAreaChanged = "content_safe_area_changed";
318
342
  declare const EventCheckHomeScreen = "web_app_check_home_screen";
343
+ declare const EventPreparedMessageSent = "prepared_message_sent";
344
+ declare const EventPreparedMessageFailed = "prepared_message_failed";
345
+ declare const EventEmojiStatusSet = "emoji_status_set";
346
+ declare const EventEmojiStatusFailed = "emoji_status_failed";
347
+ declare const EventEmojiStatusAccessRequested = "emoji_status_access_requested";
348
+ declare const EventFileDownloadRequested = "file_download_requested";
319
349
 
320
350
  type GetPlatform = () => 'phone' | 'web' | 'desktop';
321
351
  declare const TG_WEB = "web";
@@ -375,6 +405,22 @@ type EventsData = {
375
405
  left: number;
376
406
  right: number;
377
407
  };
408
+ [EventContentSafeAreaChanged]: {
409
+ top: number;
410
+ bottom: number;
411
+ left: number;
412
+ right: number;
413
+ };
414
+ [EventPreparedMessageSent]: undefined;
415
+ [EventPreparedMessageFailed]: undefined;
416
+ [EventEmojiStatusSet]: undefined;
417
+ [EventEmojiStatusFailed]: undefined;
418
+ [EventEmojiStatusAccessRequested]: {
419
+ status: 'allowed';
420
+ };
421
+ [EventFileDownloadRequested]: {
422
+ status: 'downloading';
423
+ };
378
424
  };
379
425
  interface TelegramGameProxy {
380
426
  receiveEvent: (event: string, data: string) => void;
@@ -444,6 +490,10 @@ declare const MethodExitFullscreen = "web_app_exit_fullscreen";
444
490
  declare const MethodToggleOrientationLock = "web_app_toggle_orientation_lock";
445
491
  declare const MethodAddToHomeScreen = "web_app_add_to_home_screen";
446
492
  declare const MethodCheckHomeScreen = "web_app_check_home_screen";
493
+ declare const MethodSendPreparedMessage = "web_app_send_prepared_message";
494
+ declare const MethodSetEmojiStatus = "web_app_set_emoji_status";
495
+ declare const MethodRequestEmojiStatusAccess = "web_app_request_emoji_status_access";
496
+ declare const MethodRequestFileDownload = "web_app_request_file_download";
447
497
  declare enum Method {
448
498
  InvokeCustomMethod = "web_app_invoke_custom_method",
449
499
  OpenScanQrPopup = "web_app_open_scan_qr_popup",
@@ -480,7 +530,11 @@ declare enum Method {
480
530
  ExitFullscreen = "web_app_exit_fullscreen",
481
531
  ToggleOrientationLock = "web_app_toggle_orientation_lock",
482
532
  AddToHomeScreen = "web_app_add_to_home_screen",
483
- CheckHomeScreen = "web_app_check_home_screen"
533
+ CheckHomeScreen = "web_app_check_home_screen",
534
+ SendPreparedMessage = "web_app_send_prepared_message",
535
+ SetEmojiStatus = "web_app_set_emoji_status",
536
+ RequestEmojiStatusAccess = "web_app_request_emoji_status_access",
537
+ RequestFileDownload = "web_app_request_file_download"
484
538
  }
485
539
  type PopupButton = {
486
540
  id: string;
@@ -517,6 +571,7 @@ type SenderData = {
517
571
  [MethodOpenLink]: {
518
572
  url: string;
519
573
  try_instant_view?: boolean;
574
+ try_browser?: boolean;
520
575
  };
521
576
  [MethodOpenPopup]: {
522
577
  title: string;
@@ -525,6 +580,7 @@ type SenderData = {
525
580
  };
526
581
  [MethodOpenTgLink]: {
527
582
  path_full: string;
583
+ force_request?: boolean;
528
584
  };
529
585
  [MethodReady]: undefined;
530
586
  [MethodRequestTheme]: undefined;
@@ -566,7 +622,7 @@ type SenderData = {
566
622
  };
567
623
  [MethodSwitchInlineQuery]: {
568
624
  query: string;
569
- chat_types: ['users', 'bots', 'groups', 'channels'];
625
+ chat_types: ('users' | 'bots' | 'groups' | 'channels')[];
570
626
  };
571
627
  [MethodTriggerHapticFeedback]: {
572
628
  type: 'impact';
@@ -603,6 +659,18 @@ type SenderData = {
603
659
  };
604
660
  [MethodAddToHomeScreen]: undefined;
605
661
  [MethodCheckHomeScreen]: undefined;
662
+ [MethodSendPreparedMessage]: {
663
+ msg_id: number;
664
+ };
665
+ [MethodSetEmojiStatus]: {
666
+ custom_emoji_id: string;
667
+ duration?: number;
668
+ };
669
+ [MethodRequestEmojiStatusAccess]: undefined;
670
+ [MethodRequestFileDownload]: {
671
+ url: string;
672
+ file_name: string;
673
+ };
606
674
  };
607
675
 
608
676
  type Debug = (methondName: string, errorId: number) => void;
@@ -622,4 +690,4 @@ interface ProviderTWA extends JSX.HTMLAttributes<HTMLDivElement> {
622
690
  }
623
691
  declare const ProviderTWA: Component<ProviderTWA>;
624
692
 
625
- export { ContextTwa, EventBackButtonPressed, EventCheckHomeScreen, EventClipboardTextReceived, EventContentSafeAreaChanged, EventCustomMethodInvoked, EventInvoiceClosed, EventMainButtonPressed, EventPhoneRequested, EventPopupClosed, EventQrTextReceived, EventReloadIframe, EventSafeAreaChanged, EventScanQrPopupClosed, EventSetCustomStyle, EventSettingsButtonPressed, EventThemeChanged, EventViewportChanged, EventWriteAccessRequested, type EventsData, type GetInitData, Method, MethodAddToHomeScreen, MethodCheckHomeScreen, MethodClose, MethodCloseScanQrPopup, MethodDataSend, MethodExitFullscreen, MethodExpand, MethodIframeReady, MethodIframeWillReload, MethodInvokeCustomMethod, MethodOpenInvoice, MethodOpenLink, MethodOpenPopup, MethodOpenScanQrPopup, MethodOpenTgLink, MethodReadTextFromClipboard, MethodReady, MethodRequestContentSafeArea, MethodRequestFullscreen, MethodRequestPhone, MethodRequestSafeArea, MethodRequestTheme, MethodRequestViewport, MethodRequestWriteAccess, MethodSetBackgroundColor, MethodSetBottomBarColor, MethodSetHeaderColor, MethodSetupBackButton, MethodSetupClosingBehavior, MethodSetupMainButton, MethodSetupSettingsButton, MethodSetupSwipeBehavior, MethodShareToStory, MethodSwitchInlineQuery, MethodToggleOrientationLock, MethodTriggerHapticFeedback, NOT_SUPPORTED, type PopupButton, ProviderTWA, type SenderData, TG_DESKTOP, TG_PHONE, TG_WEB, type ThemeParams, addToHomeScreen as bridgeAddToHomeScreen, checkHomeScreen as bridgeCheckHomeScreen, close as bridgeClose, closeScanQrPopup as bridgeCloseScanQrPopup, dataSend as bridgeDataSend, expand as bridgeExpand, getInitData as bridgeGetInitData, getThemeParams as bridgeGetThemeParams, iframeReady as bridgeIframeReady, iframeWillReload as bridgeIframeWillReload, invokeCustomMethod as bridgeInvokeCustomMethod, openInvoice as bridgeOpenInvoice, openLink as bridgeOpenLink, openPopup as bridgeOpenPopup, openScanQrPopup as bridgeOpenScanQrPopup, openTgLink as bridgeOpenTgLink, readTextFromClipboard as bridgeReadTextFromClipboard, ready as bridgeReady, requestContentSafeAreaInset as bridgeRequestContentSafeAreaInset, requestPhone as bridgeRequestPhone, requestSafeAreaInset as bridgeRequestSafeAreaInset, requestTheme as bridgeRequestTheme, requestViewport as bridgeRequestViewport, requestWriteAccess as bridgeRequestWriteAccess, sender as bridgeSend, sessionStorageGet as bridgeSessionStorageGet, sessionStorageSet as bridgeSessionStorageSet, setBackgroundColor as bridgeSetBackgroundColor, setBottomBarColor as bridgeSetBottomBarColor, setHeaderColor as bridgeSetHeaderColor, setupBackButton as bridgeSetupBackButton, setupClosingBehavior as bridgeSetupClosingBehavior, setupFullScreen as bridgeSetupFullScreen, setupMainButton as bridgeSetupMainButton, setupOrientation as bridgeSetupOrientation, setupSettingsButton as bridgeSetupSettingsButton, setupSwipeBehavior as bridgeSetupSwipeBehavior, shareToStory as bridgeShareToStory, switchInlineQuery as bridgeSwitchInlineQuery, triggerHapticFeedback as bridgeTriggerHapticFeedback, createIsViewportChanged, debug, getAppData, getPlatform, listener, sender, supportAddToHomeScreen, supportCheckHomeScreen, supportClose, supportCloseScanQrPopup, supportDataSend, supportExpand, supportIframeReady, supportIframeWillReload, supportInvokeCustomMethod, supportOpenInvoice, supportOpenLink, supportOpenPopup, supportOpenScanQrPopup, supportOpenTgLink, supportReadTextFromClipboard, supportReady, supportRequestContentSafeAreaInset, supportRequestPhone, supportRequestSafeAreaInset, supportRequestTheme, supportRequestViewport, supportRequestWriteAccess, supportSessionStorageGet, supportSessionStorageSet, supportSetBackgroundColor, supportSetBottomBarColor, supportSetHeaderColor, supportSetupBackButton, supportSetupClosingBehavior, supportSetupFullScreen, supportSetupMainButton, supportSetupOrientation, supportSetupSettingsButton, supportSetupSwipeBehavior, supportShareToStory, supportSwitchInlineQuery, supportTriggerHapticFeedback };
693
+ export { ContextTwa, EventBackButtonPressed, EventCheckHomeScreen, EventClipboardTextReceived, EventContentSafeAreaChanged, EventCustomMethodInvoked, EventEmojiStatusAccessRequested, EventEmojiStatusFailed, EventEmojiStatusSet, EventFileDownloadRequested, EventInvoiceClosed, EventMainButtonPressed, EventPhoneRequested, EventPopupClosed, EventPreparedMessageFailed, EventPreparedMessageSent, EventQrTextReceived, EventReloadIframe, EventSafeAreaChanged, EventScanQrPopupClosed, EventSetCustomStyle, EventSettingsButtonPressed, EventThemeChanged, EventViewportChanged, EventWriteAccessRequested, type EventsData, type GetInitData, Method, MethodAddToHomeScreen, MethodCheckHomeScreen, MethodClose, MethodCloseScanQrPopup, MethodDataSend, MethodExitFullscreen, MethodExpand, MethodIframeReady, MethodIframeWillReload, MethodInvokeCustomMethod, MethodOpenInvoice, MethodOpenLink, MethodOpenPopup, MethodOpenScanQrPopup, MethodOpenTgLink, MethodReadTextFromClipboard, MethodReady, MethodRequestContentSafeArea, MethodRequestEmojiStatusAccess, MethodRequestFileDownload, MethodRequestFullscreen, MethodRequestPhone, MethodRequestSafeArea, MethodRequestTheme, MethodRequestViewport, MethodRequestWriteAccess, MethodSendPreparedMessage, MethodSetBackgroundColor, MethodSetBottomBarColor, MethodSetEmojiStatus, MethodSetHeaderColor, MethodSetupBackButton, MethodSetupClosingBehavior, MethodSetupMainButton, MethodSetupSettingsButton, MethodSetupSwipeBehavior, MethodShareToStory, MethodSwitchInlineQuery, MethodToggleOrientationLock, MethodTriggerHapticFeedback, NOT_SUPPORTED, type PopupButton, ProviderTWA, type SenderData, TG_DESKTOP, TG_PHONE, TG_WEB, type ThemeParams, addToHomeScreen as bridgeAddToHomeScreen, checkHomeScreen as bridgeCheckHomeScreen, close as bridgeClose, closeScanQrPopup as bridgeCloseScanQrPopup, dataSend as bridgeDataSend, downloadFile as bridgeDownloadFile, expand as bridgeExpand, getInitData as bridgeGetInitData, getThemeParams as bridgeGetThemeParams, iframeReady as bridgeIframeReady, iframeWillReload as bridgeIframeWillReload, invokeCustomMethod as bridgeInvokeCustomMethod, openInvoice as bridgeOpenInvoice, openLink as bridgeOpenLink, openPopup as bridgeOpenPopup, openScanQrPopup as bridgeOpenScanQrPopup, openTgLink as bridgeOpenTgLink, readTextFromClipboard as bridgeReadTextFromClipboard, ready as bridgeReady, requestContentSafeAreaInset as bridgeRequestContentSafeAreaInset, requestEmojiStatus as bridgeRequestEmojiStatus, requestPhone as bridgeRequestPhone, requestSafeAreaInset as bridgeRequestSafeAreaInset, requestTheme as bridgeRequestTheme, requestViewport as bridgeRequestViewport, requestWriteAccess as bridgeRequestWriteAccess, sender as bridgeSend, sessionStorageGet as bridgeSessionStorageGet, sessionStorageSet as bridgeSessionStorageSet, setBackgroundColor as bridgeSetBackgroundColor, setBottomBarColor as bridgeSetBottomBarColor, setEmojiStatus as bridgeSetEmojiStatus, setHeaderColor as bridgeSetHeaderColor, setupBackButton as bridgeSetupBackButton, setupClosingBehavior as bridgeSetupClosingBehavior, setupFullScreen as bridgeSetupFullScreen, setupMainButton as bridgeSetupMainButton, setupOrientation as bridgeSetupOrientation, setupSettingsButton as bridgeSetupSettingsButton, setupSwipeBehavior as bridgeSetupSwipeBehavior, shareMessage as bridgeShareMessage, shareToStory as bridgeShareToStory, switchInlineQuery as bridgeSwitchInlineQuery, triggerHapticFeedback as bridgeTriggerHapticFeedback, createIsViewportChanged, debug, getAppData, getPlatform, listener, sender, supportAddToHomeScreen, supportCheckHomeScreen, supportClose, supportCloseScanQrPopup, supportDataSend, supportDownloadFile, supportExpand, supportIframeReady, supportIframeWillReload, supportInvokeCustomMethod, supportOpenInvoice, supportOpenLink, supportOpenPopup, supportOpenScanQrPopup, supportOpenTgLink, supportReadTextFromClipboard, supportReady, supportRequestContentSafeAreaInset, supportRequestEmojiStatus, supportRequestPhone, supportRequestSafeAreaInset, supportRequestTheme, supportRequestViewport, supportRequestWriteAccess, supportSessionStorageGet, supportSessionStorageSet, supportSetBackgroundColor, supportSetBottomBarColor, supportSetEmojiStatus, supportSetHeaderColor, supportSetupBackButton, supportSetupClosingBehavior, supportSetupFullScreen, supportSetupMainButton, supportSetupOrientation, supportSetupSettingsButton, supportSetupSwipeBehavior, supportShareMessage, supportShareToStory, supportSwitchInlineQuery, supportTriggerHapticFeedback };
package/solid/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("solid-js"),t=require("solid-js/store");const o="web",s="phone",r="desktop",p=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?s:["tdesktop","macos"].includes(t)?r:o},a="not_supported",n=(e,t)=>{const o=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(o?.replace(".",""))>=Number(String(e)?.replace(".",""))&&-1!==t.indexOf(p())},i=()=>Math.random().toString(36).substring(3,9),u=e=>{var t;if(t=/^\s*#([0-9a-f]{6})\s*$/i.exec(e+=""))return"#"+t[1].toLowerCase();if(t=/^\s*#([0-9a-f])([0-9a-f])([0-9a-f])\s*$/i.exec(e))return("#"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]).toLowerCase();if(t=/^\s*rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)\s*$/.exec(e)){var o=parseInt(t[1]),s=parseInt(t[2]),r=parseInt(t[3]);return"#"+((o<16?"0":"")+o.toString(16))+((s<16?"0":"")+s.toString(16))+((r<16?"0":"")+r.toString(16))}return!1},d=e=>{const t=window.location.hash.slice(1),o=new URLSearchParams(t),s=JSON.parse(o.get("tgWebAppThemeParams")??""),r=e||s;for(var p of Object.keys(r)){var a=u(r[p]);"string"==typeof a&&(r[p]=a)}return"#1c1c1d"==r?.bg_color&&r?.bg_color==r?.secondary_bg_color&&(r.secondary_bg_color="#2c2c2e"),r},c=e=>_()?(fe(ye,e),{status:!0}):(me(ye,1),{status:a}),_=()=>n(0,[o,r,s]),l=e=>x()?(fe(Me,e),{status:!0}):(me(Me,1),{status:a}),x=()=>n(6.4,[s]),g=e=>h()?(fe(Te,e),{status:!0}):(me(Te,1),{status:a}),h=()=>n(0,[o,r,s]),S=e=>b()?(fe(Pe,e),{status:!0}):(me(Pe,1),{status:a}),b=()=>n(0,[s]),w=e=>m()?(fe(Be,e),{status:!0}):(me(Be,1),{status:a}),m=()=>n(0,[o]),v=()=>f()?(fe(Be),{status:!0}):(me(Be,1),{status:a}),f=()=>n(0,[o]),C=async e=>R()?(void 0===e.req_id&&(e.req_id=i()),fe(Ce,e),new Promise(((t,o)=>{const s=o=>{o.req_id===e.req_id&&(t({status:!0,data:o}),St(nt,s))};ht(nt,s)}))):(me(Ce,1),{status:a}),R=()=>n(6.9,[o,r,s]),q=e=>k()?(fe(Ie,e),{status:!0}):(me(Ie,1),{status:a}),k=()=>n(6.1,[o,r,s]),y=e=>M()?(fe(Ee,e),{status:!0}):(me(Ee,1),{status:a}),M=()=>n(6.4,[o,r,s]),T=async e=>P()?(e.title.length>64&&me(Ae,3),e.message.length<1&&me(Ae,4),e.message.length>256&&me(Ae,5),e.buttons.length<1&&me(Ae,6),e.buttons.length>3&&me(Ae,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&me(Ae,8),fe(Ae,e),new Promise(((t,o)=>{const s=o=>{t({status:!!e.buttons.find((e=>e.id===o?.button_id)),data:o}),St(ut,s)};ht(ut,s)}))):(me(Ae,1),{status:a}),P=()=>n(6.2,[o,r,s]),B=async e=>O()?(fe(Re,e),new Promise(((t,o)=>{bt(dt,(o=>{e.is_close&&l(),t({status:!0,data:o})})),bt(ct,(()=>{t({status:"closed"})}))}))):(me(Re,1),{status:a}),O=()=>n(6.4,[s]),I=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),E()?(fe(He,e),{status:!0}):(me(He,1),{status:a})),E=()=>n(7,[o,r,s]),A=async e=>H()?(e||(e={req_id:void 0}),void 0===e.req_id&&(e.req_id=i()),fe(qe,e),new Promise(((t,o)=>{const s=o=>{o.req_id===e?.req_id&&(t({status:!0,data:o}),St(at,s))};ht(at,s)}))):(me(qe,1),{status:a}),H=()=>n(6.4,[o,r,s]),L=e=>W()?(fe(Le,e),{status:!0}):(me(Le,1),{status:a}),W=()=>n(6.9,[o,r,s]),F=async()=>Q()?(fe(ke),new Promise(((e,t)=>{bt(it,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(me(ke,1),{status:a}),Q=()=>n(6.9,[o,r,s]),D=e=>N()?(fe(We,e),{status:!0}):(me(We,1),{status:a}),N=()=>n(0,[o,r,s]),V=e=>G()?(fe(Fe,e),{status:!0}):(me(Fe,1),{status:a}),G=()=>n(0,[o,r,s]),J=()=>U()?(fe(Qe),{status:!0}):(me(Qe,1),{status:a}),U=()=>n(6.9,[o,r,s]),$=e=>j()?(fe(De,e),{status:!0}):(me(De,1),{status:a}),j=()=>n(6.1,[o,r,s]),z=e=>K()?(fe(Ne,e),{status:!0}):(me(Ne,1),{status:a}),K=()=>n(6.1,[o,r,s]),X=e=>Y()?(fe(Ve,{color:e?.color||e?.color_key}),{status:!0}):(me(Ve,1),{status:a}),Y=()=>n(710,[o,r,s]),Z=e=>ee()?(fe(Ge,e),{status:!0}):(me(Ge,1),{status:a}),ee=()=>n(6.1,[o,r,s]),te=e=>oe()?(fe(Je,e),{status:!0}):(me(Je,1),{status:a}),oe=()=>n(0,[o,r,s]),se=e=>re()?(fe(Ue,e),{status:!0}):(me(Ue,1),{status:a}),re=()=>n(0,[o,r,s]),pe=e=>ae()?(fe($e,e),{status:!0}):(me($e,1),{status:a}),ae=()=>n(6.1,[o,r,s]),ne=e=>ie()?(e.query.length>256&&me(je,9),fe(je,e),{status:!0}):(me(je,1),{status:a}),ie=()=>n(6.7,[o,r,s]),ue=e=>de()?(fe(ze,e),{status:!0}):(me(ze,1),{status:a}),de=()=>n(6.1,[s]),ce=e=>_e()?(fe(Ke,e),{status:!0}):(me(Ke,1),{status:a}),_e=()=>n(7.7,[o,r,s]),le=()=>n(7.8,[o,r,s]),xe=()=>n(8,[r,s]),ge=()=>n(8,[r,s]),he=()=>n(8,[o,r,s]),Se=()=>n(8,[o,r,s]),be=()=>n(8,[o,r,s]),we=()=>n(8,[o,r,s]),me=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)},ve=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppData");if(!t)return void me("getInitData",2);const o=new URLSearchParams(t);let s={};return o.forEach(((e,t)=>{if(s[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{s[t]=JSON.parse(e)}catch{}})),s},fe=(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){me("postMessage Iframe",10)}},Ce="web_app_invoke_custom_method",Re="web_app_open_scan_qr_popup",qe="web_app_read_text_from_clipboard",ke="web_app_request_phone",ye="web_app_close",Me="web_app_close_scan_qr_popup",Te="web_app_data_send",Pe="web_app_expand",Be="iframe_ready",Oe="iframe_will_reload",Ie="web_app_open_invoice",Ee="web_app_open_link",Ae="web_app_open_popup",He="web_app_open_tg_link",Le="web_app_ready",We="web_app_request_theme",Fe="web_app_request_viewport",Qe="web_app_request_write_access",De="web_app_set_background_color",Ne="web_app_set_header_color",Ve="web_app_set_bottom_bar_color",Ge="web_app_setup_back_button",Je="web_app_setup_closing_behavior",Ue="web_app_setup_main_button",$e="web_app_setup_settings_button",je="web_app_switch_inline_query",ze="web_app_trigger_haptic_feedback",Ke="web_app_setup_swipe_behavior",Xe="web_app_share_to_story",Ye="web_app_request_safe_area",Ze="web_app_request_content_safe_area",et="web_app_request_fullscreen",tt="web_app_exit_fullscreen",ot="web_app_toggle_orientation_lock",st="web_app_add_to_home_screen",rt="web_app_check_home_screen";var pt=(e=>(e[e.InvokeCustomMethod=Ce]="InvokeCustomMethod",e[e.OpenScanQrPopup=Re]="OpenScanQrPopup",e[e.ReadTextFromClipboard=qe]="ReadTextFromClipboard",e[e.RequestPhone=ke]="RequestPhone",e[e.Close=ye]="Close",e[e.CloseScanQrPopup=Me]="CloseScanQrPopup",e[e.DataSend=Te]="DataSend",e[e.Expand=Pe]="Expand",e[e.IframeReady=Be]="IframeReady",e[e.IframeWillReload=Oe]="IframeWillReload",e[e.OpenInvoice=Ie]="OpenInvoice",e[e.OpenLink=Ee]="OpenLink",e[e.OpenPopup=Ae]="OpenPopup",e[e.OpenTgLink=He]="OpenTgLink",e[e.Ready=Le]="Ready",e[e.RequestTheme=We]="RequestTheme",e[e.RequestViewport=Fe]="RequestViewport",e[e.RequestWriteAccess=Qe]="RequestWriteAccess",e[e.SetBackgroundColor=De]="SetBackgroundColor",e[e.SetHeaderColor=Ne]="SetHeaderColor",e[e.SetBottomBarColor=Ve]="SetBottomBarColor",e[e.SetupBackButton=Ge]="SetupBackButton",e[e.SetupClosingBehavior=Je]="SetupClosingBehavior",e[e.SetupMainButton=Ue]="SetupMainButton",e[e.SetupSettingsButton=$e]="SetupSettingsButton",e[e.SwitchInlineQuery=je]="SwitchInlineQuery",e[e.TriggerHapticFeedback=ze]="TriggerHapticFeedback",e[e.SetupSwipeBehavior=Ke]="SetupSwipeBehavior",e[e.ShareToStory=Xe]="ShareToStory",e[e.RequestSafeArea=Ye]="RequestSafeArea",e[e.RequestContentSafeArea=Ze]="RequestContentSafeArea",e[e.RequestFullscreen=et]="RequestFullscreen",e[e.ExitFullscreen=tt]="ExitFullscreen",e[e.ToggleOrientationLock=ot]="ToggleOrientationLock",e[e.AddToHomeScreen=st]="AddToHomeScreen",e[e.CheckHomeScreen=rt]="CheckHomeScreen",e))(pt||{});const at="clipboard_text_received",nt="custom_method_invoked",it="phone_requested",ut="popup_closed",dt="qr_text_received",ct="scan_qr_popup_closed",_t="theme_changed",lt="viewport_changed",xt="web_app_check_home_screen",gt=((e=new Map)=>({once:(t,o,s=e.get(t),r=e=>{o(e),s&&s.splice(s.indexOf(o)>>>0,1)})=>s?s.push(r):e.set(t,[r]),on:(t,o,s=e.get(t))=>s?s.push(o):e.set(t,[o]),off:(t,o,s=e.get(t))=>s&&o?s.splice(s.indexOf(o)>>>0,1):e.set(t,[]),emit:(t,o,s=e.get(t)||[])=>{for(const e of s)e(o)}}))();(()=>{function e(e,t){e===_t&&(t.theme_params=d(t.theme_params)),gt.emit(e,t),gt.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const ht=(e,t)=>{gt.on(e,t)},St=(e,t)=>{gt.off(e,t)},bt=(e,t)=>{gt.once(e,t)};var wt=Object.freeze({__proto__:null,off:St,on:ht,once:bt});const mt=e.createContext({viewport:void 0,theme:void 0,init:void 0});exports.ContextTwa=mt,exports.EventBackButtonPressed="back_button_pressed",exports.EventCheckHomeScreen=xt,exports.EventClipboardTextReceived=at,exports.EventContentSafeAreaChanged="content_safe_area_changed",exports.EventCustomMethodInvoked=nt,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=it,exports.EventPopupClosed=ut,exports.EventQrTextReceived=dt,exports.EventReloadIframe="reload_iframe",exports.EventSafeAreaChanged="safe_area_changed",exports.EventScanQrPopupClosed=ct,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged=_t,exports.EventViewportChanged=lt,exports.EventWriteAccessRequested="write_access_requested",exports.Method=pt,exports.MethodAddToHomeScreen=st,exports.MethodCheckHomeScreen=rt,exports.MethodClose=ye,exports.MethodCloseScanQrPopup=Me,exports.MethodDataSend=Te,exports.MethodExitFullscreen=tt,exports.MethodExpand=Pe,exports.MethodIframeReady=Be,exports.MethodIframeWillReload=Oe,exports.MethodInvokeCustomMethod=Ce,exports.MethodOpenInvoice=Ie,exports.MethodOpenLink=Ee,exports.MethodOpenPopup=Ae,exports.MethodOpenScanQrPopup=Re,exports.MethodOpenTgLink=He,exports.MethodReadTextFromClipboard=qe,exports.MethodReady=Le,exports.MethodRequestContentSafeArea=Ze,exports.MethodRequestFullscreen=et,exports.MethodRequestPhone=ke,exports.MethodRequestSafeArea=Ye,exports.MethodRequestTheme=We,exports.MethodRequestViewport=Fe,exports.MethodRequestWriteAccess=Qe,exports.MethodSetBackgroundColor=De,exports.MethodSetBottomBarColor=Ve,exports.MethodSetHeaderColor=Ne,exports.MethodSetupBackButton=Ge,exports.MethodSetupClosingBehavior=Je,exports.MethodSetupMainButton=Ue,exports.MethodSetupSettingsButton=$e,exports.MethodSetupSwipeBehavior=Ke,exports.MethodShareToStory=Xe,exports.MethodSwitchInlineQuery=je,exports.MethodToggleOrientationLock=ot,exports.MethodTriggerHapticFeedback=ze,exports.NOT_SUPPORTED=a,exports.ProviderTWA=o=>{const[s,r]=t.createStore({viewport:void 0,theme:void 0,init:void 0});return e.createEffect((()=>{const t=()=>{r("init",ve())};t();const o=e=>{t(),r("viewport",{...e,safe_area_bottom:e.is_expanded&&e.is_state_stable?window.outerHeight-e.height:0})};ht(lt,o),V();const s=e=>{t(),r("theme",e)};return ht(_t,s),V(),e.onCleanup((()=>{St(lt,o),St(_t,s)})),()=>{St(lt,o),St(_t,s)}})),mt.Provider({value:s,children:o.children})},exports.TG_DESKTOP=r,exports.TG_PHONE=s,exports.TG_WEB=o,exports.bridgeAddToHomeScreen=()=>ge()?(fe(st),{status:!0}):(me(st,1),{status:a}),exports.bridgeCheckHomeScreen=async e=>xe()?(fe(rt,e),new Promise(((e,t)=>{const o=t=>{e({status:!0,data:t}),St(xt,o)};ht(xt,o)}))):(me(rt,1),{status:a,data:void 0}),exports.bridgeClose=c,exports.bridgeCloseScanQrPopup=l,exports.bridgeDataSend=g,exports.bridgeExpand=S,exports.bridgeGetInitData=ve,exports.bridgeGetThemeParams=d,exports.bridgeIframeReady=w,exports.bridgeIframeWillReload=v,exports.bridgeInvokeCustomMethod=C,exports.bridgeOpenInvoice=q,exports.bridgeOpenLink=y,exports.bridgeOpenPopup=T,exports.bridgeOpenScanQrPopup=B,exports.bridgeOpenTgLink=I,exports.bridgeReadTextFromClipboard=A,exports.bridgeReady=L,exports.bridgeRequestContentSafeAreaInset=()=>Se()?(fe(Ze),{status:!0}):(me(Ze,1),{status:a}),exports.bridgeRequestPhone=F,exports.bridgeRequestSafeAreaInset=()=>he()?(fe(Ye),{status:!0}):(me(Ye,1),{status:a}),exports.bridgeRequestTheme=D,exports.bridgeRequestViewport=V,exports.bridgeRequestWriteAccess=J,exports.bridgeSend=fe,exports.bridgeSessionStorageGet=({key:e})=>{try{return{is_json:!0,value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(t){return{is_json:!1,value:window.sessionStorage.getItem("__telegram__"+e)??"",status:!0}}},exports.bridgeSessionStorageSet=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(o){return window.sessionStorage.setItem("__telegram__"+e,t),{status:!0}}},exports.bridgeSetBackgroundColor=$,exports.bridgeSetBottomBarColor=X,exports.bridgeSetHeaderColor=z,exports.bridgeSetupBackButton=Z,exports.bridgeSetupClosingBehavior=te,exports.bridgeSetupFullScreen=e=>{const t=e?.is_full||!1;return be()?(fe(t?et:tt),{status:!0}):(me(t?et:tt,1),{status:a})},exports.bridgeSetupMainButton=se,exports.bridgeSetupOrientation=e=>we()?(fe(ot),{status:!0}):(me(ot,1),{status:a}),exports.bridgeSetupSettingsButton=pe,exports.bridgeSetupSwipeBehavior=ce,exports.bridgeShareToStory=e=>le()?(fe(Xe,e),{status:!0}):(me(Xe,1),{status:a}),exports.bridgeSwitchInlineQuery=ne,exports.bridgeTriggerHapticFeedback=ue,exports.createIsViewportChanged=()=>{const[t,o]=e.createSignal({height:0,is_expanded:!1,is_state_stable:!1}),s=e=>o(e);return e.onMount((()=>{ht(lt,s),fe(Fe)})),e.onCleanup((()=>{St(lt,s)})),t},exports.debug=me,exports.getAppData=()=>{const e=window.location.hash.slice(1);return new URLSearchParams(e).get("tgWebAppData")},exports.getPlatform=p,exports.listener=wt,exports.sender=fe,exports.supportAddToHomeScreen=ge,exports.supportCheckHomeScreen=xe,exports.supportClose=_,exports.supportCloseScanQrPopup=x,exports.supportDataSend=h,exports.supportExpand=b,exports.supportIframeReady=m,exports.supportIframeWillReload=f,exports.supportInvokeCustomMethod=R,exports.supportOpenInvoice=k,exports.supportOpenLink=M,exports.supportOpenPopup=P,exports.supportOpenScanQrPopup=O,exports.supportOpenTgLink=E,exports.supportReadTextFromClipboard=H,exports.supportReady=W,exports.supportRequestContentSafeAreaInset=Se,exports.supportRequestPhone=Q,exports.supportRequestSafeAreaInset=he,exports.supportRequestTheme=N,exports.supportRequestViewport=G,exports.supportRequestWriteAccess=U,exports.supportSessionStorageGet=()=>!0,exports.supportSessionStorageSet=()=>!0,exports.supportSetBackgroundColor=j,exports.supportSetBottomBarColor=Y,exports.supportSetHeaderColor=K,exports.supportSetupBackButton=ee,exports.supportSetupClosingBehavior=oe,exports.supportSetupFullScreen=be,exports.supportSetupMainButton=re,exports.supportSetupOrientation=we,exports.supportSetupSettingsButton=ae,exports.supportSetupSwipeBehavior=_e,exports.supportShareToStory=le,exports.supportSwitchInlineQuery=ie,exports.supportTriggerHapticFeedback=de;
1
+ "use strict";var e=require("solid-js"),t=require("solid-js/store");const s="web",o="phone",r="desktop",a=()=>{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},p="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(a())},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=>{const t=window.location.hash.slice(1),s=new URLSearchParams(t),o=JSON.parse(s.get("tgWebAppThemeParams")??""),r=e||o;for(var a of Object.keys(r)){var p=u(r[a]);"string"==typeof p&&(r[a]=p)}return"#1c1c1d"==r?.bg_color&&r?.bg_color==r?.secondary_bg_color&&(r.secondary_bg_color="#2c2c2e"),r},c=e=>_()?(Me(Te,e),{status:!0}):(qe(Te,1),{status:p}),_=()=>n(0,[s,r,o]),l=e=>x()?(Me(Be,e),{status:!0}):(qe(Be,1),{status:p}),x=()=>n(6.4,[o]),g=e=>S()?(Me(Oe,e),{status:!0}):(qe(Oe,1),{status:p}),S=()=>n(0,[s,r,o]),h=e=>m()?(Me(Ie,e),{status:!0}):(qe(Ie,1),{status:p}),m=()=>n(0,[o]),w=e=>b()?(Me(Ae,e),{status:!0}):(qe(Ae,1),{status:p}),b=()=>n(0,[s]),v=()=>f()?(Me(Ae),{status:!0}):(qe(Ae,1),{status:p}),f=()=>n(0,[s]),R=async e=>q()?(void 0===e.req_id&&(e.req_id=i()),Me(ke,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),Tt(gt,o))};Et(gt,o)}))):(qe(ke,1),{status:p}),q=()=>n(6.9,[s,r,o]),C=e=>M()?(Me(Le,e),{status:!0}):(qe(Le,1),{status:p}),M=()=>n(6.1,[s,r,o]),k=e=>y()?(Me(je,e),{status:!0}):(qe(je,1),{status:p}),y=()=>n(6.4,[s,r,o]),P=async e=>E()?(e.title.length>64&&qe(He,3),e.message.length<1&&qe(He,4),e.message.length>256&&qe(He,5),e.buttons.length<1&&qe(He,6),e.buttons.length>3&&qe(He,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&qe(He,8),Me(He,e),new Promise(((t,s)=>{const o=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),Tt(ht,o)};Et(ht,o)}))):(qe(He,1),{status:p}),E=()=>n(6.2,[s,r,o]),T=async e=>B()?(Me(ye,e),new Promise(((t,s)=>{Bt(mt,(s=>{e.is_close&&l(),t({status:!0,data:s})})),Bt(wt,(()=>{t({status:"closed"})}))}))):(qe(ye,1),{status:p}),B=()=>n(6.4,[o]),O=e=>{const t=function(e){try{return new URL(e)}catch(t){try{return new URL(e,"https://t.me")}catch(t){return e.startsWith("/")||(e="/"+e),new URL(e,"https://t.me")}}}(e.path_full);return e.path_full=t.pathname=t.search,I()?(Me(We,e),{status:!0}):(qe(We,1),{status:p})},I=()=>n(7,[s,r,o]);const A=async e=>F()?(e||(e={req_id:void 0}),void 0===e.req_id&&(e.req_id=i()),Me(Pe,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e?.req_id&&(t({status:!0,data:s}),Tt(xt,o))};Et(xt,o)}))):(qe(Pe,1),{status:p}),F=()=>n(6.4,[s,r,o]),L=e=>j()?(Me(De,e),{status:!0}):(qe(De,1),{status:p}),j=()=>n(6.9,[s,r,o]),H=async()=>W()?(Me(Ee),new Promise(((e,t)=>{Bt(St,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(qe(Ee,1),{status:p}),W=()=>n(6.9,[s,r,o]),D=e=>Q()?(Me(Qe,e),{status:!0}):(qe(Qe,1),{status:p}),Q=()=>n(0,[s,r,o]),N=e=>U()?(Me(Ne,e),{status:!0}):(qe(Ne,1),{status:p}),U=()=>n(0,[s,r,o]),V=()=>G()?(Me(Ue),{status:!0}):(qe(Ue,1),{status:p}),G=()=>n(6.9,[s,r,o]),$=e=>J()?(Me(Ve,e),{status:!0}):(qe(Ve,1),{status:p}),J=()=>n(6.1,[s,r,o]),z=e=>K()?(Me(Ge,e),{status:!0}):(qe(Ge,1),{status:p}),K=()=>n(6.1,[s,r,o]),X=e=>Y()?(Me($e,{color:e?.color||e?.color_key}),{status:!0}):(qe($e,1),{status:p}),Y=()=>n(7.1,[s,r,o]),Z=e=>ee()?(Me(Je,e),{status:!0}):(qe(Je,1),{status:p}),ee=()=>n(6.1,[s,r,o]),te=e=>se()?(Me(ze,e),{status:!0}):(qe(ze,1),{status:p}),se=()=>n(6.2,[s,r,o]),oe=e=>re()?(Me(Ke,e),{status:!0}):(qe(Ke,1),{status:p}),re=()=>n(0,[s,r,o]),ae=e=>pe()?(Me(Xe,e),{status:!0}):(qe(Xe,1),{status:p}),pe=()=>n(6.1,[s,r,o]),ne=e=>ie()?(e.query.length>256&&qe(Ye,9),Me(Ye,e),{status:!0}):(qe(Ye,1),{status:p}),ie=()=>n(6.7,[s,r,o]),ue=e=>de()?(Me(Ze,e),{status:!0}):(qe(Ze,1),{status:p}),de=()=>n(6.1,[o]),ce=e=>_e()?(Me(et,e),{status:!0}):(qe(et,1),{status:p}),_e=()=>n(7.7,[s,r,o]),le=()=>n(7.8,[s,r,o]),xe=()=>n(8,[r,o]),ge=()=>n(8,[r,o]),Se=()=>n(8,[s,r,o]),he=()=>n(8,[s,r,o]),me=()=>n(8,[s,r,o]),we=()=>n(8,[s,r,o]),be=()=>n(8,[s,r,o]),ve=()=>n(8,[s,r,o]),fe=()=>n(8,[s,r,o]),Re=()=>n(8,[s,r,o]),qe=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)},Ce=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppData");if(!t)return void qe("getInitData",2);const s=new URLSearchParams(t);let 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},Me=(e,t)=>{if(window.TelegramWebviewProxy)window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t));else if(window.external&&"notify"in window.external)window.external.notify(JSON.stringify({eventType:e,eventData:t}));else try{window.parent.postMessage(JSON.stringify({eventType:e,eventData:t}),"*")}catch(e){qe("postMessage Iframe",10)}},ke="web_app_invoke_custom_method",ye="web_app_open_scan_qr_popup",Pe="web_app_read_text_from_clipboard",Ee="web_app_request_phone",Te="web_app_close",Be="web_app_close_scan_qr_popup",Oe="web_app_data_send",Ie="web_app_expand",Ae="iframe_ready",Fe="iframe_will_reload",Le="web_app_open_invoice",je="web_app_open_link",He="web_app_open_popup",We="web_app_open_tg_link",De="web_app_ready",Qe="web_app_request_theme",Ne="web_app_request_viewport",Ue="web_app_request_write_access",Ve="web_app_set_background_color",Ge="web_app_set_header_color",$e="web_app_set_bottom_bar_color",Je="web_app_setup_back_button",ze="web_app_setup_closing_behavior",Ke="web_app_setup_main_button",Xe="web_app_setup_settings_button",Ye="web_app_switch_inline_query",Ze="web_app_trigger_haptic_feedback",et="web_app_setup_swipe_behavior",tt="web_app_share_to_story",st="web_app_request_safe_area",ot="web_app_request_content_safe_area",rt="web_app_request_fullscreen",at="web_app_exit_fullscreen",pt="web_app_toggle_orientation_lock",nt="web_app_add_to_home_screen",it="web_app_check_home_screen",ut="web_app_send_prepared_message",dt="web_app_set_emoji_status",ct="web_app_request_emoji_status_access",_t="web_app_request_file_download";var lt=(e=>(e[e.InvokeCustomMethod=ke]="InvokeCustomMethod",e[e.OpenScanQrPopup=ye]="OpenScanQrPopup",e[e.ReadTextFromClipboard=Pe]="ReadTextFromClipboard",e[e.RequestPhone=Ee]="RequestPhone",e[e.Close=Te]="Close",e[e.CloseScanQrPopup=Be]="CloseScanQrPopup",e[e.DataSend=Oe]="DataSend",e[e.Expand=Ie]="Expand",e[e.IframeReady=Ae]="IframeReady",e[e.IframeWillReload=Fe]="IframeWillReload",e[e.OpenInvoice=Le]="OpenInvoice",e[e.OpenLink=je]="OpenLink",e[e.OpenPopup=He]="OpenPopup",e[e.OpenTgLink=We]="OpenTgLink",e[e.Ready=De]="Ready",e[e.RequestTheme=Qe]="RequestTheme",e[e.RequestViewport=Ne]="RequestViewport",e[e.RequestWriteAccess=Ue]="RequestWriteAccess",e[e.SetBackgroundColor=Ve]="SetBackgroundColor",e[e.SetHeaderColor=Ge]="SetHeaderColor",e[e.SetBottomBarColor=$e]="SetBottomBarColor",e[e.SetupBackButton=Je]="SetupBackButton",e[e.SetupClosingBehavior=ze]="SetupClosingBehavior",e[e.SetupMainButton=Ke]="SetupMainButton",e[e.SetupSettingsButton=Xe]="SetupSettingsButton",e[e.SwitchInlineQuery=Ye]="SwitchInlineQuery",e[e.TriggerHapticFeedback=Ze]="TriggerHapticFeedback",e[e.SetupSwipeBehavior=et]="SetupSwipeBehavior",e[e.ShareToStory=tt]="ShareToStory",e[e.RequestSafeArea=st]="RequestSafeArea",e[e.RequestContentSafeArea=ot]="RequestContentSafeArea",e[e.RequestFullscreen=rt]="RequestFullscreen",e[e.ExitFullscreen=at]="ExitFullscreen",e[e.ToggleOrientationLock=pt]="ToggleOrientationLock",e[e.AddToHomeScreen=nt]="AddToHomeScreen",e[e.CheckHomeScreen=it]="CheckHomeScreen",e[e.SendPreparedMessage=ut]="SendPreparedMessage",e[e.SetEmojiStatus=dt]="SetEmojiStatus",e[e.RequestEmojiStatusAccess=ct]="RequestEmojiStatusAccess",e[e.RequestFileDownload=_t]="RequestFileDownload",e))(lt||{});const xt="clipboard_text_received",gt="custom_method_invoked",St="phone_requested",ht="popup_closed",mt="qr_text_received",wt="scan_qr_popup_closed",bt="theme_changed",vt="viewport_changed",ft="web_app_check_home_screen",Rt="prepared_message_sent",qt="prepared_message_failed",Ct="emoji_status_set",Mt="emoji_status_failed",kt="emoji_status_access_requested",yt="file_download_requested",Pt=((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===bt&&(t.theme_params=d(t.theme_params)),Pt.emit(e,t),Pt.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const Et=(e,t)=>{Pt.on(e,t)},Tt=(e,t)=>{Pt.off(e,t)},Bt=(e,t)=>{Pt.once(e,t)};var Ot=Object.freeze({__proto__:null,off:Tt,on:Et,once:Bt});const It=e.createContext({viewport:void 0,theme:void 0,init:void 0});exports.ContextTwa=It,exports.EventBackButtonPressed="back_button_pressed",exports.EventCheckHomeScreen=ft,exports.EventClipboardTextReceived=xt,exports.EventContentSafeAreaChanged="content_safe_area_changed",exports.EventCustomMethodInvoked=gt,exports.EventEmojiStatusAccessRequested=kt,exports.EventEmojiStatusFailed=Mt,exports.EventEmojiStatusSet=Ct,exports.EventFileDownloadRequested=yt,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=St,exports.EventPopupClosed=ht,exports.EventPreparedMessageFailed=qt,exports.EventPreparedMessageSent=Rt,exports.EventQrTextReceived=mt,exports.EventReloadIframe="reload_iframe",exports.EventSafeAreaChanged="safe_area_changed",exports.EventScanQrPopupClosed=wt,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged=bt,exports.EventViewportChanged=vt,exports.EventWriteAccessRequested="write_access_requested",exports.Method=lt,exports.MethodAddToHomeScreen=nt,exports.MethodCheckHomeScreen=it,exports.MethodClose=Te,exports.MethodCloseScanQrPopup=Be,exports.MethodDataSend=Oe,exports.MethodExitFullscreen=at,exports.MethodExpand=Ie,exports.MethodIframeReady=Ae,exports.MethodIframeWillReload=Fe,exports.MethodInvokeCustomMethod=ke,exports.MethodOpenInvoice=Le,exports.MethodOpenLink=je,exports.MethodOpenPopup=He,exports.MethodOpenScanQrPopup=ye,exports.MethodOpenTgLink=We,exports.MethodReadTextFromClipboard=Pe,exports.MethodReady=De,exports.MethodRequestContentSafeArea=ot,exports.MethodRequestEmojiStatusAccess=ct,exports.MethodRequestFileDownload=_t,exports.MethodRequestFullscreen=rt,exports.MethodRequestPhone=Ee,exports.MethodRequestSafeArea=st,exports.MethodRequestTheme=Qe,exports.MethodRequestViewport=Ne,exports.MethodRequestWriteAccess=Ue,exports.MethodSendPreparedMessage=ut,exports.MethodSetBackgroundColor=Ve,exports.MethodSetBottomBarColor=$e,exports.MethodSetEmojiStatus=dt,exports.MethodSetHeaderColor=Ge,exports.MethodSetupBackButton=Je,exports.MethodSetupClosingBehavior=ze,exports.MethodSetupMainButton=Ke,exports.MethodSetupSettingsButton=Xe,exports.MethodSetupSwipeBehavior=et,exports.MethodShareToStory=tt,exports.MethodSwitchInlineQuery=Ye,exports.MethodToggleOrientationLock=pt,exports.MethodTriggerHapticFeedback=Ze,exports.NOT_SUPPORTED=p,exports.ProviderTWA=s=>{const[o,r]=t.createStore({viewport:void 0,theme:void 0,init:void 0});return e.createEffect((()=>{const t=()=>{r("init",Ce())};t();const s=e=>{t(),r("viewport",e)};Et(vt,s),N();const o=e=>{t(),r("theme",e)};return Et(bt,o),N(),e.onCleanup((()=>{Tt(vt,s),Tt(bt,o)})),()=>{Tt(vt,s),Tt(bt,o)}})),It.Provider({value:o,children:s.children})},exports.TG_DESKTOP=r,exports.TG_PHONE=o,exports.TG_WEB=s,exports.bridgeAddToHomeScreen=()=>ge()?(Me(nt),{status:!0}):(qe(nt,1),{status:p}),exports.bridgeCheckHomeScreen=async e=>xe()?(Me(it,e),new Promise(((e,t)=>{const s=t=>{e({status:!0,data:t}),Tt(ft,s)};Et(ft,s)}))):(qe(it,1),{status:p,data:void 0}),exports.bridgeClose=c,exports.bridgeCloseScanQrPopup=l,exports.bridgeDataSend=g,exports.bridgeDownloadFile=async e=>Re()?new Promise(((t,s)=>{Bt(yt,(function(e){t({status:"downloading"===e.status})})),Me(_t,e)})):(qe(_t,1),{status:p}),exports.bridgeExpand=h,exports.bridgeGetInitData=Ce,exports.bridgeGetThemeParams=d,exports.bridgeIframeReady=w,exports.bridgeIframeWillReload=v,exports.bridgeInvokeCustomMethod=R,exports.bridgeOpenInvoice=C,exports.bridgeOpenLink=k,exports.bridgeOpenPopup=P,exports.bridgeOpenScanQrPopup=T,exports.bridgeOpenTgLink=O,exports.bridgeReadTextFromClipboard=A,exports.bridgeReady=L,exports.bridgeRequestContentSafeAreaInset=()=>he()?(Me(ot),{status:!0}):(qe(ot,1),{status:p}),exports.bridgeRequestEmojiStatus=async e=>be()?new Promise(((t,s)=>{Bt(kt,(function(e){t({status:"allowed"===e.status})})),Me(ct,e)})):(qe(ct,1),{status:p}),exports.bridgeRequestPhone=H,exports.bridgeRequestSafeAreaInset=()=>Se()?(Me(st),{status:!0}):(qe(st,1),{status:p}),exports.bridgeRequestTheme=D,exports.bridgeRequestViewport=N,exports.bridgeRequestWriteAccess=V,exports.bridgeSend=Me,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=$,exports.bridgeSetBottomBarColor=X,exports.bridgeSetEmojiStatus=async e=>ve()?new Promise(((t,s)=>{Bt(Ct,(()=>t({status:!0}))),Bt(Mt,(()=>t({status:!1}))),Me(dt,e)})):(qe(dt,1),{status:p}),exports.bridgeSetHeaderColor=z,exports.bridgeSetupBackButton=Z,exports.bridgeSetupClosingBehavior=te,exports.bridgeSetupFullScreen=e=>{const t=e?.is_full||!1;return me()?(Me(t?rt:at),{status:!0}):(qe(t?rt:at,1),{status:p})},exports.bridgeSetupMainButton=oe,exports.bridgeSetupOrientation=e=>we()?(Me(pt,e),{status:!0}):(qe(pt,1),{status:p}),exports.bridgeSetupSettingsButton=ae,exports.bridgeSetupSwipeBehavior=ce,exports.bridgeShareMessage=async e=>fe()?new Promise(((t,s)=>{Bt(Rt,(()=>t({status:!0}))),Bt(qt,(()=>t({status:!1}))),Me(ut,e)})):(qe(ut,1),{status:p}),exports.bridgeShareToStory=e=>le()?e?.text&&e?.text.length>2048?(console.warn(`[@apiteam/twa-bridge](${tt}) | Text is too long`),{status:!1,error_id:1}):e?.widget_link?.name&&e?.widget_link.name.length>48?(console.warn(`[@apiteam/twa-bridge](${tt}) | Link name is too long`),{status:!1,error_id:2}):(Me(tt,e),{status:!0}):(qe(tt,1),{status:p}),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((()=>{Et(vt,o),Me(Ne)})),e.onCleanup((()=>{Tt(vt,o)})),t},exports.debug=qe,exports.getAppData=()=>{const e=window.location.hash.slice(1);return new URLSearchParams(e).get("tgWebAppData")},exports.getPlatform=a,exports.listener=Ot,exports.sender=Me,exports.supportAddToHomeScreen=ge,exports.supportCheckHomeScreen=xe,exports.supportClose=_,exports.supportCloseScanQrPopup=x,exports.supportDataSend=S,exports.supportDownloadFile=Re,exports.supportExpand=m,exports.supportIframeReady=b,exports.supportIframeWillReload=f,exports.supportInvokeCustomMethod=q,exports.supportOpenInvoice=M,exports.supportOpenLink=y,exports.supportOpenPopup=E,exports.supportOpenScanQrPopup=B,exports.supportOpenTgLink=I,exports.supportReadTextFromClipboard=F,exports.supportReady=j,exports.supportRequestContentSafeAreaInset=he,exports.supportRequestEmojiStatus=be,exports.supportRequestPhone=W,exports.supportRequestSafeAreaInset=Se,exports.supportRequestTheme=Q,exports.supportRequestViewport=U,exports.supportRequestWriteAccess=G,exports.supportSessionStorageGet=()=>!0,exports.supportSessionStorageSet=()=>!0,exports.supportSetBackgroundColor=J,exports.supportSetBottomBarColor=Y,exports.supportSetEmojiStatus=ve,exports.supportSetHeaderColor=K,exports.supportSetupBackButton=ee,exports.supportSetupClosingBehavior=se,exports.supportSetupFullScreen=me,exports.supportSetupMainButton=re,exports.supportSetupOrientation=we,exports.supportSetupSettingsButton=pe,exports.supportSetupSwipeBehavior=_e,exports.supportShareMessage=fe,exports.supportShareToStory=le,exports.supportSwitchInlineQuery=ie,exports.supportTriggerHapticFeedback=de;
package/solid/index.mjs CHANGED
@@ -1 +1 @@
1
- import{createSignal as e,onMount as t,onCleanup as s,createContext as a,createEffect as r}from"solid-js";import{createStore as o}from"solid-js/store";const n=()=>{const[a,r]=e({height:0,is_expanded:!1,is_state_stable:!1}),o=e=>r(e);return t((()=>{Mt(Wt,o),Fe(tt)})),s((()=>{Qt(Wt,o)})),a},i="web",p="phone",u="desktop",_=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?p:["tdesktop","macos"].includes(t)?u:i},d="not_supported",c=(e,t)=>{const s=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(s?.replace(".",""))>=Number(String(e)?.replace(".",""))&&-1!==t.indexOf(_())},l=()=>Math.random().toString(36).substring(3,9),g=e=>{var t;if(t=/^\s*#([0-9a-f]{6})\s*$/i.exec(e+=""))return"#"+t[1].toLowerCase();if(t=/^\s*#([0-9a-f])([0-9a-f])([0-9a-f])\s*$/i.exec(e))return("#"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]).toLowerCase();if(t=/^\s*rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)\s*$/.exec(e)){var s=parseInt(t[1]),a=parseInt(t[2]),r=parseInt(t[3]);return"#"+((s<16?"0":"")+s.toString(16))+((a<16?"0":"")+a.toString(16))+((r<16?"0":"")+r.toString(16))}return!1},b=e=>{const t=window.location.hash.slice(1),s=new URLSearchParams(t),a=JSON.parse(s.get("tgWebAppThemeParams")??""),r=e||a;for(var o of Object.keys(r)){var n=g(r[o]);"string"==typeof n&&(r[o]=n)}return"#1c1c1d"==r?.bg_color&&r?.bg_color==r?.secondary_bg_color&&(r.secondary_bg_color="#2c2c2e"),r},w=e=>m()?(Fe(Je,e),{status:!0}):(He(Je,1),{status:d}),m=()=>c(0,[i,u,p]),h=e=>S()?(Fe($e,e),{status:!0}):(He($e,1),{status:d}),S=()=>c(6.4,[p]),f=e=>v()?(Fe(je,e),{status:!0}):(He(je,1),{status:d}),v=()=>c(0,[i,u,p]),y=e=>q()?(Fe(Ue,e),{status:!0}):(He(Ue,1),{status:d}),q=()=>c(0,[p]),k=e=>R()?(Fe(Ve,e),{status:!0}):(He(Ve,1),{status:d}),R=()=>c(0,[i]),C=()=>P()?(Fe(Ve),{status:!0}):(He(Ve,1),{status:d}),P=()=>c(0,[i]),O=async e=>x()?(void 0===e.req_id&&(e.req_id=l()),Fe(Ne,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),Qt(kt,a))};Mt(kt,a)}))):(He(Ne,1),{status:d}),x=()=>c(6.9,[i,u,p]),T=e=>B()?(Fe(ze,e),{status:!0}):(He(ze,1),{status:d}),B=()=>c(6.1,[i,u,p]),I=e=>A()?(Fe(Ke,e),{status:!0}):(He(Ke,1),{status:d}),A=()=>c(6.4,[i,u,p]),L=async e=>W()?(e.title.length>64&&He(Xe,3),e.message.length<1&&He(Xe,4),e.message.length>256&&He(Xe,5),e.buttons.length<1&&He(Xe,6),e.buttons.length>3&&He(Xe,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&He(Xe,8),Fe(Xe,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),Qt(Ot,a)};Mt(Ot,a)}))):(He(Xe,1),{status:d}),W=()=>c(6.2,[i,u,p]),H=async e=>E()?(Fe(De,e),new Promise(((t,s)=>{Jt(Tt,(s=>{e.is_close&&h(),t({status:!0,data:s})})),Jt(Bt,(()=>{t({status:"closed"})}))}))):(He(De,1),{status:d}),E=()=>c(6.4,[p]),F=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),N()?(Fe(Ye,e),{status:!0}):(He(Ye,1),{status:d})),N=()=>c(7,[i,u,p]),D=async e=>M()?(e||(e={req_id:void 0}),void 0===e.req_id&&(e.req_id=l()),Fe(Me,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e?.req_id&&(t({status:!0,data:s}),Qt(qt,a))};Mt(qt,a)}))):(He(Me,1),{status:d}),M=()=>c(6.4,[i,u,p]),Q=e=>J()?(Fe(Ze,e),{status:!0}):(He(Ze,1),{status:d}),J=()=>c(6.9,[i,u,p]),$=async()=>j()?(Fe(Qe),new Promise(((e,t)=>{Jt(Pt,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(He(Qe,1),{status:d}),j=()=>c(6.9,[i,u,p]),U=e=>V()?(Fe(et,e),{status:!0}):(He(et,1),{status:d}),V=()=>c(0,[i,u,p]),G=e=>z()?(Fe(tt,e),{status:!0}):(He(tt,1),{status:d}),z=()=>c(0,[i,u,p]),K=()=>X()?(Fe(st),{status:!0}):(He(st,1),{status:d}),X=()=>c(6.9,[i,u,p]),Y=e=>Z()?(Fe(at,e),{status:!0}):(He(at,1),{status:d}),Z=()=>c(6.1,[i,u,p]),ee=e=>te()?(Fe(rt,e),{status:!0}):(He(rt,1),{status:d}),te=()=>c(6.1,[i,u,p]),se=e=>ae()?(Fe(ot,{color:e?.color||e?.color_key}),{status:!0}):(He(ot,1),{status:d}),ae=()=>c(710,[i,u,p]),re=e=>oe()?(Fe(nt,e),{status:!0}):(He(nt,1),{status:d}),oe=()=>c(6.1,[i,u,p]),ne=e=>ie()?(Fe(it,e),{status:!0}):(He(it,1),{status:d}),ie=()=>c(0,[i,u,p]),pe=e=>ue()?(Fe(pt,e),{status:!0}):(He(pt,1),{status:d}),ue=()=>c(0,[i,u,p]),_e=e=>de()?(Fe(ut,e),{status:!0}):(He(ut,1),{status:d}),de=()=>c(6.1,[i,u,p]),ce=e=>le()?(e.query.length>256&&He(_t,9),Fe(_t,e),{status:!0}):(He(_t,1),{status:d}),le=()=>c(6.7,[i,u,p]),ge=e=>be()?(Fe(dt,e),{status:!0}):(He(dt,1),{status:d}),be=()=>c(6.1,[p]),we=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(s){return window.sessionStorage.setItem("__telegram__"+e,t),{status:!0}}},me=()=>!0,he=({key:e})=>{try{return{is_json:!0,value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(t){return{is_json:!1,value:window.sessionStorage.getItem("__telegram__"+e)??"",status:!0}}},Se=()=>!0,fe=e=>ve()?(Fe(ct,e),{status:!0}):(He(ct,1),{status:d}),ve=()=>c(7.7,[i,u,p]),ye=e=>qe()?(Fe(lt,e),{status:!0}):(He(lt,1),{status:d}),qe=()=>c(7.8,[i,u,p]),ke=async e=>Re()?(Fe(ft,e),new Promise(((e,t)=>{const s=t=>{e({status:!0,data:t}),Qt(Nt,s)};Mt(Nt,s)}))):(He(ft,1),{status:d,data:void 0}),Re=()=>c(8,[u,p]),Ce=()=>Pe()?(Fe(St),{status:!0}):(He(St,1),{status:d}),Pe=()=>c(8,[u,p]),Oe=()=>xe()?(Fe(gt),{status:!0}):(He(gt,1),{status:d}),xe=()=>c(8,[i,u,p]),Te=()=>Be()?(Fe(bt),{status:!0}):(He(bt,1),{status:d}),Be=()=>c(8,[i,u,p]),Ie=e=>{const t=e?.is_full||!1;return Ae()?(Fe(t?wt:mt),{status:!0}):(He(t?wt:mt,1),{status:d})},Ae=()=>c(8,[i,u,p]),Le=e=>We()?(Fe(ht),{status:!0}):(He(ht,1),{status:d}),We=()=>c(8,[i,u,p]),He=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)},Ee=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppData");if(!t)return void He("getInitData",2);const s=new URLSearchParams(t);let a={};return s.forEach(((e,t)=>{if(a[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{a[t]=JSON.parse(e)}catch{}})),a},Fe=(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){He("postMessage Iframe",10)}},Ne="web_app_invoke_custom_method",De="web_app_open_scan_qr_popup",Me="web_app_read_text_from_clipboard",Qe="web_app_request_phone",Je="web_app_close",$e="web_app_close_scan_qr_popup",je="web_app_data_send",Ue="web_app_expand",Ve="iframe_ready",Ge="iframe_will_reload",ze="web_app_open_invoice",Ke="web_app_open_link",Xe="web_app_open_popup",Ye="web_app_open_tg_link",Ze="web_app_ready",et="web_app_request_theme",tt="web_app_request_viewport",st="web_app_request_write_access",at="web_app_set_background_color",rt="web_app_set_header_color",ot="web_app_set_bottom_bar_color",nt="web_app_setup_back_button",it="web_app_setup_closing_behavior",pt="web_app_setup_main_button",ut="web_app_setup_settings_button",_t="web_app_switch_inline_query",dt="web_app_trigger_haptic_feedback",ct="web_app_setup_swipe_behavior",lt="web_app_share_to_story",gt="web_app_request_safe_area",bt="web_app_request_content_safe_area",wt="web_app_request_fullscreen",mt="web_app_exit_fullscreen",ht="web_app_toggle_orientation_lock",St="web_app_add_to_home_screen",ft="web_app_check_home_screen";var vt=(e=>(e[e.InvokeCustomMethod=Ne]="InvokeCustomMethod",e[e.OpenScanQrPopup=De]="OpenScanQrPopup",e[e.ReadTextFromClipboard=Me]="ReadTextFromClipboard",e[e.RequestPhone=Qe]="RequestPhone",e[e.Close=Je]="Close",e[e.CloseScanQrPopup=$e]="CloseScanQrPopup",e[e.DataSend=je]="DataSend",e[e.Expand=Ue]="Expand",e[e.IframeReady=Ve]="IframeReady",e[e.IframeWillReload=Ge]="IframeWillReload",e[e.OpenInvoice=ze]="OpenInvoice",e[e.OpenLink=Ke]="OpenLink",e[e.OpenPopup=Xe]="OpenPopup",e[e.OpenTgLink=Ye]="OpenTgLink",e[e.Ready=Ze]="Ready",e[e.RequestTheme=et]="RequestTheme",e[e.RequestViewport=tt]="RequestViewport",e[e.RequestWriteAccess=st]="RequestWriteAccess",e[e.SetBackgroundColor=at]="SetBackgroundColor",e[e.SetHeaderColor=rt]="SetHeaderColor",e[e.SetBottomBarColor=ot]="SetBottomBarColor",e[e.SetupBackButton=nt]="SetupBackButton",e[e.SetupClosingBehavior=it]="SetupClosingBehavior",e[e.SetupMainButton=pt]="SetupMainButton",e[e.SetupSettingsButton=ut]="SetupSettingsButton",e[e.SwitchInlineQuery=_t]="SwitchInlineQuery",e[e.TriggerHapticFeedback=dt]="TriggerHapticFeedback",e[e.SetupSwipeBehavior=ct]="SetupSwipeBehavior",e[e.ShareToStory=lt]="ShareToStory",e[e.RequestSafeArea=gt]="RequestSafeArea",e[e.RequestContentSafeArea=bt]="RequestContentSafeArea",e[e.RequestFullscreen=wt]="RequestFullscreen",e[e.ExitFullscreen=mt]="ExitFullscreen",e[e.ToggleOrientationLock=ht]="ToggleOrientationLock",e[e.AddToHomeScreen=St]="AddToHomeScreen",e[e.CheckHomeScreen=ft]="CheckHomeScreen",e))(vt||{});const yt="back_button_pressed",qt="clipboard_text_received",kt="custom_method_invoked",Rt="invoice_closed",Ct="main_button_pressed",Pt="phone_requested",Ot="popup_closed",xt="reload_iframe",Tt="qr_text_received",Bt="scan_qr_popup_closed",It="set_custom_style",At="settings_button_pressed",Lt="theme_changed",Wt="viewport_changed",Ht="write_access_requested",Et="safe_area_changed",Ft="content_safe_area_changed",Nt="web_app_check_home_screen",Dt=((e=new Map)=>({once:(t,s,a=e.get(t),r=e=>{s(e),a&&a.splice(a.indexOf(s)>>>0,1)})=>a?a.push(r):e.set(t,[r]),on:(t,s,a=e.get(t))=>a?a.push(s):e.set(t,[s]),off:(t,s,a=e.get(t))=>a&&s?a.splice(a.indexOf(s)>>>0,1):e.set(t,[]),emit:(t,s,a=e.get(t)||[])=>{for(const e of a)e(s)}}))();(()=>{function e(e,t){e===Lt&&(t.theme_params=b(t.theme_params)),Dt.emit(e,t),Dt.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const Mt=(e,t)=>{Dt.on(e,t)},Qt=(e,t)=>{Dt.off(e,t)},Jt=(e,t)=>{Dt.once(e,t)};var $t=Object.freeze({__proto__:null,off:Qt,on:Mt,once:Jt});const jt=()=>{const e=window.location.hash.slice(1);return new URLSearchParams(e).get("tgWebAppData")},Ut=a({viewport:void 0,theme:void 0,init:void 0}),Vt=e=>{const[t,a]=o({viewport:void 0,theme:void 0,init:void 0});return r((()=>{const e=()=>{a("init",Ee())};e();const t=t=>{e(),a("viewport",{...t,safe_area_bottom:t.is_expanded&&t.is_state_stable?window.outerHeight-t.height:0})};Mt(Wt,t),G();const r=t=>{e(),a("theme",t)};return Mt(Lt,r),G(),s((()=>{Qt(Wt,t),Qt(Lt,r)})),()=>{Qt(Wt,t),Qt(Lt,r)}})),Ut.Provider({value:t,children:e.children})};export{Ut as ContextTwa,yt as EventBackButtonPressed,Nt as EventCheckHomeScreen,qt as EventClipboardTextReceived,Ft as EventContentSafeAreaChanged,kt as EventCustomMethodInvoked,Rt as EventInvoiceClosed,Ct as EventMainButtonPressed,Pt as EventPhoneRequested,Ot as EventPopupClosed,Tt as EventQrTextReceived,xt as EventReloadIframe,Et as EventSafeAreaChanged,Bt as EventScanQrPopupClosed,It as EventSetCustomStyle,At as EventSettingsButtonPressed,Lt as EventThemeChanged,Wt as EventViewportChanged,Ht as EventWriteAccessRequested,vt as Method,St as MethodAddToHomeScreen,ft as MethodCheckHomeScreen,Je as MethodClose,$e as MethodCloseScanQrPopup,je as MethodDataSend,mt as MethodExitFullscreen,Ue as MethodExpand,Ve as MethodIframeReady,Ge as MethodIframeWillReload,Ne as MethodInvokeCustomMethod,ze as MethodOpenInvoice,Ke as MethodOpenLink,Xe as MethodOpenPopup,De as MethodOpenScanQrPopup,Ye as MethodOpenTgLink,Me as MethodReadTextFromClipboard,Ze as MethodReady,bt as MethodRequestContentSafeArea,wt as MethodRequestFullscreen,Qe as MethodRequestPhone,gt as MethodRequestSafeArea,et as MethodRequestTheme,tt as MethodRequestViewport,st as MethodRequestWriteAccess,at as MethodSetBackgroundColor,ot as MethodSetBottomBarColor,rt as MethodSetHeaderColor,nt as MethodSetupBackButton,it as MethodSetupClosingBehavior,pt as MethodSetupMainButton,ut as MethodSetupSettingsButton,ct as MethodSetupSwipeBehavior,lt as MethodShareToStory,_t as MethodSwitchInlineQuery,ht as MethodToggleOrientationLock,dt as MethodTriggerHapticFeedback,d as NOT_SUPPORTED,Vt as ProviderTWA,u as TG_DESKTOP,p as TG_PHONE,i as TG_WEB,Ce as bridgeAddToHomeScreen,ke as bridgeCheckHomeScreen,w as bridgeClose,h as bridgeCloseScanQrPopup,f as bridgeDataSend,y as bridgeExpand,Ee as bridgeGetInitData,b as bridgeGetThemeParams,k as bridgeIframeReady,C as bridgeIframeWillReload,O as bridgeInvokeCustomMethod,T as bridgeOpenInvoice,I as bridgeOpenLink,L as bridgeOpenPopup,H as bridgeOpenScanQrPopup,F as bridgeOpenTgLink,D as bridgeReadTextFromClipboard,Q as bridgeReady,Te as bridgeRequestContentSafeAreaInset,$ as bridgeRequestPhone,Oe as bridgeRequestSafeAreaInset,U as bridgeRequestTheme,G as bridgeRequestViewport,K as bridgeRequestWriteAccess,Fe as bridgeSend,he as bridgeSessionStorageGet,we as bridgeSessionStorageSet,Y as bridgeSetBackgroundColor,se as bridgeSetBottomBarColor,ee as bridgeSetHeaderColor,re as bridgeSetupBackButton,ne as bridgeSetupClosingBehavior,Ie as bridgeSetupFullScreen,pe as bridgeSetupMainButton,Le as bridgeSetupOrientation,_e as bridgeSetupSettingsButton,fe as bridgeSetupSwipeBehavior,ye as bridgeShareToStory,ce as bridgeSwitchInlineQuery,ge as bridgeTriggerHapticFeedback,n as createIsViewportChanged,He as debug,jt as getAppData,_ as getPlatform,$t as listener,Fe as sender,Pe as supportAddToHomeScreen,Re as supportCheckHomeScreen,m as supportClose,S as supportCloseScanQrPopup,v as supportDataSend,q as supportExpand,R as supportIframeReady,P as supportIframeWillReload,x as supportInvokeCustomMethod,B as supportOpenInvoice,A as supportOpenLink,W as supportOpenPopup,E as supportOpenScanQrPopup,N as supportOpenTgLink,M as supportReadTextFromClipboard,J as supportReady,Be as supportRequestContentSafeAreaInset,j as supportRequestPhone,xe as supportRequestSafeAreaInset,V as supportRequestTheme,z as supportRequestViewport,X as supportRequestWriteAccess,Se as supportSessionStorageGet,me as supportSessionStorageSet,Z as supportSetBackgroundColor,ae as supportSetBottomBarColor,te as supportSetHeaderColor,oe as supportSetupBackButton,ie as supportSetupClosingBehavior,Ae as supportSetupFullScreen,ue as supportSetupMainButton,We as supportSetupOrientation,de as supportSetupSettingsButton,ve as supportSetupSwipeBehavior,qe as supportShareToStory,le as supportSwitchInlineQuery,be as supportTriggerHapticFeedback};
1
+ import{createSignal as e,onMount as t,onCleanup as s,createContext as a,createEffect as r}from"solid-js";import{createStore as o}from"solid-js/store";const n=()=>{const[a,r]=e({height:0,is_expanded:!1,is_state_stable:!1}),o=e=>r(e);return t((()=>{os(Vt,o),Je(_t)})),s((()=>{ns(Vt,o)})),a},i="web",u="phone",_="desktop",p=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?u:["tdesktop","macos"].includes(t)?_:i},d="not_supported",c=(e,t)=>{const s=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(s?.replace(".",""))>=Number(String(e)?.replace(".",""))&&-1!==t.indexOf(p())},l=()=>Math.random().toString(36).substring(3,9),g=e=>{var t;if(t=/^\s*#([0-9a-f]{6})\s*$/i.exec(e+=""))return"#"+t[1].toLowerCase();if(t=/^\s*#([0-9a-f])([0-9a-f])([0-9a-f])\s*$/i.exec(e))return("#"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]).toLowerCase();if(t=/^\s*rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)\s*$/.exec(e)){var s=parseInt(t[1]),a=parseInt(t[2]),r=parseInt(t[3]);return"#"+((s<16?"0":"")+s.toString(16))+((a<16?"0":"")+a.toString(16))+((r<16?"0":"")+r.toString(16))}return!1},w=e=>{const t=window.location.hash.slice(1),s=new URLSearchParams(t),a=JSON.parse(s.get("tgWebAppThemeParams")??""),r=e||a;for(var o of Object.keys(r)){var n=g(r[o]);"string"==typeof n&&(r[o]=n)}return"#1c1c1d"==r?.bg_color&&r?.bg_color==r?.secondary_bg_color&&(r.secondary_bg_color="#2c2c2e"),r},b=e=>m()?(Je(Xe,e),{status:!0}):(Ue(Xe,1),{status:d}),m=()=>c(0,[i,_,u]),S=e=>h()?(Je(Ye,e),{status:!0}):(Ue(Ye,1),{status:d}),h=()=>c(6.4,[u]),f=e=>v()?(Je(Ze,e),{status:!0}):(Ue(Ze,1),{status:d}),v=()=>c(0,[i,_,u]),q=e=>y()?(Je(et,e),{status:!0}):(Ue(et,1),{status:d}),y=()=>c(0,[u]),R=e=>k()?(Je(tt,e),{status:!0}):(Ue(tt,1),{status:d}),k=()=>c(0,[i]),P=()=>x()?(Je(tt),{status:!0}):(Ue(tt,1),{status:d}),x=()=>c(0,[i]),C=async e=>O()?(void 0===e.req_id&&(e.req_id=l()),Je(Ve,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),ns(jt,a))};os(jt,a)}))):(Ue(Ve,1),{status:d}),O=()=>c(6.9,[i,_,u]),T=e=>B()?(Je(at,e),{status:!0}):(Ue(at,1),{status:d}),B=()=>c(6.1,[i,_,u]),I=e=>L()?(Je(rt,e),{status:!0}):(Ue(rt,1),{status:d}),L=()=>c(6.4,[i,_,u]),A=async e=>E()?(e.title.length>64&&Ue(ot,3),e.message.length<1&&Ue(ot,4),e.message.length>256&&Ue(ot,5),e.buttons.length<1&&Ue(ot,6),e.buttons.length>3&&Ue(ot,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&Ue(ot,8),Je(ot,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),ns(Mt,a)};os(Mt,a)}))):(Ue(ot,1),{status:d}),E=()=>c(6.2,[i,_,u]),j=async e=>W()?(Je(Ge,e),new Promise(((t,s)=>{is(Nt,(s=>{e.is_close&&S(),t({status:!0,data:s})})),is(Qt,(()=>{t({status:"closed"})}))}))):(Ue(Ge,1),{status:d}),W=()=>c(6.4,[u]),F=e=>{const t=function(e){try{return new URL(e)}catch(t){try{return new URL(e,"https://t.me")}catch(t){return e.startsWith("/")||(e="/"+e),new URL(e,"https://t.me")}}}(e.path_full);return e.path_full=t.pathname=t.search,D()?(Je(nt,e),{status:!0}):(Ue(nt,1),{status:d})},D=()=>c(7,[i,_,u]);const M=async e=>H()?(e||(e={req_id:void 0}),void 0===e.req_id&&(e.req_id=l()),Je(ze,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e?.req_id&&(t({status:!0,data:s}),ns(Et,a))};os(Et,a)}))):(Ue(ze,1),{status:d}),H=()=>c(6.4,[i,_,u]),N=e=>Q()?(Je(it,e),{status:!0}):(Ue(it,1),{status:d}),Q=()=>c(6.9,[i,_,u]),U=async()=>$()?(Je(Ke),new Promise(((e,t)=>{is(Dt,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(Ue(Ke,1),{status:d}),$=()=>c(6.9,[i,_,u]),J=e=>V()?(Je(ut,e),{status:!0}):(Ue(ut,1),{status:d}),V=()=>c(0,[i,_,u]),G=e=>z()?(Je(_t,e),{status:!0}):(Ue(_t,1),{status:d}),z=()=>c(0,[i,_,u]),K=()=>X()?(Je(pt),{status:!0}):(Ue(pt,1),{status:d}),X=()=>c(6.9,[i,_,u]),Y=e=>Z()?(Je(dt,e),{status:!0}):(Ue(dt,1),{status:d}),Z=()=>c(6.1,[i,_,u]),ee=e=>te()?(Je(ct,e),{status:!0}):(Ue(ct,1),{status:d}),te=()=>c(6.1,[i,_,u]),se=e=>ae()?(Je(lt,{color:e?.color||e?.color_key}),{status:!0}):(Ue(lt,1),{status:d}),ae=()=>c(7.1,[i,_,u]),re=e=>oe()?(Je(gt,e),{status:!0}):(Ue(gt,1),{status:d}),oe=()=>c(6.1,[i,_,u]),ne=e=>ie()?(Je(wt,e),{status:!0}):(Ue(wt,1),{status:d}),ie=()=>c(6.2,[i,_,u]),ue=e=>_e()?(Je(bt,e),{status:!0}):(Ue(bt,1),{status:d}),_e=()=>c(0,[i,_,u]),pe=e=>de()?(Je(mt,e),{status:!0}):(Ue(mt,1),{status:d}),de=()=>c(6.1,[i,_,u]),ce=e=>le()?(e.query.length>256&&Ue(St,9),Je(St,e),{status:!0}):(Ue(St,1),{status:d}),le=()=>c(6.7,[i,_,u]),ge=e=>we()?(Je(ht,e),{status:!0}):(Ue(ht,1),{status:d}),we=()=>c(6.1,[u]),be=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(s){return window.sessionStorage.setItem("__telegram__"+e,t),{status:!0}}},me=()=>!0,Se=({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}}},he=()=>!0,fe=e=>ve()?(Je(ft,e),{status:!0}):(Ue(ft,1),{status:d}),ve=()=>c(7.7,[i,_,u]),qe=e=>ye()?e?.text&&e?.text.length>2048?(console.warn(`[@apiteam/twa-bridge](${vt}) | Text is too long`),{status:!1,error_id:1}):e?.widget_link?.name&&e?.widget_link.name.length>48?(console.warn(`[@apiteam/twa-bridge](${vt}) | Link name is too long`),{status:!1,error_id:2}):(Je(vt,e),{status:!0}):(Ue(vt,1),{status:d}),ye=()=>c(7.8,[i,_,u]),Re=async e=>ke()?(Je(Ct,e),new Promise(((e,t)=>{const s=t=>{e({status:!0,data:t}),ns(Xt,s)};os(Xt,s)}))):(Ue(Ct,1),{status:d,data:void 0}),ke=()=>c(8,[_,u]),Pe=()=>xe()?(Je(xt),{status:!0}):(Ue(xt,1),{status:d}),xe=()=>c(8,[_,u]),Ce=()=>Oe()?(Je(qt),{status:!0}):(Ue(qt,1),{status:d}),Oe=()=>c(8,[i,_,u]),Te=()=>Be()?(Je(yt),{status:!0}):(Ue(yt,1),{status:d}),Be=()=>c(8,[i,_,u]),Ie=e=>{const t=e?.is_full||!1;return Le()?(Je(t?Rt:kt),{status:!0}):(Ue(t?Rt:kt,1),{status:d})},Le=()=>c(8,[i,_,u]),Ae=e=>Ee()?(Je(Pt,e),{status:!0}):(Ue(Pt,1),{status:d}),Ee=()=>c(8,[i,_,u]),je=async e=>We()?new Promise(((t,s)=>{is(ss,(function(e){t({status:"allowed"===e.status})})),Je(Bt,e)})):(Ue(Bt,1),{status:d}),We=()=>c(8,[i,_,u]),Fe=async e=>De()?new Promise(((t,s)=>{is(es,(()=>t({status:!0}))),is(ts,(()=>t({status:!1}))),Je(Tt,e)})):(Ue(Tt,1),{status:d}),De=()=>c(8,[i,_,u]),Me=async e=>He()?new Promise(((t,s)=>{is(Yt,(()=>t({status:!0}))),is(Zt,(()=>t({status:!1}))),Je(Ot,e)})):(Ue(Ot,1),{status:d}),He=()=>c(8,[i,_,u]),Ne=async e=>Qe()?new Promise(((t,s)=>{is(as,(function(e){t({status:"downloading"===e.status})})),Je(It,e)})):(Ue(It,1),{status:d}),Qe=()=>c(8,[i,_,u]),Ue=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)},$e=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppData");if(!t)return void Ue("getInitData",2);const s=new URLSearchParams(t);let a={};return s.forEach(((e,t)=>{if(a[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{a[t]=JSON.parse(e)}catch{}})),a},Je=(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){Ue("postMessage Iframe",10)}},Ve="web_app_invoke_custom_method",Ge="web_app_open_scan_qr_popup",ze="web_app_read_text_from_clipboard",Ke="web_app_request_phone",Xe="web_app_close",Ye="web_app_close_scan_qr_popup",Ze="web_app_data_send",et="web_app_expand",tt="iframe_ready",st="iframe_will_reload",at="web_app_open_invoice",rt="web_app_open_link",ot="web_app_open_popup",nt="web_app_open_tg_link",it="web_app_ready",ut="web_app_request_theme",_t="web_app_request_viewport",pt="web_app_request_write_access",dt="web_app_set_background_color",ct="web_app_set_header_color",lt="web_app_set_bottom_bar_color",gt="web_app_setup_back_button",wt="web_app_setup_closing_behavior",bt="web_app_setup_main_button",mt="web_app_setup_settings_button",St="web_app_switch_inline_query",ht="web_app_trigger_haptic_feedback",ft="web_app_setup_swipe_behavior",vt="web_app_share_to_story",qt="web_app_request_safe_area",yt="web_app_request_content_safe_area",Rt="web_app_request_fullscreen",kt="web_app_exit_fullscreen",Pt="web_app_toggle_orientation_lock",xt="web_app_add_to_home_screen",Ct="web_app_check_home_screen",Ot="web_app_send_prepared_message",Tt="web_app_set_emoji_status",Bt="web_app_request_emoji_status_access",It="web_app_request_file_download";var Lt=(e=>(e[e.InvokeCustomMethod=Ve]="InvokeCustomMethod",e[e.OpenScanQrPopup=Ge]="OpenScanQrPopup",e[e.ReadTextFromClipboard=ze]="ReadTextFromClipboard",e[e.RequestPhone=Ke]="RequestPhone",e[e.Close=Xe]="Close",e[e.CloseScanQrPopup=Ye]="CloseScanQrPopup",e[e.DataSend=Ze]="DataSend",e[e.Expand=et]="Expand",e[e.IframeReady=tt]="IframeReady",e[e.IframeWillReload=st]="IframeWillReload",e[e.OpenInvoice=at]="OpenInvoice",e[e.OpenLink=rt]="OpenLink",e[e.OpenPopup=ot]="OpenPopup",e[e.OpenTgLink=nt]="OpenTgLink",e[e.Ready=it]="Ready",e[e.RequestTheme=ut]="RequestTheme",e[e.RequestViewport=_t]="RequestViewport",e[e.RequestWriteAccess=pt]="RequestWriteAccess",e[e.SetBackgroundColor=dt]="SetBackgroundColor",e[e.SetHeaderColor=ct]="SetHeaderColor",e[e.SetBottomBarColor=lt]="SetBottomBarColor",e[e.SetupBackButton=gt]="SetupBackButton",e[e.SetupClosingBehavior=wt]="SetupClosingBehavior",e[e.SetupMainButton=bt]="SetupMainButton",e[e.SetupSettingsButton=mt]="SetupSettingsButton",e[e.SwitchInlineQuery=St]="SwitchInlineQuery",e[e.TriggerHapticFeedback=ht]="TriggerHapticFeedback",e[e.SetupSwipeBehavior=ft]="SetupSwipeBehavior",e[e.ShareToStory=vt]="ShareToStory",e[e.RequestSafeArea=qt]="RequestSafeArea",e[e.RequestContentSafeArea=yt]="RequestContentSafeArea",e[e.RequestFullscreen=Rt]="RequestFullscreen",e[e.ExitFullscreen=kt]="ExitFullscreen",e[e.ToggleOrientationLock=Pt]="ToggleOrientationLock",e[e.AddToHomeScreen=xt]="AddToHomeScreen",e[e.CheckHomeScreen=Ct]="CheckHomeScreen",e[e.SendPreparedMessage=Ot]="SendPreparedMessage",e[e.SetEmojiStatus=Tt]="SetEmojiStatus",e[e.RequestEmojiStatusAccess=Bt]="RequestEmojiStatusAccess",e[e.RequestFileDownload=It]="RequestFileDownload",e))(Lt||{});const At="back_button_pressed",Et="clipboard_text_received",jt="custom_method_invoked",Wt="invoice_closed",Ft="main_button_pressed",Dt="phone_requested",Mt="popup_closed",Ht="reload_iframe",Nt="qr_text_received",Qt="scan_qr_popup_closed",Ut="set_custom_style",$t="settings_button_pressed",Jt="theme_changed",Vt="viewport_changed",Gt="write_access_requested",zt="safe_area_changed",Kt="content_safe_area_changed",Xt="web_app_check_home_screen",Yt="prepared_message_sent",Zt="prepared_message_failed",es="emoji_status_set",ts="emoji_status_failed",ss="emoji_status_access_requested",as="file_download_requested",rs=((e=new Map)=>({once:(t,s,a=e.get(t),r=e=>{s(e),a&&a.splice(a.indexOf(s)>>>0,1)})=>a?a.push(r):e.set(t,[r]),on:(t,s,a=e.get(t))=>a?a.push(s):e.set(t,[s]),off:(t,s,a=e.get(t))=>a&&s?a.splice(a.indexOf(s)>>>0,1):e.set(t,[]),emit:(t,s,a=e.get(t)||[])=>{for(const e of a)e(s)}}))();(()=>{function e(e,t){e===Jt&&(t.theme_params=w(t.theme_params)),rs.emit(e,t),rs.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const os=(e,t)=>{rs.on(e,t)},ns=(e,t)=>{rs.off(e,t)},is=(e,t)=>{rs.once(e,t)};var us=Object.freeze({__proto__:null,off:ns,on:os,once:is});const _s=()=>{const e=window.location.hash.slice(1);return new URLSearchParams(e).get("tgWebAppData")},ps=a({viewport:void 0,theme:void 0,init:void 0}),ds=e=>{const[t,a]=o({viewport:void 0,theme:void 0,init:void 0});return r((()=>{const e=()=>{a("init",$e())};e();const t=t=>{e(),a("viewport",t)};os(Vt,t),G();const r=t=>{e(),a("theme",t)};return os(Jt,r),G(),s((()=>{ns(Vt,t),ns(Jt,r)})),()=>{ns(Vt,t),ns(Jt,r)}})),ps.Provider({value:t,children:e.children})};export{ps as ContextTwa,At as EventBackButtonPressed,Xt as EventCheckHomeScreen,Et as EventClipboardTextReceived,Kt as EventContentSafeAreaChanged,jt as EventCustomMethodInvoked,ss as EventEmojiStatusAccessRequested,ts as EventEmojiStatusFailed,es as EventEmojiStatusSet,as as EventFileDownloadRequested,Wt as EventInvoiceClosed,Ft as EventMainButtonPressed,Dt as EventPhoneRequested,Mt as EventPopupClosed,Zt as EventPreparedMessageFailed,Yt as EventPreparedMessageSent,Nt as EventQrTextReceived,Ht as EventReloadIframe,zt as EventSafeAreaChanged,Qt as EventScanQrPopupClosed,Ut as EventSetCustomStyle,$t as EventSettingsButtonPressed,Jt as EventThemeChanged,Vt as EventViewportChanged,Gt as EventWriteAccessRequested,Lt as Method,xt as MethodAddToHomeScreen,Ct as MethodCheckHomeScreen,Xe as MethodClose,Ye as MethodCloseScanQrPopup,Ze as MethodDataSend,kt as MethodExitFullscreen,et as MethodExpand,tt as MethodIframeReady,st as MethodIframeWillReload,Ve as MethodInvokeCustomMethod,at as MethodOpenInvoice,rt as MethodOpenLink,ot as MethodOpenPopup,Ge as MethodOpenScanQrPopup,nt as MethodOpenTgLink,ze as MethodReadTextFromClipboard,it as MethodReady,yt as MethodRequestContentSafeArea,Bt as MethodRequestEmojiStatusAccess,It as MethodRequestFileDownload,Rt as MethodRequestFullscreen,Ke as MethodRequestPhone,qt as MethodRequestSafeArea,ut as MethodRequestTheme,_t as MethodRequestViewport,pt as MethodRequestWriteAccess,Ot as MethodSendPreparedMessage,dt as MethodSetBackgroundColor,lt as MethodSetBottomBarColor,Tt as MethodSetEmojiStatus,ct as MethodSetHeaderColor,gt as MethodSetupBackButton,wt as MethodSetupClosingBehavior,bt as MethodSetupMainButton,mt as MethodSetupSettingsButton,ft as MethodSetupSwipeBehavior,vt as MethodShareToStory,St as MethodSwitchInlineQuery,Pt as MethodToggleOrientationLock,ht as MethodTriggerHapticFeedback,d as NOT_SUPPORTED,ds as ProviderTWA,_ as TG_DESKTOP,u as TG_PHONE,i as TG_WEB,Pe as bridgeAddToHomeScreen,Re as bridgeCheckHomeScreen,b as bridgeClose,S as bridgeCloseScanQrPopup,f as bridgeDataSend,Ne as bridgeDownloadFile,q as bridgeExpand,$e as bridgeGetInitData,w as bridgeGetThemeParams,R as bridgeIframeReady,P as bridgeIframeWillReload,C as bridgeInvokeCustomMethod,T as bridgeOpenInvoice,I as bridgeOpenLink,A as bridgeOpenPopup,j as bridgeOpenScanQrPopup,F as bridgeOpenTgLink,M as bridgeReadTextFromClipboard,N as bridgeReady,Te as bridgeRequestContentSafeAreaInset,je as bridgeRequestEmojiStatus,U as bridgeRequestPhone,Ce as bridgeRequestSafeAreaInset,J as bridgeRequestTheme,G as bridgeRequestViewport,K as bridgeRequestWriteAccess,Je as bridgeSend,Se as bridgeSessionStorageGet,be as bridgeSessionStorageSet,Y as bridgeSetBackgroundColor,se as bridgeSetBottomBarColor,Fe as bridgeSetEmojiStatus,ee as bridgeSetHeaderColor,re as bridgeSetupBackButton,ne as bridgeSetupClosingBehavior,Ie as bridgeSetupFullScreen,ue as bridgeSetupMainButton,Ae as bridgeSetupOrientation,pe as bridgeSetupSettingsButton,fe as bridgeSetupSwipeBehavior,Me as bridgeShareMessage,qe as bridgeShareToStory,ce as bridgeSwitchInlineQuery,ge as bridgeTriggerHapticFeedback,n as createIsViewportChanged,Ue as debug,_s as getAppData,p as getPlatform,us as listener,Je as sender,xe as supportAddToHomeScreen,ke as supportCheckHomeScreen,m as supportClose,h as supportCloseScanQrPopup,v as supportDataSend,Qe as supportDownloadFile,y as supportExpand,k as supportIframeReady,x as supportIframeWillReload,O as supportInvokeCustomMethod,B as supportOpenInvoice,L as supportOpenLink,E as supportOpenPopup,W as supportOpenScanQrPopup,D as supportOpenTgLink,H as supportReadTextFromClipboard,Q as supportReady,Be as supportRequestContentSafeAreaInset,We as supportRequestEmojiStatus,$ as supportRequestPhone,Oe as supportRequestSafeAreaInset,V as supportRequestTheme,z as supportRequestViewport,X as supportRequestWriteAccess,he as supportSessionStorageGet,me as supportSessionStorageSet,Z as supportSetBackgroundColor,ae as supportSetBottomBarColor,De as supportSetEmojiStatus,te as supportSetHeaderColor,oe as supportSetupBackButton,ie as supportSetupClosingBehavior,Le as supportSetupFullScreen,_e as supportSetupMainButton,Ee as supportSetupOrientation,de as supportSetupSettingsButton,ve as supportSetupSwipeBehavior,He as supportShareMessage,ye as supportShareToStory,le as supportSwitchInlineQuery,we as supportTriggerHapticFeedback};