@tma.js/bridge 1.4.1 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +44 -13
  3. package/dist/dts/applyPolyfills.d.ts +5 -0
  4. package/dist/dts/base64-url.d.ts +24 -0
  5. package/dist/dts/env/hasWebviewProxy.d.ts +10 -0
  6. package/dist/dts/env/isIframe.d.ts +5 -0
  7. package/dist/dts/env/isTMA.d.ts +31 -0
  8. package/dist/dts/env/mockTelegramEnv.d.ts +57 -0
  9. package/dist/dts/errors.d.ts +27 -0
  10. package/dist/dts/events/createEmitter.d.ts +58 -0
  11. package/dist/dts/events/emitEvent.d.ts +33 -0
  12. package/dist/dts/events/emitter.d.ts +2 -11
  13. package/dist/dts/events/types/events.d.ts +721 -0
  14. package/dist/dts/events/types/index.d.ts +3 -0
  15. package/dist/dts/events/types/listening.d.ts +5 -0
  16. package/dist/dts/events/types/misc.d.ts +16 -0
  17. package/dist/dts/globals.d.ts +45 -14
  18. package/dist/dts/index.d.ts +24 -7
  19. package/dist/dts/launch-params.d.ts +32 -0
  20. package/dist/dts/methods/captureSameReq.d.ts +10 -0
  21. package/dist/dts/methods/createPostEvent.d.ts +27 -7
  22. package/dist/dts/methods/postEvent.d.ts +31 -25
  23. package/dist/dts/methods/postMessage.d.ts +7 -0
  24. package/dist/dts/methods/supports.d.ts +15 -0
  25. package/dist/dts/methods/types/custom-method.d.ts +59 -0
  26. package/dist/dts/methods/types/index.d.ts +6 -0
  27. package/dist/dts/methods/types/methods.d.ts +756 -0
  28. package/dist/dts/methods/types/misc.d.ts +27 -0
  29. package/dist/dts/methods/{popup.d.ts → types/popup.d.ts} +1 -1
  30. package/dist/dts/methods/types/utils.d.ts +9 -0
  31. package/dist/dts/obj-prop-helpers.d.ts +39 -0
  32. package/dist/dts/start-param.d.ts +53 -0
  33. package/dist/dts/utils/compareVersions.d.ts +10 -0
  34. package/dist/dts/utils/invokeCustomMethod.d.ts +34 -0
  35. package/dist/dts/utils/request.d.ts +90 -0
  36. package/dist/index.cjs +3 -1
  37. package/dist/index.cjs.map +1 -1
  38. package/dist/index.iife.js +3 -1
  39. package/dist/index.iife.js.map +1 -1
  40. package/dist/index.js +977 -0
  41. package/dist/index.js.map +1 -0
  42. package/package.json +26 -26
  43. package/dist/dts/env.d.ts +0 -29
  44. package/dist/dts/errors/MethodUnsupportedError.d.ts +0 -8
  45. package/dist/dts/errors/ParameterUnsupportedError.d.ts +0 -8
  46. package/dist/dts/errors/index.d.ts +0 -2
  47. package/dist/dts/events/events.d.ts +0 -130
  48. package/dist/dts/events/index.d.ts +0 -7
  49. package/dist/dts/events/off.d.ts +0 -7
  50. package/dist/dts/events/on.d.ts +0 -10
  51. package/dist/dts/events/onTelegramEvent.d.ts +0 -7
  52. package/dist/dts/events/once.d.ts +0 -9
  53. package/dist/dts/events/parsers/clipboardTextReceived.d.ts +0 -13
  54. package/dist/dts/events/parsers/customMethodInvoked.d.ts +0 -16
  55. package/dist/dts/events/parsers/index.d.ts +0 -9
  56. package/dist/dts/events/parsers/invoiceClosed.d.ts +0 -12
  57. package/dist/dts/events/parsers/phoneRequested.d.ts +0 -8
  58. package/dist/dts/events/parsers/popupClosed.d.ts +0 -8
  59. package/dist/dts/events/parsers/qrTextReceived.d.ts +0 -7
  60. package/dist/dts/events/parsers/theme-changed.d.ts +0 -42
  61. package/dist/dts/events/parsers/viewportChanged.d.ts +0 -19
  62. package/dist/dts/events/parsers/writeAccessRequested.d.ts +0 -8
  63. package/dist/dts/events/subscribe.d.ts +0 -9
  64. package/dist/dts/events/unsubscribe.d.ts +0 -6
  65. package/dist/dts/methods/index.d.ts +0 -6
  66. package/dist/dts/methods/invoke-custom-method.d.ts +0 -24
  67. package/dist/dts/methods/methods.d.ts +0 -330
  68. package/dist/dts/request.d.ts +0 -66
  69. package/dist/dts/shared.d.ts +0 -5
  70. package/dist/dts/supports.d.ts +0 -15
  71. package/dist/index.mjs +0 -317
  72. package/dist/index.mjs.map +0 -1
  73. package/src/env.ts +0 -49
  74. package/src/errors/MethodUnsupportedError.ts +0 -13
  75. package/src/errors/ParameterUnsupportedError.ts +0 -13
  76. package/src/errors/index.ts +0 -2
  77. package/src/events/emitter.ts +0 -126
  78. package/src/events/events.ts +0 -169
  79. package/src/events/index.ts +0 -7
  80. package/src/events/off.ts +0 -12
  81. package/src/events/on.ts +0 -17
  82. package/src/events/onTelegramEvent.ts +0 -83
  83. package/src/events/once.ts +0 -16
  84. package/src/events/parsers/clipboardTextReceived.ts +0 -27
  85. package/src/events/parsers/customMethodInvoked.ts +0 -26
  86. package/src/events/parsers/index.ts +0 -9
  87. package/src/events/parsers/invoiceClosed.ts +0 -26
  88. package/src/events/parsers/phoneRequested.ts +0 -14
  89. package/src/events/parsers/popupClosed.ts +0 -19
  90. package/src/events/parsers/qrTextReceived.ts +0 -14
  91. package/src/events/parsers/theme-changed.ts +0 -58
  92. package/src/events/parsers/viewportChanged.ts +0 -33
  93. package/src/events/parsers/writeAccessRequested.ts +0 -14
  94. package/src/events/subscribe.ts +0 -16
  95. package/src/events/unsubscribe.ts +0 -11
  96. package/src/globals.ts +0 -38
  97. package/src/index.ts +0 -7
  98. package/src/methods/createPostEvent.ts +0 -39
  99. package/src/methods/haptic.ts +0 -52
  100. package/src/methods/index.ts +0 -6
  101. package/src/methods/invoke-custom-method.ts +0 -25
  102. package/src/methods/methods.ts +0 -373
  103. package/src/methods/popup.ts +0 -53
  104. package/src/methods/postEvent.ts +0 -101
  105. package/src/request.ts +0 -168
  106. package/src/shared.ts +0 -5
  107. package/src/supports.ts +0 -82
  108. /package/dist/dts/methods/{haptic.d.ts → types/haptic-feedback.d.ts} +0 -0
