@tma.js/bridge 2.0.2 → 2.1.0

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.
@@ -12,7 +12,7 @@ export declare function decodeBase64UrlFp(value: string): E.Either<DecodeBase64U
12
12
  /**
13
13
  * @see decodeBase64UrlFp
14
14
  */
15
- export declare const decodeBase64Url: (value: string) => string;
15
+ export declare const decodeBase64Url: ((value: string) => string) & {};
16
16
  /**
17
17
  * Creates a base-64-url encoded ASCII string from the passed value.
18
18
  * @param value - the value to encode.
@@ -7,6 +7,7 @@ export { off, offAll, on } from './events/emitter.js';
7
7
  export type { EventListener, SubscribeListener, Events, WriteAccessRequestedStatus, EmojiStatusAccessRequestedStatus, BiometryAuthRequestStatus, BiometryTokenUpdateStatus, BiometryType, EmojiStatusFailedError, EventName, EventPayload, EventWithoutPayload, EventWithPayload, PhoneRequestedStatus, FullScreenErrorStatus, HomeScreenStatus, InvoiceStatus, SafeAreaInsets, } from './events/types/index.js';
8
8
  export { captureSameReq } from './methods/captureSameReq.js';
9
9
  export { createPostEvent, type CreatePostEventMode, type OnUnsupportedFn, } from './methods/createPostEvent.js';
10
+ export { getReleaseVersion } from './methods/getReleaseVersion.js';
10
11
  export { postEvent, postEventFp, type PostEventFn, type PostEventFpFn, type PostEventError, } from './methods/postEvent.js';
11
12
  export { postMessage, type PostMessage } from './methods/postMessage.js';
12
13
  export { supports } from './methods/supports.js';
@@ -20,5 +21,5 @@ export { LaunchParamsRetrieveError, InvalidLaunchParamsError, InvokeCustomMethod
20
21
  export { setDebug, debug, resetGlobals, postMessageImpl, logger, setTargetOrigin, targetOrigin, } from './globals.js';
21
22
  export { retrieveLaunchParams, retrieveRawInitData, retrieveRawInitDataFp, retrieveRawLaunchParams, retrieveRawLaunchParamsFp, retrieveLaunchParamsFp, type RetrieveLaunchParamsError, type RetrieveLaunchParamsResult, type RetrieveRawInitDataError, type RetrieveRawLaunchParamsError, } from './launch-params.js';
22
23
  export { createStartParam, createStartParamFp, decodeStartParam, decodeStartParamFp, isSafeToCreateStartParam, } from './start-param.js';
23
- export { createLogger, deepSnakeToCamelObjKeys, type Logger, type LoggerFn, type LoggerForceFn, type LoggerOptions, type LogLevel, } from '@tma.js/toolkit';
24
+ export { createLogger, deepSnakeToCamelObjKeys, type DeepConvertSnakeKeysToCamelCase, type Logger, type LoggerFn, type LoggerForceFn, type LoggerOptions, type LogLevel, } from '@tma.js/toolkit';
24
25
  export { CancelledError, TimeoutError, } from 'better-promises';
@@ -29,4 +29,4 @@ export declare function retrieveRawLaunchParamsFp(): E.Either<RetrieveRawLaunchP
29
29
  /**
30
30
  * @see retrieveRawLaunchParamsFp
31
31
  */
32
- export declare const retrieveRawLaunchParams: () => string;
32
+ export declare const retrieveRawLaunchParams: (() => string) & {};
@@ -0,0 +1,15 @@
1
+ import { Version } from '@tma.js/types';
2
+ import { MethodName, MethodNameWithVersionedParams, MethodVersionedParams } from './types/index.js';
3
+ /**
4
+ * @returns Version of the specified method parameter release. Returns `null`
5
+ * if passed method or parameter are unknown.
6
+ * @param method - method name
7
+ * @param param - method parameter
8
+ */
9
+ export declare function getReleaseVersion<M extends MethodNameWithVersionedParams>(method: M, param: MethodVersionedParams<M>): Version | null;
10
+ /**
11
+ * @returns Version of the specified method release. Returns `null`
12
+ * if passed method is unknown.
13
+ * @param method - method name.
14
+ */
15
+ export declare function getReleaseVersion(method: MethodName): Version | null;
@@ -14,7 +14,7 @@ export declare function createStartParamFp(value: unknown): E.Either<Error, stri
14
14
  /**
15
15
  * @see createStartParamFp
16
16
  */
17
- export declare const createStartParam: (value: unknown) => string;
17
+ export declare const createStartParam: ((value: unknown) => string) & {};
18
18
  /**
19
19
  * @see decodeStartParamFp
20
20
  */
@@ -1,11 +1,11 @@
1
- import { BetterPromise, BetterPromiseOptions, TimeoutError, CancelledError } from 'better-promises';
1
+ import { BetterPromise, BetterPromiseOptions, TimeoutError } from 'better-promises';
2
2
  import { If, IsNever } from '@tma.js/toolkit';
3
3
  import { PostEventError, PostEventFn, PostEventFpFn } from '../methods/postEvent.js';
4
4
  import { MethodNameWithOptionalParams, MethodNameWithoutParams, MethodNameWithRequiredParams, MethodParams } from '../methods/types/index.js';
5
5
  import { EventName, EventPayload } from '../events/types/index.js';
6
6
  import * as TE from 'fp-ts/TaskEither';
7
7
  type AnyEventName = EventName | EventName[];
8
- export type RequestError = PostEventError | TimeoutError | CancelledError | unknown;
8
+ export type RequestError = PostEventError | TimeoutError;
9
9
  /**
10
10
  * @example
11
11
  * { event: 'scan_qr_closed' }
@@ -52,25 +52,25 @@ export type RequestFpFn = typeof requestFp;
52
52
  * @param eventOrEvents - tracked event or events.
53
53
  * @param options - additional options.
54
54
  */
55
- export declare function requestFp<M extends MethodNameWithRequiredParams, E extends AnyEventName>(method: M, eventOrEvents: E, options: RequestFpOptions<E> & {
55
+ export declare function requestFp<M extends MethodNameWithRequiredParams, E extends AnyEventName, AbortError = never>(method: M, eventOrEvents: E, options: RequestFpOptions<E> & {
56
56
  params: MethodParams<M>;
57
- }): TE.TaskEither<RequestError, RequestResult<E>>;
57
+ }): TE.TaskEither<RequestError | AbortError, RequestResult<E>>;
58
58
  /**
59
59
  * Calls a method waiting for the specified event(-s) to occur.
60
60
  * @param method - method name.
61
61
  * @param eventOrEvents - tracked event or events.
62
62
  * @param options - additional options.
63
63
  */
64
- export declare function requestFp<M extends MethodNameWithOptionalParams, E extends AnyEventName>(method: M, eventOrEvents: E, options?: RequestFpOptions<E> & {
64
+ export declare function requestFp<M extends MethodNameWithOptionalParams, E extends AnyEventName, AbortError = never>(method: M, eventOrEvents: E, options?: RequestFpOptions<E> & {
65
65
  params?: MethodParams<M>;
66
- }): TE.TaskEither<RequestError, RequestResult<E>>;
66
+ }): TE.TaskEither<RequestError | AbortError, RequestResult<E>>;
67
67
  /**
68
68
  * Calls a method waiting for the specified event(-s) to occur.
69
69
  * @param method - method name.
70
70
  * @param eventOrEvents - tracked event or events.
71
71
  * @param options - additional options.
72
72
  */