@@ -1,2 +1,4 @@
1
- this.tmajs=this.tmajs||{};this.tmajs.bridge=function(s){"use strict";class w extends Error{constructor(e,r){super(`Method "${e}" is unsupported in the Mini Apps version ${r}.`),Object.setPrototypeOf(this,w.prototype)}}class g extends Error{constructor(e,r,n){super(`Parameter "${r}" in method "${e}" is unsupported in the Mini Apps version ${n}.`),Object.setPrototypeOf(this,g.prototype)}}function te(t){return/^#[\da-f]{3}$/i.test(t)}function re(t){return/^#[\da-f]{6}$/i.test(t)}function ne(t){const e=t.replace(/\s/g,"").toLowerCase();if(re(e))return e;if(te(e)){let n="#";for(let i=0;i<3;i+=1)n+=e[1+i].repeat(2);return n}const r=e.match(/^rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)$/)||e.match(/^rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),\d{1,3}\)$/);if(r===null)throw new Error(`Value "${t}" does not satisfy any of known RGB formats.`);return r.slice(1).reduce((n,i)=>{const o=parseInt(i,10).toString(16);return n+(o.length===1?"0":"")+o},"#")}var ie=Object.defineProperty,se=(t,e,r)=>e in t?ie(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,oe=(t,e,r)=>(se(t,typeof e!="symbol"?e+"":e,r),r);class y extends Error{constructor(e,{cause:r,type:n}={}){super(`Unable to parse value${n?` as ${n}`:""}`,{cause:r}),oe(this,"type"),this.value=e,Object.setPrototypeOf(this,y.prototype),this.type=n}}class C{constructor(e,r,n){this.parser=e,this.isOptional=r,this.type=n}parse(e){if(!(this.isOptional&&e===void 0))try{return this.parser(e)}catch(r){throw new y(e,{type:this.type,cause:r})}}optional(){return this.isOptional=!0,this}}function m(){return new TypeError("Value has unexpected type")}function E(t,e){return()=>new C(t,!1,e)}const T=E(t=>{if(typeof t=="boolean")return t;const e=String(t);if(e==="1"||e==="true")return!0;if(e==="0"||e==="false")return!1;throw m()},"boolean"),$=E(t=>{if(typeof t=="number")return t;if(typeof t=="string"){const e=Number(t);if(!Number.isNaN(e))return e}throw m()},"number");$();let x=class ee extends Error{constructor(e,{cause:r,type:n}={}){super(`Unable to parse field "${e}"${n?` as ${n}`:""}`,{cause:r}),Object.setPrototypeOf(this,ee.prototype)}};function ce(t,e){const r={};for(const n in t){const i=t[n];if(!i)continue;let o,u;if(typeof i=="function"||"parse"in i)o=n,u=typeof i=="function"?i:i.parse.bind(i);else{const{type:a}=i;o=i.from||n,u=typeof a=="function"?a:a.parse.bind(a)}let p;const k=e(o);try{p=u(k)}catch(a){throw a instanceof y?new x(o,{type:a.type,cause:a}):new x(o,{cause:a})}p!==void 0&&(r[n]=p)}return r}function M(t){let e=t;if(typeof e=="string"&&(e=JSON.parse(e)),typeof e!="object"||e===null||Array.isArray(e))throw m();return e}function f(t,e){return new C(r=>{const n=M(r);return ce(t,i=>n[i])},!1,e)}const c=E(t=>{if(typeof t=="string"||typeof t=="number")return t.toString();throw m()},"string"),ue=c(),ae=E(t=>ne(ue.parse(t)),"rgb");function N(){return f({req_id:c(),data:t=>t===null?t:c().optional().parse(t)})}function R(){return f({req_id:c(),result:t=>t,error:c().optional()})}function S(){return f({slug:c(),status:c()})}function I(){return f({status:c()})}function W(){return f({button_id:t=>t==null?void 0:c().parse(t)})}function J(){return f({data:c().optional()})}function U(){return f({theme_params:t=>{const e=ae().optional();return Object.entries(M(t)).reduce((r,[n,i])=>(r[n]=e.parse(i),r),{})}})}function G(){return f({height:$(),width:t=>t==null?window.innerWidth:$().parse(t),is_state_stable:T(),is_expanded:T()})}function B(){return f({status:c()})}var fe=Object.defineProperty,pe=(t,e,r)=>e in t?fe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,H=(t,e,r)=>(pe(t,typeof e!="symbol"?e+"":e,r),r);class le{constructor(){H(this,"listeners",new Map),H(this,"subscribeListeners",[])}addListener(e,r,n){let i=this.listeners.get(e);return i||(i=[],this.listeners.set(e,i)),i.push([r,n]),()=>this.off(e,r)}emit(e,...r){this.subscribeListeners.forEach(i=>i(e,...r));const n=this.listeners.get(e);n&&n.forEach(([i,o],u)=>{i(...r),o&&n.splice(u,1)})}on(e,r){return this.addListener(e,r,!1)}once(e,r){return this.addListener(e,r,!0)}off(e,r){const n=this.listeners.get(e);if(n){for(let i=0;i<n.length;i+=1)if(r===n[i][0]){n.splice(i,1);return}}}subscribe(e){return this.subscribeListeners.push(e),()=>this.unsubscribe(e)}unsubscribe(e){for(let r=0;r<this.subscribeListeners.length;r+=1)if(this.subscribeListeners[r]===e){this.subscribeListeners.splice(r,1);return}}}class de{constructor(e,r){this.prefix=e,this.enabled=r}print(e,...r){if(!this.enabled)return;const n=new Date,i=Intl.DateTimeFormat("en-GB",{hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3,timeZone:"UTC"}).format(n);console[e](`[${i}]`,this.prefix,...r)}disable(){this.enabled=!1}error(...e){this.print("error",...e)}enable(){this.enabled=!0}log(...e){this.print("log",...e)}warn(...e){this.print("warn",...e)}}let O="https://web.telegram.org";const d=new de("[Bridge]",!1);function _e(t){if(t){d.enable();return}d.disable()}function be(t){O=t}function he(){return O}const we=f({eventType:c(),eventData:t=>t});function ge(t,e){window.dispatchEvent(new MessageEvent("message",{data:JSON.stringify({eventType:t,eventData:e})}))}function ye(){const t=window;"TelegramGameProxy_receiveEvent"in t||[["TelegramGameProxy_receiveEvent"],["TelegramGameProxy","receiveEvent"],["Telegram","WebView","receiveEvent"]].forEach(e=>{let r=t;e.forEach((n,i,o)=>{if(i===o.length-1){r[n]=ge;return}n in r||(r[n]={}),r=r[n]})})}function me(t){ye(),window.addEventListener("message",e=>{try{const{eventType:r,eventData:n}=we.parse(e.data);t(r,n)}catch{}})}const q="__telegram-cached-emitter__";function Ee(){const t=new le,e=(r,...n)=>{d.log("Emitting processed event:",r,...n),t.emit(r,...n)};return window.addEventListener("resize",()=>{e("viewport_changed",{width:window.innerWidth,height:window.innerHeight,is_state_stable:!0,is_expanded:!0})}),me((r,n)=>{d.log("Received raw event:",r,n);try{switch(r){case"viewport_changed":return e(r,G().parse(n));case"theme_changed":return e(r,U().parse(n));case"popup_closed":return n==null?e(r,{}):e(r,W().parse(n));case"set_custom_style":return e(r,c().parse(n));case"qr_text_received":return e(r,J().parse(n));case"clipboard_text_received":return e(r,N().parse(n));case"invoice_closed":return e(r,S().parse(n));case"phone_requested":return e("phone_requested",I().parse(n));case"custom_method_invoked":return e("custom_method_invoked",R().parse(n));case"write_access_requested":return e("write_access_requested",B().parse(n));case"main_button_pressed":case"back_button_pressed":case"settings_button_pressed":case"scan_qr_popup_closed":case"reload_iframe":return e(r);default:return e(r,n)}}catch(i){d.error("Error processing event:",i)}}),t}function _(){const t=window;return t[q]===void 0&&(t[q]=Ee()),t[q]}function P(t,e){_().off(t,e)}function z(t,e){return _().on(t,e),()=>P(t,e)}function ve(t,e){return _().once(t,e),()=>P(t,e)}function F(t){_().unsubscribe(t)}function $e(t){return _().subscribe(t),()=>F(t)}function b(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function qe(t,e){const r=t.split("."),n=e.split("."),i=Math.max(r.length,n.length);for(let o=0;o<i;o+=1){const u=parseInt(r[o]||"0",10),p=parseInt(n[o]||"0",10);if(u!==p)return u>p?1:-1}return 0}class A extends Error{constructor(e){super(`Async call timeout exceeded. Timeout: ${e}`),Object.setPrototypeOf(this,A.prototype)}}function Z(t){return new Promise((e,r)=>{setTimeout(r,t,new A(t))})}function Pe(t,e){return typeof t=="function"?(...r)=>Promise.race([t(...r),Z(e)]):Promise.race([t,Z(e)])}function l(t,e){return qe(t,e)<=0}function j(t,e,r){if(typeof r=="string"){if(t==="web_app_open_link"&&e==="try_instant_view")return l("6.4",r);if(t==="web_app_set_header_color"&&e==="color")return l("6.9",r)}switch(t){case"web_app_open_tg_link":case"web_app_open_invoice":case"web_app_setup_back_button":case"web_app_set_background_color":case"web_app_set_header_color":case"web_app_trigger_haptic_feedback":return l("6.1",e);case"web_app_open_popup":return l("6.2",e);case"web_app_close_scan_qr_popup":case"web_app_open_scan_qr_popup":case"web_app_read_text_from_clipboard":return l("6.4",e);case"web_app_switch_inline_query":return l("6.7",e);case"web_app_invoke_custom_method":case"web_app_request_write_access":case"web_app_request_phone":return l("6.9",e);case"web_app_setup_settings_button":return l("6.10",e);default:return!0}}function Ae(t){return(e,r)=>{if(!j(e,t))throw new w(e,t);if(b(r)){let n;if(e==="web_app_open_link"&&"try_instant_view"in r?n="try_instant_view":e==="web_app_set_header_color"&&"color"in r&&(n="color"),n&&!j(e,n,t))throw new g(e,n,t)}return L(e,r)}}function K(t){return"external"in t&&b(t.external)&&"notify"in t.external&&typeof t.external.notify=="function"}function Q(t){return"TelegramWebviewProxy"in t&&b(t.TelegramWebviewProxy)&&"postEvent"in t.TelegramWebviewProxy&&typeof t.TelegramWebviewProxy.postEvent=="function"}function X(){try{return window.self!==window.top}catch{return!0}}function L(t,e,r){let n={},i;e===void 0&&r===void 0?n={}:e!==void 0&&r!==void 0?(n=r,i=e):e!==void 0&&("targetOrigin"in e?n=e:i=e);const{targetOrigin:o=he()}=n;if(d.log(`Calling method "${t}"`,i),X()){window.parent.postMessage(JSON.stringify({eventType:t,eventData:i}),o);return}if(K(window)){window.external.notify(JSON.stringify({eventType:t,eventData:i}));return}if(Q(window)){window.TelegramWebviewProxy.postEvent(t,JSON.stringify(i));return}throw new Error("Unable to determine current environment and possible way to send event.")}function je(t,e,r,n){let i,o,u,p;typeof e=="string"||Array.isArray(e)?(u=Array.isArray(e)?e:[e],i=r):(o=e,u=Array.isArray(r)?r:[r],i=n),b(o)&&typeof o.req_id=="string"&&(p=o.req_id);const{postEvent:k=L,timeout:a}=i||{},Y=i&&"capture"in i?i.capture:null,D=new Promise((Le,ke)=>{const Ce=u.map(h=>z(h,v=>{typeof p=="string"&&(!b(v)||v.req_id!==p)||typeof Y=="function"&&!Y(v)||(V(),Le(v))})),V=()=>Ce.forEach(h=>h());try{k(t,o)}catch(h){V(),ke(h)}});return typeof a=="number"?Pe(D,a):D}return s.MethodUnsupportedError=w,s.ParameterUnsupportedError=g,s.clipboardTextReceived=N,s.createPostEvent=Ae,s.customMethodInvoked=R,s.hasExternalNotify=K,s.hasWebviewProxy=Q,s.invoiceClosed=S,s.isIframe=X,s.off=P,s.on=z,s.once=ve,s.phoneRequested=I,s.popupClosed=W,s.postEvent=L,s.qrTextReceived=J,s.request=je,s.setDebug=_e,s.setTargetOrigin=be,s.subscribe=$e,s.supports=j,s.themeChanged=U,s.unsubscribe=F,s.viewportChanged=G,s.writeAccessRequested=B,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),s}({});
1
+ this.tapps=this.tapps||{};this.tapps.bridge=function(f){"use strict";var S;function Me(e){return{lang:(e==null?void 0:e.lang)??(S==null?void 0:S.lang),message:e==null?void 0:e.message,abortEarly:(e==null?void 0:e.abortEarly)??(S==null?void 0:S.abortEarly),abortPipeEarly:(e==null?void 0:e.abortPipeEarly)??(S==null?void 0:S.abortPipeEarly)}}var te;function Wt(e){return te==null?void 0:te.get(e)}var re;function qt(e){return re==null?void 0:re.get(e)}var ne;function Dt(e,t){var r;return(r=ne==null?void 0:ne.get(e))==null?void 0:r.get(t)}function Ut(e){var r,n;const t=typeof e;return t==="string"?`"${e}"`:t==="number"||t==="bigint"||t==="boolean"?`${e}`:t==="object"||t==="function"?(e&&((n=(r=Object.getPrototypeOf(e))==null?void 0:r.constructor)==null?void 0:n.name))??"null":t}function m(e,t,r,n,s){const a=s&&"input"in s?s.input:r.value,u=(s==null?void 0:s.expected)??e.expects??null,o=(s==null?void 0:s.received)??Ut(a),c={kind:e.kind,type:e.type,input:a,expected:u,received:o,message:`Invalid ${t}: ${u?`Expected ${u} but r`:"R"}eceived ${o}`,requirement:e.requirement,path:s==null?void 0:s.path,issues:s==null?void 0:s.issues,lang:n.lang,abortEarly:n.abortEarly,abortPipeEarly:n.abortPipeEarly},i=e.kind==="schema",l=(s==null?void 0:s.message)??e.message??Dt(e.reference,c.lang)??(i?qt(c.lang):null)??n.message??Wt(c.lang);l!==void 0&&(c.message=typeof l=="function"?l(c):l),i&&(r.typed=!1),r.issues?r.issues.push(c):r.issues=[c]}function b(e){return{version:1,vendor:"valibot",validate(t){return e["~run"]({value:t},Me())}}}function Ie(e,t){return Object.hasOwn(e,t)&&t!=="__proto__"&&t!=="prototype"&&t!=="constructor"}function xt(e,t){const r=[...new Set(e)];return r.length>1?`(${r.join(` ${t} `)})`:r[0]??"never"}var Nt=class extends Error{constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}};function Re(e,t){return{kind:"validation",type:"check",reference:Re,async:!1,expects:null,requirement:e,message:t,"~run"(r,n){return r.typed&&!this.requirement(r.value)&&m(this,"input",r,n),r}}}function Le(e){return{kind:"validation",type:"integer",reference:Le,async:!1,expects:null,requirement:Number.isInteger,message:e,"~run"(t,r){return t.typed&&!this.requirement(t.value)&&m(this,"integer",t,r),t}}}function I(e){return{kind:"transformation",type:"transform",reference:I,async:!1,operation:e,"~run"(t){return t.value=this.operation(t.value),t}}}function Gt(e,t,r){return typeof e.fallback=="function"?e.fallback(t,r):e.fallback}function se(e,t,r){return typeof e.default=="function"?e.default(t,r):e.default}function ae(e,t){return!e["~run"]({value:t},{abortEarly:!0}).issues}function Oe(){return{kind:"schema",type:"any",reference:Oe,expects:"any",async:!1,get"~standard"(){return b(this)},"~run"(e){return e.typed=!0,e}}}function R(e){return{kind:"schema",type:"boolean",reference:R,expects:"boolean",async:!1,message:e,get"~standard"(){return b(this)},"~run"(t,r){return typeof t.value=="boolean"?t.typed=!0:m(this,"type",t,r),t}}}function Fe(e){return{kind:"schema",type:"date",reference:Fe,expects:"Date",async:!1,message:e,get"~standard"(){return b(this)},"~run"(t,r){return t.value instanceof Date?isNaN(t.value)?m(this,"type",t,r,{received:'"Invalid Date"'}):t.typed=!0:m(this,"type",t,r),t}}}function ue(e){return{kind:"schema",type:"function",reference:ue,expects:"Function",async:!1,message:e,get"~standard"(){return b(this)},"~run"(t,r){return typeof t.value=="function"?t.typed=!0:m(this,"type",t,r),t}}}function Ce(e,t){return{kind:"schema",type:"instance",reference:Ce,expects:e.name,async:!1,class:e,message:t,get"~standard"(){return b(this)},"~run"(r,n){return r.value instanceof this.class?r.typed=!0:m(this,"type",r,n),r}}}function y(e,t){return{kind:"schema",type:"loose_object",reference:y,expects:"Object",async:!1,entries:e,message:t,get"~standard"(){return b(this)},"~run"(r,n){var a;const s=r.value;if(s&&typeof s=="object"){r.typed=!0,r.value={};for(const u in this.entries){const o=this.entries[u];if(u in s||(o.type==="exact_optional"||o.type==="optional"||o.type==="nullish")&&o.default!==void 0){const c=u in s?s[u]:se(o),i=o["~run"]({value:c},n);if(i.issues){const l={type:"object",origin:"value",input:s,key:u,value:c};for(const p of i.issues)p.path?p.path.unshift(l):p.path=[l],(a=r.issues)==null||a.push(p);if(r.issues||(r.issues=i.issues),n.abortEarly){r.typed=!1;break}}i.typed||(r.typed=!1),r.value[u]=i.value}else if(o.fallback!==void 0)r.value[u]=Gt(o);else if(o.type!=="exact_optional"&&o.type!=="optional"&&o.type!=="nullish"&&(m(this,"key",r,n,{input:void 0,expected:`"${u}"`,path:[{type:"object",origin:"key",input:s,key:u,value:s[u]}]}),n.abortEarly))break}if(!r.issues||!n.abortEarly)for(const u in s)Ie(s,u)&&!(u in this.entries)&&(r.value[u]=s[u])}else m(this,"type",r,n);return r}}}function O(e,t){return{kind:"schema",type:"nullish",reference:O,expects:`(${e.expects} | null | undefined)`,async:!1,wrapped:e,default:t,get"~standard"(){return b(this)},"~run"(r,n){return(r.value===null||r.value===void 0)&&(this.default!==void 0&&(r.value=se(this,r,n)),r.value===null||r.value===void 0)?(r.typed=!0,r):this.wrapped["~run"](r,n)}}}function F(e){return{kind:"schema",type:"number",reference:F,expects:"number",async:!1,message:e,get"~standard"(){return b(this)},"~run"(t,r){return typeof t.value=="number"&&!isNaN(t.value)?t.typed=!0:m(this,"type",t,r),t}}}function h(e,t){return{kind:"schema",type:"optional",reference:h,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:t,get"~standard"(){return b(this)},"~run"(r,n){return r.value===void 0&&(this.default!==void 0&&(r.value=se(this,r,n)),r.value===void 0)?(r.typed=!0,r):this.wrapped["~run"](r,n)}}}function We(e,t,r){return{kind:"schema",type:"record",reference:We,expects:"Object",async:!1,key:e,value:t,message:r,get"~standard"(){return b(this)},"~run"(n,s){var u,o;const a=n.value;if(a&&typeof a=="object"){n.typed=!0,n.value={};for(const c in a)if(Ie(a,c)){const i=a[c],l=this.key["~run"]({value:c},s);if(l.issues){const d={type:"object",origin:"key",input:a,key:c,value:i};for(const w of l.issues)w.path=[d],(u=n.issues)==null||u.push(w);if(n.issues||(n.issues=l.issues),s.abortEarly){n.typed=!1;break}}const p=this.value["~run"]({value:i},s);if(p.issues){const d={type:"object",origin:"value",input:a,key:c,value:i};for(const w of p.issues)w.path?w.path.unshift(d):w.path=[d],(o=n.issues)==null||o.push(w);if(n.issues||(n.issues=p.issues),s.abortEarly){n.typed=!1;break}}(!l.typed||!p.typed)&&(n.typed=!1),l.typed&&(n.value[l.value]=p.value)}}else m(this,"type",n,s);return n}}}function _(e){return{kind:"schema",type:"string",reference:_,expects:"string",async:!1,message:e,get"~standard"(){return b(this)},"~run"(t,r){return typeof t.value=="string"?t.typed=!0:m(this,"type",t,r),t}}}function qe(e){let t;if(e)for(const r of e)t?t.push(...r.issues):t=r.issues;return t}function ie(e,t){return{kind:"schema",type:"union",reference:ie,expects:xt(e.map(r=>r.expects),"|"),async:!1,options:e,message:t,get"~standard"(){return b(this)},"~run"(r,n){let s,a,u;for(const o of this.options){const c=o["~run"]({value:r.value},n);if(c.typed)if(c.issues)a?a.push(c):a=[c];else{s=c;break}else u?u.push(c):u=[c]}if(s)return s;if(a){if(a.length===1)return a[0];m(this,"type",r,n,{issues:qe(a)}),r.typed=!0}else{if((u==null?void 0:u.length)===1)return u[0];m(this,"type",r,n,{issues:qe(u)})}return r}}}function oe(){return{kind:"schema",type:"unknown",reference:oe,expects:"unknown",async:!1,get"~standard"(){return b(this)},"~run"(e){return e.typed=!0,e}}}function U(e,t,r){const n=e["~run"]({value:t},Me(r));if(n.issues)throw new Nt(n.issues);return n.value}function C(...e){return{...e[0],pipe:e,get"~standard"(){return b(this)},"~run"(t,r){for(const n of e)if(n.kind!=="metadata"){if(t.issues&&(n.kind==="schema"||n.kind==="transformation")){t.typed=!1;break}(!t.issues||!r.abortEarly&&!r.abortPipeEarly)&&(t=n["~run"](t,r))}return t}}}function ce(e){return ae(y({TelegramWebviewProxy:y({postEvent:ue()})}),e)}function le(){try{return window.self!==window.top}catch{return!0}}var zt=Object.defineProperty,Jt=(e,t,r)=>t in e?zt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,De=(e,t,r)=>Jt(e,typeof t!="symbol"?t+"":t,r),Bt=Object.defineProperty,Kt=(e,t,r)=>t in e?Bt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,fe=(e,t,r)=>Kt(e,typeof t!="symbol"?t+"":t,r);function Ue(e){return t=>t instanceof e}function xe(e,t){const r=class extends Error{constructor(...s){const a=typeof t=="function"?t(...s):typeof t=="string"?[t]:t||[];super(...a),this.name=e}};fe(r,"is",Ue(r));let n=r;return Object.defineProperty(n,"name",{value:e}),n}function Ht(e,t,r){const n=class extends xe(e,r){constructor(...a){super(...a),fe(this,"data"),this.data=t(...a)}};fe(n,"is",Ue(n));let s=n;return Object.defineProperty(s,"name",{value:e}),s}let Ne=class extends xe("CancelledError","Promise was canceled"){};class pe extends Ht("TimeoutError",t=>({timeout:t}),(t,r)=>[`Timeout reached: ${t}ms`,{cause:r}]){}const Qt=Symbol("resolved");function Yt(e){return{tag:Qt,value:e}}function Ge(e,t){return e.reject=t.reject,e.resolve=t.resolve,e}let K=class Te extends Promise{constructor(t,r){let n,s,a,u;typeof t=="function"?(a=t,u=r||{}):u=t||{};let o,c;const i=()=>!!c,l=()=>!!o;let p={};const d=[],w=()=>{d.forEach(je=>je()),d.splice(0,d.length),p={}},T=new AbortController,Ft=()=>l()||i();super((je,En)=>{const{abortOnResolve:kn=!0,abortOnReject:Pn=!0}=u;s=g=>{var M,E;Ft()||(je(g),o=[g],(M=p.resolved)==null||M.forEach(k=>k(g)),(E=p.finalized)==null||E.forEach(k=>k({kind:"resolved",result:g})),w(),kn&&T.abort(Yt(g)))},n=g=>{var M,E;Ft()||(En(g),c=[g],(M=p.rejected)==null||M.forEach(k=>k(g)),(E=p.finalized)==null||E.forEach(k=>k({kind:"rejected",reason:g})),w(),Pn&&T.abort(g))};const{abortSignal:D}=u;if(D){if(D.aborted)return n(D.reason);const g=()=>{n(D.reason)};D.addEventListener("abort",g,!0),d.push(()=>{D.removeEventListener("abort",g,!0)})}const{timeout:Ae}=u;if(Ae){const g=setTimeout(()=>{n(new pe(Ae))},Ae);d.push(()=>{clearTimeout(g)})}try{const g=()=>{},M=a&&a(s,n,{abortSignal:T.signal,get isRejected(){return i()},get isResolved(){return l()},on(E,k){if(o||c){if(E==="finalized"){const ee=o?{kind:"resolved",result:o[0]}:{kind:"rejected",reason:c[0]};k(ee)}else E==="resolved"&&o?k(o[0]):E==="rejected"&&c&&k(c[0]);return g}return p[E]||(p[E]=[]),p[E].push(k),()=>{const ee=p[E]||[],Ct=ee.indexOf(k);Ct>=0&&ee.splice(Ct,1)}},get result(){return o==null?void 0:o[0]},get rejectReason(){return c==null?void 0:c[0]},throwIfRejected(){if(c)throw c[0]}});M instanceof Promise&&M.catch(n)}catch(g){n(g)}}),De(this,"reject"),De(this,"resolve"),this.reject=n,this.resolve=s}static fn(t,r){return new Te(async(n,s,a)=>{try{n(await t(a))}catch(u){s(u)}},r)}static resolve(t){return this.fn(()=>t)}static reject(t){return new Te((r,n)=>{n(t)})}cancel(){this.reject(new Ne)}catch(t){return this.then(void 0,t)}finally(t){return Ge(super.finally(t),this)}then(t,r){return Ge(super.then(t,r),this)}};var Zt=function(e,t,r){if(r||arguments.length===2)for(var n=0,s=t.length,a;n<s;n++)(a||!(n in t))&&(a||(a=Array.prototype.slice.call(t,0,n)),a[n]=t[n]);return e.concat(a||Array.prototype.slice.call(t))};function Xt(e){return e}function x(e,t,r,n,s,a,u,o,c){switch(arguments.length){case 1:return e;case 2:return function(){return t(e.apply(this,arguments))};case 3:return function(){return r(t(e.apply(this,arguments)))};case 4:return function(){return n(r(t(e.apply(this,arguments))))};case 5:return function(){return s(n(r(t(e.apply(this,arguments)))))};case 6:return function(){return a(s(n(r(t(e.apply(this,arguments))))))};case 7:return function(){return u(a(s(n(r(t(e.apply(this,arguments)))))))};case 8:return function(){return o(u(a(s(n(r(t(e.apply(this,arguments))))))))};case 9:return function(){return c(o(u(a(s(n(r(t(e.apply(this,arguments)))))))))}}}function P(e,t,r,n,s,a,u,o,c){switch(arguments.length){case 1:return e;case 2:return t(e);case 3:return r(t(e));case 4:return n(r(t(e)));case 5:return s(n(r(t(e))));case 6:return a(s(n(r(t(e)))));case 7:return u(a(s(n(r(t(e))))));case 8:return o(u(a(s(n(r(t(e)))))));case 9:return c(o(u(a(s(n(r(t(e))))))));default:{for(var i=arguments[0],l=1;l<arguments.length;l++)i=arguments[l](i);return i}}}var _e=function(e,t){var r=typeof e=="number"?function(n){return n.length>=e}:e;return function(){var n=Array.from(arguments);return r(arguments)?t.apply(this,n):function(s){return t.apply(void 0,Zt([s],n,!1))}}},Vt={_tag:"None"},er=function(e){return{_tag:"Some",value:e}},tr=function(e){return e._tag==="Left"},ze=function(e){return{_tag:"Left",left:e}},Je=function(e){return{_tag:"Right",right:e}},j=ze,$=Je,Be=_e(2,function(e,t){return N(e)?e:t(e.right)}),rr=function(e){return function(t){return N(t)?t:$(e(t.right))}},nr=function(e){return function(t){return N(t)?j(e(t.left)):t}},N=tr,Ke=function(e,t){return function(r){return N(r)?e(r.left):t(r.right)}},sr=Ke,H=Ke,ar=H,he=function(e,t){try{return $(e())}catch(r){return j(t(r))}},ur=Be,ir=Be,or=Vt,cr=er,lr=function(e){return e._tag==="None"},fr=function(e,t){return function(r){return lr(r)?e():t(r.value)}},pr=fr;function _r(e){return x($,e.of)}function hr(e){return x(j,e.of)}function dr(e){return function(t,r){return e.chain(t,function(n){return N(n)?e.of(n):r(n.right)})}}function gr(e){return function(t,r){return function(n){return e.map(n,H(t,r))}}}var He=function(e,t){return P(e,yr(t))},vr=function(e,t){return P(e,mr(t))},yr=function(e){return function(t){return function(){return Promise.resolve().then(t).then(e)}}},mr=function(e){return function(t){return function(){return Promise.all([Promise.resolve().then(t),Promise.resolve().then(e)]).then(function(r){var n=r[0],s=r[1];return n(s)})}}},Qe=function(e){return function(){return Promise.resolve(e)}},br=_e(2,function(e,t){return function(){return Promise.resolve().then(e).then(function(r){return t(r)()})}}),Ye="Task",wr={URI:Ye,map:He},Ze={of:Qe},Er={URI:Ye,map:He,of:Qe,ap:vr,chain:br},kr=function(e,t,r,n){function s(a){return a instanceof r?a:new r(function(u){u(a)})}return new(r||(r=Promise))(function(a,u){function o(l){try{i(n.next(l))}catch(p){u(p)}}function c(l){try{i(n.throw(l))}catch(p){u(p)}}function i(l){l.done?a(l.value):s(l.value).then(o,c)}i((n=n.apply(e,t||[])).next())})},Pr=function(e,t){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,s,a,u;return u={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function o(i){return function(l){return c([i,l])}}function c(i){if(n)throw new TypeError("Generator is already executing.");for(;u&&(u=0,i[0]&&(r=0)),r;)try{if(n=1,s&&(a=i[0]&2?s.return:i[0]?s.throw||((a=s.return)&&a.call(s),0):s.next)&&!(a=a.call(s,i[1])).done)return a;switch(s=0,a&&(i=[i[0]&2,a.value]),i[0]){case 0:case 1:a=i;break;case 4:return r.label++,{value:i[1],done:!1};case 5:r.label++,s=i[1],i=[0];continue;case 7:i=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(i[0]===6||i[0]===2)){r=0;continue}if(i[0]===3&&(!a||i[1]>a[0]&&i[1]<a[3])){r.label=i[1];break}if(i[0]===6&&r.label<a[1]){r.label=a[1],a=i;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(i);break}a[2]&&r.ops.pop(),r.trys.pop();continue}i=t.call(e,r)}catch(l){i=[6,l],s=0}finally{n=a=0}if(i[0]&5)throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}},Xe=hr(Ze),Ve=_r(Ze),Q=gr(wr),$r=function(e,t){return function(){return kr(void 0,void 0,void 0,function(){var r;return Pr(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,e().then(Je)];case 1:return[2,n.sent()];case 2:return r=n.sent(),[2,ze(t(r))];case 3:return[2]}})})}},Sr=_e(2,dr(Er)),jr=Sr;function Ar(e){return e.replace(/_[a-z]/g,t=>t[1].toUpperCase())}function Tr(e){return Object.entries(e).reduce((t,[r,n])=>(t[Ar(r)]=n,t),{})}function de(e){const t=Tr(e);for(const r in t){const n=t[r];n&&typeof n=="object"&&!(n instanceof Date)&&(t[r]=Array.isArray(n)?n.map(de):de(n))}return t}function et(e){return`tapps/${e}`}function tt(e,t){sessionStorage.setItem(et(e),JSON.stringify(t))}function Mr(e){const t=sessionStorage.getItem(et(e));try{return t?JSON.parse(t):void 0}catch{}}function Ir(...e){const t=e.flat(1);return[t.push.bind(t),()=>{t.forEach(r=>{r()})}]}function rt(e,t){t||(t={});const{textColor:r,bgColor:n,shouldLog:s}=t,a=s===void 0?!0:s,u=typeof a=="boolean"?()=>a:a,o=(c,i,...l)=>{if(i||u()){const p="font-weight:bold;padding:0 5px;border-radius:100px",[d,w,T]={log:["#0089c3","white","INFO"],error:["#ff0000F0","white","ERR"],warn:["#D38E15","white","WARN"]}[c];console[c](`%c${T} ${Intl.DateTimeFormat("en-GB",{hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3,timeZone:"UTC"}).format(new Date)}%c %c${e}`,`${p};background-color:${d};color:${w}`,"",`${p};${r?`color:${r};`:""}${n?`background-color:${n}`:""}`,...l)}};return[["log","forceLog"],["warn","forceWarn"],["error","forceError"]].reduce((c,[i,l])=>(c[i]=o.bind(void 0,i,!1),c[l]=o.bind(void 0,i,!0),c),{})}function nt(e){if(e._tag==="Left")throw e.left;return e.right}function G(e){return(...t)=>nt(e(...t))}var Rr=function(e){return{_tag:"Left",left:e}},Lr=function(e){return{_tag:"Right",right:e}},Or=Rr,Fr=Lr,Cr=function(e,t){try{return Fr(e())}catch(r){return Or(t(r))}};function Wr(e){return I(t=>{const r={};return new URLSearchParams(t).forEach((n,s)=>{const a=r[s];Array.isArray(a)?a.push(n):a===void 0?r[s]=n:r[s]=[a,n]}),U(e,r)})}function qr(){return I(JSON.parse)}function L(e){return C(_(),qr(),e)}function st(e){return C(ie([_(),Ce(URLSearchParams)]),Wr(e))}function Dr(e){return/^#[\da-f]{6}$/i.test(e)}function Ur(){return y({id:F(),photo_url:h(_()),type:_(),title:_(),username:h(_())})}function at(){return y({added_to_attachment_menu:h(R()),allows_write_to_pm:h(R()),first_name:_(),id:F(),is_bot:h(R()),is_premium:h(R()),last_name:h(_()),language_code:h(_()),photo_url:h(_()),username:h(_())})}function xr(){return y({auth_date:C(_(),I(e=>new Date(Number(e)*1e3)),Fe()),can_send_after:h(C(_(),I(Number),Le())),chat:h(L(Ur())),chat_type:h(_()),chat_instance:h(_()),hash:_(),query_id:h(_()),receiver:h(L(at())),start_param:h(_()),signature:_(),user:h(L(at()))})}function Nr(){return st(xr())}function ge(){return We(_(),C(ie([_(),F()]),I(e=>typeof e=="number"?`#${(e&16777215).toString(16).padStart(6,"0")}`:e),Re(Dr)))}function Gr(){const e=h(C(_(),I(t=>t==="1")));return y({tgWebAppBotInline:e,tgWebAppData:h(Nr()),tgWebAppDefaultColors:h(L(ge())),tgWebAppFullscreen:e,tgWebAppPlatform:_(),tgWebAppShowSettings:e,tgWebAppStartParam:h(_()),tgWebAppThemeParams:L(ge()),tgWebAppVersion:_()})}function zr(){return st(Gr())}function ut(){return y({eventType:_(),eventData:h(oe())})}function ve(e){return Cr(()=>U(zr(),e),t=>t)}const Jr=G(ve);function it(e,t){return t||(t=(r,n)=>JSON.stringify(n)),new URLSearchParams(Object.entries(e).reduce((r,[n,s])=>(Array.isArray(s)?r.push(...s.map(a=>[n,String(a)])):s!=null&&r.push([n,s instanceof Date?(s.getTime()/1e3|0).toString():typeof s=="string"||typeof s=="number"?String(s):typeof s=="boolean"?s?"1":"0":t(n,s)]),r),[])).toString()}function Br(e){return it(e)}function Kr(e){return it(e,(t,r)=>t==="tgWebAppData"?Br(r):JSON.stringify(r))}var Hr=Object.defineProperty,Qr=(e,t,r)=>t in e?Hr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ye=(e,t,r)=>Qr(e,typeof t!="symbol"?t+"":t,r);function ot(e){return t=>t instanceof e}function W(e,t){const r=class extends Error{constructor(...a){const u=typeof t=="function"?t(...a):typeof t=="string"?[t]:t||[];super(...u),this.name=e}};ye(r,"is",ot(r));let n=r;return Object.defineProperty(n,"name",{value:e}),n}function Yr(e,t,r){const n=class extends W(e,r){constructor(...u){super(...u),ye(this,"data"),this.data=t(...u)}};ye(n,"is",ot(n));let s=n;return Object.defineProperty(s,"name",{value:e}),s}class ct extends W("MethodUnsupportedError",(t,r)=>[`Method "${t}" is unsupported in Mini Apps version ${r}`]){}class lt extends W("MethodParameterUnsupportedError",(t,r,n)=>[`Parameter "${r}" of "${t}" method is unsupported in Mini Apps version ${n}`]){}class ft extends Yr("LaunchParamsRetrieveError",t=>({errors:t}),t=>[["Unable to retrieve launch parameters from any known source. Perhaps, you have opened your app outside Telegram?","📖 Refer to docs for more information:","https://docs.telegram-mini-apps.com/packages/tma-js-bridge/environment","","Collected errors:",...t.map(({source:r,error:n})=>`Source: ${r} / ${n instanceof Error?n.message:String(n)}`)].join(`
2
+ `)]){}class pt extends W("InvalidLaunchParamsError",(t,r)=>[`Invalid value for launch params: ${t}`,{cause:r}]){}class _t extends W("UnknownEnvError"){}class ht extends W("InvokeCustomMethodError",t=>[`Server returned error: ${t}`]){}const dt="launchParams";function gt(e){return e.replace(/^[^?#]*[?#]/,"").replace(/[?#]/g,"&")}const vt=x(z,ur(ve)),Zr=G(vt),yt=x(z,rr(e=>{const t=new URLSearchParams(e).get("tgWebAppData");return t?cr(t):or})),Xr=x(yt,ar(e=>{throw e},e=>e),pr(()=>{},e=>e));function z(){const e=[];for(const[t,r]of[[()=>gt(window.location.href),"window.location.href"],[()=>{const n=performance.getEntriesByType("navigation")[0];return n&&gt(n.name)},"performance navigation entries"],[()=>Mr(dt),"local storage"]]){const n=t();if(!n){e.push({source:r,error:new Error("Source is empty")});continue}const s=P(ve(n),sr(a=>a,()=>!0));if(typeof s!="boolean"){e.push({source:r,error:s});continue}return tt(dt,n),$(n)}return j(new ft(e))}const Vr=G(z);function en(e,t){t()}function J(e,t){t||(t={});const r=t.equals||Object.is;let n=[],s=e;const a=i=>{if(!r(s,i)){const l=s;s=i,en(c,()=>{[...n].forEach(([p,d])=>{p(i,l),d&&o(p,!0)})})}};function u(i){const l=typeof i!="object"?{once:i}:i;return{once:l.once||!1,signal:l.signal||!1}}const o=(i,l)=>{const p=u(l),d=n.findIndex(([w,T])=>w===i&&T.once===p.once&&T.signal===p.signal);d>=0&&n.splice(d,1)},c=Object.assign(function(){return tn(c),s},{destroy(){n=[]},set:a,reset(){a(e)},sub(i,l){return n.push([i,u(l)]),()=>o(i,l)},unsub:o,unsubAll(){n=n.filter(i=>i[1].signal)}});return c}const B=[];function tn(e){B.length&&B[B.length-1].add(e)}function mt(e,t){let r=new Set,n;function s(){return n||(n=J(u(),t))}function a(){s().set(u())}function u(){r.forEach(i=>{i.unsub(a,{signal:!0})});const o=new Set;let c;B.push(o);try{c=e()}finally{B.pop()}return o.forEach(i=>{i.sub(a,{signal:!0})}),r=o,c}return Object.assign(function(){return s()()},{destroy(){s().destroy()},sub(...o){return s().sub(...o)},unsub(...o){s().unsub(...o)},unsubAll(...o){s().unsubAll(...o)}})}function rn(e){return{all:e=e||new Map,on:function(t,r){var n=e.get(t);n?n.push(r):e.set(t,[r])},off:function(t,r){var n=e.get(t);n&&(r?n.splice(n.indexOf(r)>>>0,1):e.set(t,[]))},emit:function(t,r){var n=e.get(t);n&&n.slice().map(function(s){s(r)}),(n=e.get("*"))&&n.slice().map(function(s){s(t,r)})}}}function nn(e,t){const r=new Map,n=rn(),s=(a,u,o=!1)=>{const c=r.get(a)||new Map;r.set(a,c);const i=c.get(u)||[];c.set(u,i);const l=i.findIndex(p=>p[1]===o);if(l>=0&&(n.off(a,i[l][0]),i.splice(l,1),!i.length&&(c.delete(u),!c.size))){const p=r.size;r.delete(a),p&&!r.size&&t()}};return{on(a,u,o){!r.size&&e();const c=()=>{s(a,u,o)},i=(...d)=>{o&&c(),a==="*"?u({name:d[0],payload:d[1]}):u(...d)};n.on(a,i);const l=r.get(a)||new Map;r.set(a,l);const p=l.get(u)||[];return l.set(u,p),p.push([i,o||!1]),c},off:s,emit:n.emit,clear(){const a=r.size;n.all.clear(),r.clear(),a&&t()}}}function Y(e,t){window.dispatchEvent(new MessageEvent("message",{data:JSON.stringify({eventType:e,eventData:t}),source:window.parent}))}function me(e,t,r){const n=[r],s=e[t];typeof s=="function"&&n.push(s);const a=(...o)=>{n.forEach(c=>c(...o))},u=Object.assign((...o)=>{a(...o)},{unwrap(){const{length:o}=n;if(o===1){delete e[t];return}if(o===2){Et(e,t,n[1]);return}n.unshift(1),Et(e,t,a)}});wt(e,t,()=>u,o=>n.push(o))}function bt(e,t){const r=e[t];wt(e,t,()=>r,n=>{Object.entries(n).forEach(([s,a])=>{r[s]=a})})}function wt(e,t,r,n){Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:r,set:n})}function Et(e,t,r){Object.defineProperty(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r})}const sn={clipboard_text_received:y({req_id:_(),data:O(_())}),custom_method_invoked:y({req_id:_(),result:h(oe()),error:h(_())}),popup_closed:O(y({button_id:O(_(),()=>{})}),{}),viewport_changed:O(y({height:F(),width:O(F(),()=>window.innerWidth),is_state_stable:R(),is_expanded:R()}),()=>({height:window.innerHeight,is_state_stable:!0,is_expanded:!0})),theme_changed:y({theme_params:ge()})};function kt(e){if(e.source!==window.parent)return;let t;try{t=U(L(ut()),e.data)}catch{return}const{eventType:r,eventData:n}=t,s=sn[r];let a;try{a=s?U(s,n):n}catch(u){return A().forceError([`An error occurred processing the "${r}" event from the Telegram application.`,"Please, file an issue here:","https://github.com/Telegram-Mini-Apps/telegram-apps/issues/new/choose"].join(`
3
+ `),t,u)}an(r,a)}const{on:be,off:Pt,emit:an,clear:$t}=nn(()=>{const e=window;!e.TelegramGameProxy&&(e.TelegramGameProxy={}),me(e.TelegramGameProxy,"receiveEvent",Y),bt(e,"TelegramGameProxy"),!e.Telegram&&(e.Telegram={}),!e.Telegram.WebView&&(e.Telegram.WebView={}),me(e.Telegram.WebView,"receiveEvent",Y),bt(e.Telegram,"WebView"),me(e,"TelegramGameProxy_receiveEvent",Y),window.addEventListener("message",kt)},()=>{[["TelegramGameProxy_receiveEvent"],["TelegramGameProxy","receiveEvent"],["Telegram","WebView","receiveEvent"]].forEach(e=>{const t=window;let r=[void 0,t];for(const a of e)if(r=[r[1],r[1][a]],!r[1])return;const[n,s]=r;"unwrap"in s&&(s.unwrap(),n&&n!==t&&!Object.keys(n).length&&delete t[e[0]])}),window.removeEventListener("message",kt)}),Z=J(!1),we=J("https://web.telegram.org"),un=e=>{A().log("Event received:",e)},Ee=mt(Z);function on(e){e!==Z()&&(Z.set(e),(e?be:Pt)("*",un))}const ke=mt(we);function cn(e){we.set(e),A().log("New target origin set",e)}const q=J((...e)=>{window.parent.postMessage(...e)}),A=J(rt("Bridge",{bgColor:"#9147ff",textColor:"white",shouldLog:Ee}));function ln(){$t(),[q,we,ke,Z,Ee,A].forEach(e=>{e.unsubAll(),"reset"in e&&e.reset()})}const St=(...e)=>q()(...e);function jt(e,t){P(X(e,t),nr(r=>{throw r}))}function X(e,t){A().log("Posting event:",t?{eventType:e,eventData:t}:{eventType:e});const r=window,n=JSON.stringify({eventType:e,eventData:t});return le()?(St(n,ke()),$(void 0)):ce(r)?(r.TelegramWebviewProxy.postEvent(e,JSON.stringify(t)),$(void 0)):ae(y({external:y({notify:ue()})}),r)?(r.external.notify(n),$(void 0)):j(new _t)}function V(e,t,r){r||(r={});const{capture:n=()=>!0,postEvent:s=X}=r,[a,u]=Ir(),o=new K(c=>{(Array.isArray(t)?t:[t]).forEach(i=>{a(be(i,l=>{(Array.isArray(t)?n({event:i,payload:l}):n(l))&&c(l)}))})},r).finally(u);return P(s(e,r.params),H(c=>Xe(c),()=>$r(()=>o,c=>c)))}function fn(e,t,r){const{postEvent:n}=r||{};return K.fn(()=>P(V(e,t,{...r,postEvent:n?(...s)=>{try{return n(...s),$(void 0)}catch(a){return j(a)}}:X}),Q(s=>{throw s},s=>s))())}function pn(e,t){const r=At(e,t);return typeof r=="function"?K.fn(()=>P(r,Q(n=>{throw n},n=>n))()):r}function At(e,t){const r=ce(window);if(!e)return r||P(z(),H(()=>!1,()=>!0));if(r)return Ve(!0);const{timeout:n=100}=t||{};return P(V("web_app_request_theme","theme_changed",{...t,timeout:n}),Q(s=>pe.is(s)?$(!1):j(s),()=>$(!0)))}function _n({launchParams:e,onEvent:t,resetPostMessage:r}={}){if(e){const a=typeof e=="string"||e instanceof URLSearchParams?e.toString():Kr({...e,tgWebAppData:void 0})+(e.tgWebAppData?`&tgWebAppData=${encodeURIComponent(e.tgWebAppData.toString())}`:"");try{Jr(a)}catch(u){throw new pt(a,u)}tt("launchParams",a)}if(le()){if(!t)return;r&&q.reset();const a=q();q.set((...u)=>{const[o]=u,c=()=>{a(...u)};try{const i=U(L(ut()),o);t([i.eventType,i.eventData],c)}catch{c()}});return}const n=window.TelegramWebviewProxy||{},s=n.postEvent||(()=>{});window.TelegramWebviewProxy={...n,postEvent(a,u){const o=()=>{s(a,u)};t?t([a,u?JSON.parse(u):void 0],o):o()}},A().log("Environment was mocked by the mockTelegramEnv function")}function Tt(e){return({req_id:t})=>t===e}function Mt(e){return e.split(".").map(Number)}function It(e,t){const r=Mt(e),n=Mt(t),s=Math.max(r.length,n.length);for(let a=0;a<s;a+=1){const u=r[a]||0,o=n[a]||0;if(u!==o)return u>o?1:-1}return 0}function v(e,t){return It(e,t)<=0}function Pe(e,t,r){if(typeof r=="string"){if(e==="web_app_open_link"){if(t==="try_instant_view")return v("6.4",r);if(t==="try_browser")return v("7.6",r)}if(e==="web_app_set_header_color"&&t==="color")return v("6.9",r);if(e==="web_app_close"&&t==="return_back")return v("7.6",r);if(e==="web_app_setup_main_button"&&t==="has_shine_effect")return v("7.10",r)}switch(e){case"web_app_open_tg_link":case"web_app_open_invoice":case"web_app_setup_back_button":case"web_app_set_background_color":case"web_app_set_header_color":case"web_app_trigger_haptic_feedback":return v("6.1",t);case"web_app_open_popup":return v("6.2",t);case"web_app_close_scan_qr_popup":case"web_app_open_scan_qr_popup":case"web_app_read_text_from_clipboard":return v("6.4",t);case"web_app_switch_inline_query":return v("6.7",t);case"web_app_invoke_custom_method":case"web_app_request_write_access":case"web_app_request_phone":return v("6.9",t);case"web_app_setup_settings_button":return v("6.10",t);case"web_app_biometry_get_info":case"web_app_biometry_open_settings":case"web_app_biometry_request_access":case"web_app_biometry_request_auth":case"web_app_biometry_update_token":return v("7.2",t);case"web_app_setup_swipe_behavior":return v("7.7",t);case"web_app_share_to_story":return v("7.8",t);case"web_app_setup_secondary_button":case"web_app_set_bottom_bar_color":return v("7.10",t);case"web_app_request_safe_area":case"web_app_request_content_safe_area":case"web_app_request_fullscreen":case"web_app_exit_fullscreen":case"web_app_set_emoji_status":case"web_app_add_to_home_screen":case"web_app_check_home_screen":case"web_app_request_emoji_status_access":case"web_app_check_location":case"web_app_open_location_settings":case"web_app_request_file_download":case"web_app_request_location":case"web_app_send_prepared_message":case"web_app_start_accelerometer":case"web_app_start_device_orientation":case"web_app_start_gyroscope":case"web_app_stop_accelerometer":case"web_app_stop_device_orientation":case"web_app_stop_gyroscope":case"web_app_toggle_orientation_lock":return v("8.0",t);case"web_app_device_storage_clear":case"web_app_device_storage_get_key":case"web_app_device_storage_save_key":case"web_app_secure_storage_clear":case"web_app_secure_storage_get_key":case"web_app_secure_storage_restore_key":case"web_app_secure_storage_save_key":return v("9.0",t);case"web_app_hide_keyboard":return v("9.1",t);default:return["iframe_ready","iframe_will_reload","web_app_close","web_app_data_send","web_app_expand","web_app_open_link","web_app_ready","web_app_request_theme","web_app_request_viewport","web_app_setup_main_button","web_app_setup_closing_behavior"].includes(e)}}function hn(e,t="strict"){const r=typeof t=="function"?t:n=>{const{method:s,version:a}=n,u="param"in n?new lt(s,n.param,a):new ct(s,a);if(t==="strict")throw u;return A().forceWarn(u.message)};return(n,s)=>Pe(n,e)?n==="web_app_set_header_color"&&ae(y({color:Oe()}),s)&&!Pe(n,"color",e)?r({version:e,method:n,param:"color"}):jt(n,s):r({version:e,method:n})}function Rt(e,t,r,n){return P(V("web_app_invoke_custom_method","custom_method_invoked",{...n||{},params:{method:e,params:t,req_id:r},capture:Tt(r)}),jr(({result:s,error:a})=>a?Xe(new ht(a)):Ve(s)))}function dn(e,t,r,n){return K.fn(()=>P(Rt(e,t,r,n),Q(s=>{throw s},s=>s))())}function gn(){Object.hasOwn||(Object.hasOwn=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)})}function $e(e){return he(()=>decodeURIComponent(atob(e).replace(/-/g,"+").replace(/_/g,"/").split("").map(t=>"%"+("00"+t.charCodeAt(0).toString(16)).slice(-2)).join("")),t=>t)}const vn=G($e);function Se(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(t,r)=>String.fromCharCode(parseInt(`0x${r}`)))).replace(/\+/g,"-").replace(/\//g,"_")}var yn=function(e){return he(function(){return JSON.parse(e)},Xt)};function Lt(e){const t=Se(typeof e=="string"?e:JSON.stringify(e));return t.length>512?j(new Error("Value is too long for start parameter")):$(t)}const mn=G(Lt);function bn(e,t){return nt(Ot(e,typeof t=="function"?r=>he(()=>t(r),n=>n):t))}function Ot(e,t){return P($e(e),ir(r=>t?typeof t=="function"?t(r):yn(r):$(r)))}function wn(e){return Se(e).length<=512}return f.CancelledError=Ne,f.InvalidLaunchParamsError=pt,f.InvokeCustomMethodFailedError=ht,f.LaunchParamsRetrieveError=ft,f.MethodParameterUnsupportedError=lt,f.MethodUnsupportedError=ct,f.TimeoutError=pe,f.UnknownEnvError=_t,f.applyPolyfills=gn,f.captureSameReq=Tt,f.compareVersions=It,f.createLogger=rt,f.createPostEvent=hn,f.createStartParam=mn,f.createStartParamFp=Lt,f.debug=Ee,f.decodeBase64Url=vn,f.decodeBase64UrlFp=$e,f.decodeStartParam=bn,f.decodeStartParamFp=Ot,f.deepSnakeToCamelObjKeys=de,f.emitEvent=Y,f.encodeBase64Url=Se,f.hasWebviewProxy=ce,f.invokeCustomMethod=dn,f.invokeCustomMethodFp=Rt,f.isIframe=le,f.isSafeToCreateStartParam=wn,f.isTMA=pn,f.isTMAFp=At,f.logger=A,f.mockTelegramEnv=_n,f.off=Pt,f.offAll=$t,f.on=be,f.postEvent=jt,f.postEventFp=X,f.postMessage=St,f.postMessageImpl=q,f.request=fn,f.requestFp=V,f.resetGlobals=ln,f.retrieveLaunchParams=Zr,f.retrieveLaunchParamsFp=vt,f.retrieveRawInitData=Xr,f.retrieveRawInitDataFp=yt,f.retrieveRawLaunchParams=Vr,f.retrieveRawLaunchParamsFp=z,f.setDebug=on,f.setTargetOrigin=cn,f.supports=Pe,f.targetOrigin=ke,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"}),f}({});
2
4
  //# sourceMappingURL=index.iife.js.map