73
- export declare function requestFp<M extends MethodNameWithoutParams, E extends AnyEventName>(method: M, eventOrEvents: E, options?: RequestFpOptions<E>): TE.TaskEither<RequestError, RequestResult<E>>;
73
+ export declare function requestFp<M extends MethodNameWithoutParams, E extends AnyEventName, AbortError = never>(method: M, eventOrEvents: E, options?: RequestFpOptions<E>): TE.TaskEither<RequestError | AbortError, RequestResult<E>>;
74
74
  /**
75
75
  * @see requestFp
76
76
  */
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("valibot"),b=require("better-promises"),g=require("@tma.js/toolkit"),h=require("@tma.js/transformers"),P=require("error-kid"),E=require("@tma.js/signals"),Fe=require("mitt");function R(e){return u.is(u.looseObject({TelegramWebviewProxy:u.looseObject({postEvent:u.function()})}),e)}function U(){try{return window.self!==window.top}catch{return!0}}var Ae=function(e,r,t){if(t||arguments.length===2)for(var n=0,o=r.length,a;n<o;n++)(a||!(n in r))&&(a||(a=Array.prototype.slice.call(r,0,n)),a[n]=r[n]);return e.concat(a||Array.prototype.slice.call(r))};function Ce(e){return e}function S(e,r,t,n,o,a,i,c,p){switch(arguments.length){case 1:return e;case 2:return function(){return r(e.apply(this,arguments))};case 3:return function(){return t(r(e.apply(this,arguments)))};case 4:return function(){return n(t(r(e.apply(this,arguments))))};case 5:return function(){return o(n(t(r(e.apply(this,arguments)))))};case 6:return function(){return a(o(n(t(r(e.apply(this,arguments))))))};case 7:return function(){return i(a(o(n(t(r(e.apply(this,arguments)))))))};case 8:return function(){return c(i(a(o(n(t(r(e.apply(this,arguments))))))))};case 9:return function(){return p(c(i(a(o(n(t(r(e.apply(this,arguments)))))))))}}}function m(e,r,t,n,o,a,i,c,p){switch(arguments.length){case 1:return e;case 2:return r(e);case 3:return t(r(e));case 4:return n(t(r(e)));case 5:return o(n(t(r(e))));case 6:return a(o(n(t(r(e)))));case 7:return i(a(o(n(t(r(e))))));case 8:return c(i(a(o(n(t(r(e)))))));case 9:return p(c(i(a(o(n(t(r(e))))))));default:{for(var s=arguments[0],l=1;l<arguments.length;l++)s=arguments[l](s);return s}}}var F=function(e,r){var t=typeof e=="number"?function(n){return n.length>=e}:e;return function(){var n=Array.from(arguments);return t(arguments)?r.apply(this,n):function(o){return r.apply(void 0,Ae([o],n,!1))}}},Le={_tag:"None"},$e=function(e){return{_tag:"Some",value:e}},qe=function(e){return e._tag==="Left"},V=function(e){return{_tag:"Left",left:e}},ee=function(e){return{_tag:"Right",right:e}},w=V,f=ee,re=F(2,function(e,r){return k(e)?e:r(e.right)}),je=function(e){return function(r){return k(r)?r:f(e(r.right))}},te=function(e){return function(r){return k(r)?w(e(r.left)):r}},k=qe,ne=function(e,r){return function(t){return k(t)?e(t.left):r(t.right)}},Re=ne,I=ne,Ue=I,W=function(e,r){try{return f(e())}catch(t){return w(r(t))}},Ie=re,We=re,Oe=Le,Be=$e,Ge=function(e){return e._tag==="None"},De=function(e,r){return function(t){return Ge(t)?e():r(t.value)}},ze=De;function Je(e){return S(f,e.of)}function Ne(e){return S(w,e.of)}function Qe(e){return function(r,t){return e.chain(r,function(n){return k(n)?e.of(n):t(n.right)})}}function Ke(e){return function(r,t){return e.map(r,te(t))}}function He(e){return function(r,t){return function(n){return e.map(n,I(r,t))}}}var ae=function(e,r){return m(e,Xe(r))},Ye=function(e,r){return m(e,Ze(r))},Xe=function(e){return function(r){return function(){return Promise.resolve().then(r).then(e)}}},Ze=function(e){return function(r){return function(){return Promise.all([Promise.resolve().then(r),Promise.resolve().then(e)]).then(function(t){var n=t[0],o=t[1];return n(o)})}}},O=function(e){return function(){return Promise.resolve(e)}},Ve=F(2,function(e,r){return function(){return Promise.resolve().then(e).then(function(t){return r(t)()})}}),oe="Task",se={URI:oe,map:ae},ie={of:O},er={URI:oe,map:ae,of:O,ap:Ye,chain:Ve},rr=function(e,r,t,n){function o(a){return a instanceof t?a:new t(function(i){i(a)})}return new(t||(t=Promise))(function(a,i){function c(l){try{s(n.next(l))}catch(d){i(d)}}function p(l){try{s(n.throw(l))}catch(d){i(d)}}function s(l){l.done?a(l.value):o(l.value).then(c,p)}s((n=n.apply(e,r||[])).next())})},tr=function(e,r){var t={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,o,a,i;return i={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(i[Symbol.iterator]=function(){return this}),i;function c(s){return function(l){return p([s,l])}}function p(s){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(t=0)),t;)try{if(n=1,o&&(a=s[0]&2?o.return:s[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,s[1])).done)return a;switch(o=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return t.label++,{value:s[1],done:!1};case 5:t.label++,o=s[1],s=[0];continue;case 7:s=t.ops.pop(),t.trys.pop();continue;default:if(a=t.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){t=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]<a[3])){t.label=s[1];break}if(s[0]===6&&t.label<a[1]){t.label=a[1],a=s;break}if(a&&t.label<a[2]){t.label=a[2],t.ops.push(s);break}a[2]&&t.ops.pop(),t.trys.pop();continue}s=r.call(e,t)}catch(l){s=[6,l],o=0}finally{n=a=0}if(s[0]&5)throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}},nr=Ne(ie),ce=Je(ie),ar=O,A=He(se),or=function(e,r){return function(){return rr(void 0,void 0,void 0,function(){var t;return tr(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,e().then(ee)];case 1:return[2,n.sent()];case 2:return t=n.sent(),[2,V(r(t))];case 3:return[2]}})})}},sr=F(2,Ke(se)),ir=sr,cr=F(2,Qe(er)),ue=cr;class pe extends P.errorClass("MethodUnsupportedError",(r,t)=>[`Method "${r}" is unsupported in Mini Apps version ${t}`]){}class le extends P.errorClass("MethodParameterUnsupportedError",(r,t,n)=>[`Parameter "${t}" of "${r}" method is unsupported in Mini Apps version ${n}`]){}class _e extends P.errorClassWithData("LaunchParamsRetrieveError",r=>({errors:r}),r=>[["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:",...r.map(({source:t,error:n})=>`Source: ${t} / ${n instanceof Error?n.message:String(n)}`)].join(`
2
- `)]){}class fe extends P.errorClass("InvalidLaunchParamsError",(r,t)=>[`Invalid value for launch params: ${r}`,{cause:t}]){}class ge extends P.errorClass("UnknownEnvError"){}class me extends P.errorClass("InvokeCustomMethodError",r=>[`Server returned error: ${r}`]){}const Q="launchParams";function K(e){return e.replace(/^[^?#]*[?#]/,"").replace(/[?#]/g,"&")}const de=S(T,Ie(h.parseLaunchParamsQueryFp)),ur=g.eitherFnToSimple(de),he=S(T,je(e=>{const r=new URLSearchParams(e).get("tgWebAppData");return r?Be(r):Oe})),pr=S(he,Ue(e=>{throw e},e=>e),ze(()=>{},e=>e));function T(){const e=[];for(const[r,t]of[[()=>K(window.location.href),"window.location.href"],[()=>{const n=performance.getEntriesByType("navigation")[0];return n&&K(n.name)},"performance navigation entries"],[()=>g.getStorageValue(Q),"local storage"]]){const n=r();if(!n){e.push({source:t,error:new Error("Source is empty")});continue}const o=m(h.parseLaunchParamsQueryFp(n),Re(a=>a,()=>!0));if(typeof o!="boolean"){e.push({source:t,error:o});continue}return g.setStorageValue(Q,n),f(n)}return w(new _e(e))}const lr=g.eitherFnToSimple(T);function _r(e,r){const t=new Map,n=Fe(),o=(a,i,c=!1)=>{const p=t.get(a)||new Map;t.set(a,p);const s=p.get(i)||[];p.set(i,s);const l=s.findIndex(d=>d[1]===c);if(l>=0&&(n.off(a,s[l][0]),s.splice(l,1),!s.length&&(p.delete(i),!p.size))){const d=t.size;t.delete(a),d&&!t.size&&r()}};return{on(a,i,c){!t.size&&e();const p=()=>{o(a,i,c)},s=(...$)=>{c&&p(),a==="*"?i({name:$[0],payload:$[1]}):i(...$)};n.on(a,s);const l=t.get(a)||new Map;t.set(a,l);const d=l.get(i)||[];return l.set(i,d),d.push([s,c||!1]),p},off:o,emit:n.emit,clear(){const a=t.size;n.all.clear(),t.clear(),a&&r()}}}function x(e,r){window.dispatchEvent(new MessageEvent("message",{data:JSON.stringify({eventType:e,eventData:r}),source:window.parent}))}function q(e,r,t){const n=[t],o=e[r];typeof o=="function"&&n.push(o);const a=(...c)=>{n.forEach(p=>p(...c))},i=Object.assign((...c)=>{a(...c)},{unwrap(){const{length:c}=n;if(c===1){delete e[r];return}if(c===2){Y(e,r,n[1]);return}n.unshift(1),Y(e,r,a)}});we(e,r,()=>i,c=>n.push(c))}function H(e,r){const t=e[r];we(e,r,()=>t,n=>{Object.entries(n).forEach(([o,a])=>{t[o]=a})})}function we(e,r,t,n){Object.defineProperty(e,r,{enumerable:!0,configurable:!0,get:t,set:n})}function Y(e,r,t){Object.defineProperty(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t})}const fr={clipboard_text_received:u.looseObject({req_id:u.string(),data:u.nullish(u.string())}),custom_method_invoked:u.looseObject({req_id:u.string(),result:u.optional(u.unknown()),error:u.optional(u.string())}),popup_closed:u.nullish(u.looseObject({button_id:u.nullish(u.string(),()=>{})}),{}),viewport_changed:u.nullish(u.looseObject({height:u.number(),width:u.nullish(u.number(),()=>window.innerWidth),is_state_stable:u.boolean(),is_expanded:u.boolean()}),()=>({height:window.innerHeight,is_state_stable:!0,is_expanded:!0})),theme_changed:u.looseObject({theme_params:h.themeParams()})};function X(e){if(e.source!==window.parent)return;let r;try{r=u.parse(h.pipeJsonToSchema(h.miniAppsMessage()),e.data)}catch{return}const{eventType:t,eventData:n}=r,o=fr[t];let a;try{a=o?u.parse(o,n):n}catch(i){return v().forceError([`An error occurred processing the "${t}" event from the Telegram application.`,"Please, file an issue here:","https://github.com/Telegram-Mini-Apps/telegram-apps/issues/new/choose"].join(`
3
- `),r,i)}gr(t,a)}const{on:B,off:ve,emit:gr,clear:be}=_r(()=>{const e=window;!e.TelegramGameProxy&&(e.TelegramGameProxy={}),q(e.TelegramGameProxy,"receiveEvent",x),H(e,"TelegramGameProxy"),!e.Telegram&&(e.Telegram={}),!e.Telegram.WebView&&(e.Telegram.WebView={}),q(e.Telegram.WebView,"receiveEvent",x),H(e.Telegram,"WebView"),q(e,"TelegramGameProxy_receiveEvent",x),window.addEventListener("message",X)},()=>{[["TelegramGameProxy_receiveEvent"],["TelegramGameProxy","receiveEvent"],["Telegram","WebView","receiveEvent"]].forEach(e=>{const r=window;let t=[void 0,r];for(const a of e)if(t=[t[1],t[1][a]],!t[1])return;const[n,o]=t;"unwrap"in o&&(o.unwrap(),n&&n!==r&&!Object.keys(n).length&&delete r[e[0]])}),window.removeEventListener("message",X)}),M=E.signal(!1),G=E.signal("https://web.telegram.org"),mr=e=>{v().log("Event received:",e)},D=E.computed(M);function dr(e){e!==M()&&(M.set(e),(e?B:ve)("*",mr))}const z=E.computed(G);function hr(e){G.set(e),v().log("New target origin set",e)}const y=E.signal((...e)=>{window.parent.postMessage(...e)}),v=E.signal(g.createLogger("Bridge",{bgColor:"#9147ff",textColor:"white",shouldLog:D}));function wr(){be(),[y,G,z,M,D,v].forEach(e=>{e.unsubAll(),"reset"in e&&e.reset()})}const ye=(...e)=>y()(...e);function Pe(e,r){m(C(e,r),te(t=>{throw t}))}function C(e,r){v().log("Posting event:",r?{eventType:e,eventData:r}:{eventType:e});const t=window,n=JSON.stringify({eventType:e,eventData:r});return U()?(ye(n,z()),f(void 0)):R(t)?(t.TelegramWebviewProxy.postEvent(e,JSON.stringify(r)),f(void 0)):u.is(u.looseObject({external:u.looseObject({notify:u.function()})}),t)?(t.external.notify(n),f(void 0)):w(new ge)}function L(e,r,t){t||(t={});const{capture:n=()=>!0,postEvent:o=C}=t,[a,i]=g.createCbCollector(),c=new b.BetterPromise(p=>{(Array.isArray(r)?r:[r]).forEach(s=>{a(B(s,l=>{(Array.isArray(r)?n({event:s,payload:l}):n(l))&&p(l)}))})},t).finally(i);return m(ar(o(e,t.params)),ir(p=>(c.catch(()=>{}).cancel(),p)),ue(()=>or(()=>c,p=>p)))}function vr(e,r,t){const{postEvent:n}=t||{};return b.BetterPromise.fn(()=>m(L(e,r,{...t,postEvent:n?(...o)=>{try{return n(...o),f(void 0)}catch(a){return w(a)}}:C}),A(o=>{throw o},o=>o))())}function br(e,r){const t=Ee(e,r);return typeof t=="function"?b.BetterPromise.fn(()=>m(t,A(n=>{throw n},n=>n))()):t}function Ee(e,r){const t=R(window);if(!e)return t||m(T(),I(()=>!1,()=>!0));if(t)return ce(!0);const{timeout:n=100}=r||{};return m(L("web_app_request_theme","theme_changed",{...r,timeout:n}),A(o=>b.TimeoutError.is(o)?f(!1):w(o),()=>f(!0)))}function yr({launchParams:e,onEvent:r,resetPostMessage:t}={}){if(e){const a=typeof e=="string"||e instanceof URLSearchParams?e.toString():h.serializeLaunchParamsQuery({...e,tgWebAppData:void 0})+(e.tgWebAppData?`&tgWebAppData=${encodeURIComponent(e.tgWebAppData.toString())}`:"");try{h.parseLaunchParamsQuery(a)}catch(i){throw new fe(a,i)}g.setStorageValue("launchParams",a)}if(U()){if(!r)return;t&&y.reset();const a=y();y.set((...i)=>{const[c]=i,p=()=>{a(...i)};try{const s=u.parse(h.pipeJsonToSchema(h.miniAppsMessage()),c);r([s.eventType,s.eventData],p)}catch{p()}});return}const n=window.TelegramWebviewProxy||{},o=n.postEvent||(()=>{});window.TelegramWebviewProxy={...n,postEvent(a,i){const c=()=>{o(a,i)};r?r([a,i?JSON.parse(i):void 0],c):c()}},v().log("Environment was mocked by the mockTelegramEnv function")}function Se(e){return({req_id:r})=>r===e}function Z(e){return e.split(".").map(Number)}function ke(e,r){const t=Z(e),n=Z(r),o=Math.max(t.length,n.length);for(let a=0;a<o;a+=1){const i=t[a]||0,c=n[a]||0;if(i!==c)return i>c?1:-1}return 0}function _(e,r){return ke(e,r)<=0}function j(e,r,t){if(typeof t=="string"){if(e==="web_app_open_link"){if(r==="try_instant_view")return _("6.4",t);if(r==="try_browser")return _("7.6",t)}if(e==="web_app_set_header_color"&&r==="color")return _("6.9",t);if(e==="web_app_close"&&r==="return_back")return _("7.6",t);if(e==="web_app_setup_main_button"&&r==="has_shine_effect")return _("7.10",t)}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 _("6.1",r);case"web_app_open_popup":return _("6.2",r);case"web_app_close_scan_qr_popup":case"web_app_open_scan_qr_popup":case"web_app_read_text_from_clipboard":return _("6.4",r);case"web_app_switch_inline_query":return _("6.7",r);case"web_app_invoke_custom_method":case"web_app_request_write_access":case"web_app_request_phone":return _("6.9",r);case"web_app_setup_settings_button":return _("6.10",r);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 _("7.2",r);case"web_app_setup_swipe_behavior":return _("7.7",r);case"web_app_share_to_story":return _("7.8",r);case"web_app_setup_secondary_button":case"web_app_set_bottom_bar_color":return _("7.10",r);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 _("8.0",r);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 _("9.0",r);case"web_app_hide_keyboard":return _("9.1",r);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 Pr(e,r="strict"){const t=typeof r=="function"?r:n=>{const{method:o,version:a}=n,i="param"in n?new le(o,n.param,a):new pe(o,a);if(r==="strict")throw i;return v().forceWarn(i.message)};return(n,o)=>j(n,e)?n==="web_app_set_header_color"&&u.is(u.looseObject({color:u.any()}),o)&&!j(n,"color",e)?t({version:e,method:n,param:"color"}):Pe(n,o):t({version:e,method:n})}function Te(e,r,t,n){return m(L("web_app_invoke_custom_method","custom_method_invoked",{...n||{},params:{method:e,params:r,req_id:t},capture:Se(t)}),ue(({result:o,error:a})=>a?nr(new me(a)):ce(o)))}function Er(e,r,t,n){return b.BetterPromise.fn(()=>m(Te(e,r,t,n),A(o=>{throw o},o=>o))())}function Sr(){Object.hasOwn||(Object.hasOwn=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)})}function J(e){return W(()=>decodeURIComponent(atob(e).replace(/-/g,"+").replace(/_/g,"/").split("").map(r=>"%"+("00"+r.charCodeAt(0).toString(16)).slice(-2)).join("")),r=>r)}const kr=g.eitherFnToSimple(J);function N(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(r,t)=>String.fromCharCode(parseInt(`0x${t}`)))).replace(/\+/g,"-").replace(/\//g,"_")}var Tr=function(e){return W(function(){return JSON.parse(e)},Ce)};function xe(e){const r=N(typeof e=="string"?e:JSON.stringify(e));return r.length>512?w(new Error("Value is too long for start parameter")):f(r)}const xr=g.eitherFnToSimple(xe);function Mr(e,r){return g.eitherGet(Me(e,typeof r=="function"?t=>W(()=>r(t),n=>n):r))}function Me(e,r){return m(J(e),We(t=>r?typeof r=="function"?r(t):Tr(t):f(t)))}function Fr(e){return N(e).length<=512}Object.defineProperty(exports,"CancelledError",{enumerable:!0,get:()=>b.CancelledError});Object.defineProperty(exports,"TimeoutError",{enumerable:!0,get:()=>b.TimeoutError});Object.defineProperty(exports,"createLogger",{enumerable:!0,get:()=>g.createLogger});Object.defineProperty(exports,"deepSnakeToCamelObjKeys",{enumerable:!0,get:()=>g.deepSnakeToCamelObjKeys});exports.InvalidLaunchParamsError=fe;exports.InvokeCustomMethodFailedError=me;exports.LaunchParamsRetrieveError=_e;exports.MethodParameterUnsupportedError=le;exports.MethodUnsupportedError=pe;exports.UnknownEnvError=ge;exports.applyPolyfills=Sr;exports.captureSameReq=Se;exports.compareVersions=ke;exports.createPostEvent=Pr;exports.createStartParam=xr;exports.createStartParamFp=xe;exports.debug=D;exports.decodeBase64Url=kr;exports.decodeBase64UrlFp=J;exports.decodeStartParam=Mr;exports.decodeStartParamFp=Me;exports.emitEvent=x;exports.encodeBase64Url=N;exports.hasWebviewProxy=R;exports.invokeCustomMethod=Er;exports.invokeCustomMethodFp=Te;exports.isIframe=U;exports.isSafeToCreateStartParam=Fr;exports.isTMA=br;exports.isTMAFp=Ee;exports.logger=v;exports.mockTelegramEnv=yr;exports.off=ve;exports.offAll=be;exports.on=B;exports.postEvent=Pe;exports.postEventFp=C;exports.postMessage=ye;exports.postMessageImpl=y;exports.request=vr;exports.requestFp=L;exports.resetGlobals=wr;exports.retrieveLaunchParams=ur;exports.retrieveLaunchParamsFp=de;exports.retrieveRawInitData=pr;exports.retrieveRawInitDataFp=he;exports.retrieveRawLaunchParams=lr;exports.retrieveRawLaunchParamsFp=T;exports.setDebug=dr;exports.setTargetOrigin=hr;exports.supports=j;exports.targetOrigin=z;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("valibot"),l=require("@tma.js/toolkit"),P=require("better-promises"),h=require("@tma.js/transformers"),b=require("error-kid"),y=require("@tma.js/signals"),Te=require("mitt");function $(e){return i.is(i.looseObject({TelegramWebviewProxy:i.looseObject({postEvent:i.function()})}),e)}function q(){try{return window.self!==window.top}catch{return!0}}var xe=function(e,r,t){if(t||arguments.length===2)for(var n=0,a=r.length,o;n<a;n++)(o||!(n in r))&&(o||(o=Array.prototype.slice.call(r,0,n)),o[n]=r[n]);return e.concat(o||Array.prototype.slice.call(r))};function Me(e){return e}function E(e,r,t,n,a,o,s,u,c){switch(arguments.length){case 1:return e;case 2:return function(){return r(e.apply(this,arguments))};case 3:return function(){return t(r(e.apply(this,arguments)))};case 4:return function(){return n(t(r(e.apply(this,arguments))))};case 5:return function(){return a(n(t(r(e.apply(this,arguments)))))};case 6:return function(){return o(a(n(t(r(e.apply(this,arguments))))))};case 7:return function(){return s(o(a(n(t(r(e.apply(this,arguments)))))))};case 8:return function(){return u(s(o(a(n(t(r(e.apply(this,arguments))))))))};case 9:return function(){return c(u(s(o(a(n(t(r(e.apply(this,arguments)))))))))}}}function g(e,r,t,n,a,o,s,u,c){switch(arguments.length){case 1:return e;case 2:return r(e);case 3:return t(r(e));case 4:return n(t(r(e)));case 5:return a(n(t(r(e))));case 6:return o(a(n(t(r(e)))));case 7:return s(o(a(n(t(r(e))))));case 8:return u(s(o(a(n(t(r(e)))))));case 9:return c(u(s(o(a(n(t(r(e))))))));default:{for(var p=arguments[0],_=1;_<arguments.length;_++)p=arguments[_](p);return p}}}var j=function(e,r){var t=typeof e=="number"?function(n){return n.length>=e}:e;return function(){var n=Array.from(arguments);return t(arguments)?r.apply(this,n):function(a){return r.apply(void 0,xe([a],n,!1))}}},Fe={_tag:"None"},Ae=function(e){return{_tag:"Some",value:e}},Oe=function(e){return e._tag==="Left"},Ce=function(e){return{_tag:"Left",left:e}},Le=function(e){return{_tag:"Right",right:e}},d=Ce,f=Le,X=j(2,function(e,r){return k(e)?e:r(e.right)}),$e=function(e){return function(r){return k(r)?r:f(e(r.right))}},qe=function(e){return function(r){return k(r)?d(e(r.left)):r}},k=Oe,Z=function(e,r){return function(t){return k(t)?e(t.left):r(t.right)}},je=Z,R=Z,Re=R,U=function(e,r){try{return f(e())}catch(t){return d(r(t))}},Ue=X,We=X,Ie=Fe,Ve=Ae,Be=function(e){return e._tag==="None"},De=function(e,r){return function(t){return Be(t)?e():r(t.value)}},Ge=De;function ze(e){return E(f,e.of)}function Je(e){return E(d,e.of)}function Ne(e){return function(r,t){return e.chain(r,function(n){return k(n)?e.of(n):t(n.right)})}}function Qe(e){return function(r,t){return function(n){return e.map(n,R(r,t))}}}var ee=function(e,r){return g(e,He(r))},Ke=function(e,r){return g(e,Ye(r))},He=function(e){return function(r){return function(){return Promise.resolve().then(r).then(e)}}},Ye=function(e){return function(r){return function(){return Promise.all([Promise.resolve().then(r),Promise.resolve().then(e)]).then(function(t){var n=t[0],a=t[1];return n(a)})}}},re=function(e){return function(){return Promise.resolve(e)}},Xe=j(2,function(e,r){return function(){return Promise.resolve().then(e).then(function(t){return r(t)()})}}),te="Task",Ze={URI:te,map:ee},ne={of:re},er={URI:te,map:ee,of:re,ap:Ke,chain:Xe},rr=Je(ne),oe=ze(ne),ae=Qe(Ze),se=j(2,Ne(er)),tr=se,nr=se;class ie extends b.errorClass("MethodUnsupportedError",(r,t)=>[`Method "${r}" is unsupported in Mini Apps version ${t}`]){}class ue extends b.errorClass("MethodParameterUnsupportedError",(r,t,n)=>[`Parameter "${t}" of "${r}" method is unsupported in Mini Apps version ${n}`]){}class ce extends b.errorClassWithData("LaunchParamsRetrieveError",r=>({errors:r}),r=>[["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:",...r.map(({source:t,error:n})=>`Source: ${t} / ${n instanceof Error?n.message:String(n)}`)].join(`
2
+ `)]){}class pe extends b.errorClass("InvalidLaunchParamsError",(r,t)=>[`Invalid value for launch params: ${r}`,{cause:t}]){}class le extends b.errorClass("UnknownEnvError"){}class _e extends b.errorClass("InvokeCustomMethodError",r=>[`Server returned error: ${r}`]){}const z="launchParams";function J(e){return e.replace(/^[^?#]*[?#]/,"").replace(/[?#]/g,"&")}const fe=E(S,Ue(h.parseLaunchParamsQueryFp)),or=l.throwifyFpFn(fe),me=E(S,$e(e=>{const r=new URLSearchParams(e).get("tgWebAppData");return r?Ve(r):Ie})),ar=E(me,Re(e=>{throw e},e=>e),Ge(()=>{},e=>e));function S(){const e=[];for(const[r,t]of[[()=>J(window.location.href),"window.location.href"],[()=>{const n=performance.getEntriesByType("navigation")[0];return n&&J(n.name)},"performance navigation entries"],[()=>l.getStorageValue(z),"local storage"]]){const n=r();if(!n){e.push({source:t,error:new Error("Source is empty")});continue}const a=g(h.parseLaunchParamsQueryFp(n),je(o=>o,()=>!0));if(typeof a!="boolean"){e.push({source:t,error:a});continue}return l.setStorageValue(z,n),f(n)}return d(new ce(e))}const sr=l.throwifyFpFn(S);function ir(e,r){const t=new Map,n=Te(),a=(o,s,u=!1)=>{const c=t.get(o)||new Map;t.set(o,c);const p=c.get(s)||[];c.set(s,p);const _=p.findIndex(m=>m[1]===u);if(_>=0&&(n.off(o,p[_][0]),p.splice(_,1),!p.length&&(c.delete(s),!c.size))){const m=t.size;t.delete(o),m&&!t.size&&r()}};return{on(o,s,u){!t.size&&e();const c=()=>{a(o,s,u)},p=(...A)=>{u&&c(),o==="*"?s({name:A[0],payload:A[1]}):s(...A)};n.on(o,p);const _=t.get(o)||new Map;t.set(o,_);const m=_.get(s)||[];return _.set(s,m),m.push([p,u||!1]),c},off:a,emit:n.emit,clear(){const o=t.size;n.all.clear(),t.clear(),o&&r()}}}function T(e,r){window.dispatchEvent(new MessageEvent("message",{data:JSON.stringify({eventType:e,eventData:r}),source:window.parent}))}function O(e,r,t){const n=[t],a=e[r];typeof a=="function"&&n.push(a);const o=(...u)=>{n.forEach(c=>c(...u))},s=Object.assign((...u)=>{o(...u)},{unwrap(){const{length:u}=n;if(u===1){delete e[r];return}if(u===2){Q(e,r,n[1]);return}n.unshift(1),Q(e,r,o)}});ge(e,r,()=>s,u=>n.push(u))}function N(e,r){const t=e[r];ge(e,r,()=>t,n=>{Object.entries(n).forEach(([a,o])=>{t[a]=o})})}function ge(e,r,t,n){Object.defineProperty(e,r,{enumerable:!0,configurable:!0,get:t,set:n})}function Q(e,r,t){Object.defineProperty(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t})}const ur={clipboard_text_received:i.looseObject({req_id:i.string(),data:i.nullish(i.string())}),custom_method_invoked:i.looseObject({req_id:i.string(),result:i.optional(i.unknown()),error:i.optional(i.string())}),popup_closed:i.nullish(i.looseObject({button_id:i.nullish(i.string(),()=>{})}),{}),viewport_changed:i.nullish(i.looseObject({height:i.number(),width:i.nullish(i.number(),()=>window.innerWidth),is_state_stable:i.boolean(),is_expanded:i.boolean()}),()=>({height:window.innerHeight,is_state_stable:!0,is_expanded:!0})),theme_changed:i.looseObject({theme_params:h.themeParams()})};function K(e){if(e.source!==window.parent)return;let r;try{r=i.parse(h.pipeJsonToSchema(h.miniAppsMessage()),e.data)}catch{return}const{eventType:t,eventData:n}=r,a=ur[t];let o;try{o=a?i.parse(a,n):n}catch(s){return w().forceError([`An error occurred processing the "${t}" event from the Telegram application.`,"Please, file an issue here:","https://github.com/Telegram-Mini-Apps/telegram-apps/issues/new/choose"].join(`
3
+ `),r,s)}cr(t,o)}const{on:W,off:he,emit:cr,clear:de}=ir(()=>{const e=window;!e.TelegramGameProxy&&(e.TelegramGameProxy={}),O(e.TelegramGameProxy,"receiveEvent",T),N(e,"TelegramGameProxy"),!e.Telegram&&(e.Telegram={}),!e.Telegram.WebView&&(e.Telegram.WebView={}),O(e.Telegram.WebView,"receiveEvent",T),N(e.Telegram,"WebView"),O(e,"TelegramGameProxy_receiveEvent",T),window.addEventListener("message",K)},()=>{[["TelegramGameProxy_receiveEvent"],["TelegramGameProxy","receiveEvent"],["Telegram","WebView","receiveEvent"]].forEach(e=>{const r=window;let t=[void 0,r];for(const o of e)if(t=[t[1],t[1][o]],!t[1])return;const[n,a]=t;"unwrap"in a&&(a.unwrap(),n&&n!==r&&!Object.keys(n).length&&delete r[e[0]])}),window.removeEventListener("message",K)}),x=y.signal(!1),I=y.signal("https://web.telegram.org"),pr=e=>{w().log("Event received:",e)},V=y.computed(x);function lr(e){e!==x()&&(x.set(e),(e?W:he)("*",pr))}const B=y.computed(I);function _r(e){I.set(e),w().log("New target origin set",e)}const v=y.signal((...e)=>{window.parent.postMessage(...e)}),w=y.signal(l.createLogger("Bridge",{bgColor:"#9147ff",textColor:"white",shouldLog:V}));function fr(){de(),[v,I,B,x,V,w].forEach(e=>{e.unsubAll(),"reset"in e&&e.reset()})}const we=(...e)=>v()(...e);function ve(e,r){g(M(e,r),qe(t=>{throw t}))}function M(e,r){w().log("Posting event:",r?{eventType:e,eventData:r}:{eventType:e});const t=window,n=JSON.stringify({eventType:e,eventData:r});return q()?(we(n,B()),f(void 0)):$(t)?(t.TelegramWebviewProxy.postEvent(e,JSON.stringify(r)),f(void 0)):i.is(i.looseObject({external:i.looseObject({notify:i.function()})}),t)?(t.external.notify(n),f(void 0)):d(new le)}function F(e,r,t={}){const{capture:n=()=>!0,postEvent:a=M}=t;return g(async()=>a(e,t.params),nr(()=>l.BetterTaskEither((o,s,u)=>{const[c,p]=l.createCbCollector();(Array.isArray(r)?r:[r]).forEach(_=>{c(W(_,m=>{(Array.isArray(r)?n({event:_,payload:m}):n(m))&&o(m)}))}),u.on("finalized",p)},t)))}function mr(e,r,t){const{postEvent:n}=t||{};return l.throwifyAnyEither(F(e,r,{...t,postEvent:n?(...a)=>{try{return n(...a),f(void 0)}catch(o){return d(o)}}:M}))}function gr(e,r){const t=be(e,r);return typeof t=="function"?P.BetterPromise.fn(()=>l.throwifyAnyEither(t)):t}function be(e,r){const t=$(window);if(!e)return t||g(S(),R(()=>!1,()=>!0));if(t)return oe(!0);const{timeout:n=100}=r||{};return g(F("web_app_request_theme","theme_changed",{...r,timeout:n}),ae(a=>P.TimeoutError.is(a)?f(!1):d(a),()=>f(!0)))}function hr({launchParams:e,onEvent:r,resetPostMessage:t}={}){if(e){const o=typeof e=="string"||e instanceof URLSearchParams?e.toString():h.serializeLaunchParamsQuery({...e,tgWebAppData:void 0})+(e.tgWebAppData?`&tgWebAppData=${encodeURIComponent(e.tgWebAppData.toString())}`:"");try{h.parseLaunchParamsQuery(o)}catch(s){throw new pe(o,s)}l.setStorageValue("launchParams",o)}if(q()){if(!r)return;t&&v.reset();const o=v();v.set((...s)=>{const[u]=s,c=()=>{o(...s)};try{const p=i.parse(h.pipeJsonToSchema(h.miniAppsMessage()),u);r([p.eventType,p.eventData],c)}catch{c()}});return}const n=window.TelegramWebviewProxy||{},a=n.postEvent||(()=>{});window.TelegramWebviewProxy={...n,postEvent(o,s){const u=()=>{a(o,s)};r?r([o,s?JSON.parse(s):void 0],u):u()}},w().log("Environment was mocked by the mockTelegramEnv function")}function ye(e){return({req_id:r})=>r===e}function H(e){return e.split(".").map(Number)}function Pe(e,r){const t=H(e),n=H(r),a=Math.max(t.length,n.length);for(let o=0;o<a;o+=1){const s=t[o]||0,u=n[o]||0;if(s!==u)return s>u?1:-1}return 0}const Y={"6.0":["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"],6.1:["web_app_open_tg_link","web_app_open_invoice","web_app_setup_back_button","web_app_set_background_color","web_app_set_header_color","web_app_trigger_haptic_feedback"],6.2:["web_app_open_popup"],6.4:["web_app_close_scan_qr_popup","web_app_open_scan_qr_popup","web_app_read_text_from_clipboard",{method:"web_app_open_link",param:"try_instant_view"}],6.7:["web_app_switch_inline_query"],6.9:["web_app_invoke_custom_method","web_app_request_write_access","web_app_request_phone",{method:"web_app_set_header_color",param:"color"}],"6.10":["web_app_setup_settings_button"],7.2:["web_app_biometry_get_info","web_app_biometry_open_settings","web_app_biometry_request_access","web_app_biometry_request_auth","web_app_biometry_update_token"],7.6:[{method:"web_app_open_link",param:"try_browser"},{method:"web_app_close",param:"return_back"}],7.7:["web_app_setup_swipe_behavior"],7.8:["web_app_share_to_story"],"7.10":["web_app_setup_secondary_button","web_app_set_bottom_bar_color",{method:"web_app_setup_main_button",param:"has_shine_effect"}],"8.0":["web_app_request_safe_area","web_app_request_content_safe_area","web_app_request_fullscreen","web_app_exit_fullscreen","web_app_set_emoji_status","web_app_add_to_home_screen","web_app_check_home_screen","web_app_request_emoji_status_access","web_app_check_location","web_app_open_location_settings","web_app_request_file_download","web_app_request_location","web_app_send_prepared_message","web_app_start_accelerometer","web_app_start_device_orientation","web_app_start_gyroscope","web_app_stop_accelerometer","web_app_stop_device_orientation","web_app_stop_gyroscope","web_app_toggle_orientation_lock"],"9.0":["web_app_device_storage_clear","web_app_device_storage_get_key","web_app_device_storage_save_key","web_app_secure_storage_clear","web_app_secure_storage_get_key","web_app_secure_storage_restore_key","web_app_secure_storage_save_key"],9.1:["web_app_hide_keyboard"]};function C(e,r){return Object.keys(Y).find(n=>Y[n].some(a=>r?typeof a=="object"&&a.method===e&&a.param===r:a===e))||null}function L(e,r,t){const n=t?C(e,r):C(e);return n?Pe(n,t||r)<=0:!1}function dr(e,r="strict"){const t=typeof r=="function"?r:n=>{const{method:a,version:o}=n,s="param"in n?new ue(a,n.param,o):new ie(a,o);if(r==="strict")throw s;return w().forceWarn(s.message)};return(n,a)=>L(n,e)?n==="web_app_set_header_color"&&i.is(i.looseObject({color:i.any()}),a)&&!L(n,"color",e)?t({version:e,method:n,param:"color"}):ve(n,a):t({version:e,method:n})}function Ee(e,r,t,n){return g(F("web_app_invoke_custom_method","custom_method_invoked",{...n||{},params:{method:e,params:r,req_id:t},capture:ye(t)}),tr(({result:a,error:o})=>o?rr(new _e(o)):oe(a)))}function wr(e,r,t,n){return P.BetterPromise.fn(()=>g(Ee(e,r,t,n),ae(a=>{throw a},a=>a))())}function vr(){Object.hasOwn||(Object.hasOwn=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)})}function D(e){return U(()=>decodeURIComponent(atob(e).replace(/-/g,"+").replace(/_/g,"/").split("").map(r=>"%"+("00"+r.charCodeAt(0).toString(16)).slice(-2)).join("")),r=>r)}const br=l.throwifyFpFn(D);function G(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(r,t)=>String.fromCharCode(parseInt(`0x${t}`)))).replace(/\+/g,"-").replace(/\//g,"_")}var yr=function(e){return U(function(){return JSON.parse(e)},Me)};function ke(e){const r=G(typeof e=="string"?e:JSON.stringify(e));return r.length>512?d(new Error("Value is too long for start parameter")):f(r)}const Pr=l.throwifyFpFn(ke);function Er(e,r){return l.throwifyAnyEither(Se(e,typeof r=="function"?t=>U(()=>r(t),n=>n):r))}function Se(e,r){return g(D(e),We(t=>r?typeof r=="function"?r(t):yr(t):f(t)))}function kr(e){return G(e).length<=512}Object.defineProperty(exports,"createLogger",{enumerable:!0,get:()=>l.createLogger});Object.defineProperty(exports,"deepSnakeToCamelObjKeys",{enumerable:!0,get:()=>l.deepSnakeToCamelObjKeys});Object.defineProperty(exports,"CancelledError",{enumerable:!0,get:()=>P.CancelledError});Object.defineProperty(exports,"TimeoutError",{enumerable:!0,get:()=>P.TimeoutError});exports.InvalidLaunchParamsError=pe;exports.InvokeCustomMethodFailedError=_e;exports.LaunchParamsRetrieveError=ce;exports.MethodParameterUnsupportedError=ue;exports.MethodUnsupportedError=ie;exports.UnknownEnvError=le;exports.applyPolyfills=vr;exports.captureSameReq=ye;exports.compareVersions=Pe;exports.createPostEvent=dr;exports.createStartParam=Pr;exports.createStartParamFp=ke;exports.debug=V;exports.decodeBase64Url=br;exports.decodeBase64UrlFp=D;exports.decodeStartParam=Er;exports.decodeStartParamFp=Se;exports.emitEvent=T;exports.encodeBase64Url=G;exports.getReleaseVersion=C;exports.hasWebviewProxy=$;exports.invokeCustomMethod=wr;exports.invokeCustomMethodFp=Ee;exports.isIframe=q;exports.isSafeToCreateStartParam=kr;exports.isTMA=gr;exports.isTMAFp=be;exports.logger=w;exports.mockTelegramEnv=hr;exports.off=he;exports.offAll=de;exports.on=W;exports.postEvent=ve;exports.postEventFp=M;exports.postMessage=we;exports.postMessageImpl=v;exports.request=mr;exports.requestFp=F;exports.resetGlobals=fr;exports.retrieveLaunchParams=or;exports.retrieveLaunchParamsFp=fe;exports.retrieveRawInitData=ar;exports.retrieveRawInitDataFp=me;exports.retrieveRawLaunchParams=sr;exports.retrieveRawLaunchParamsFp=S;exports.setDebug=lr;exports.setTargetOrigin=_r;exports.supports=L;exports.targetOrigin=B;
4
4
  //# sourceMappingURL=index.cjs.map