@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.
- package/dist/dts/base64-url.d.ts +1 -1
- package/dist/dts/index.d.ts +2 -1
- package/dist/dts/launch-params.d.ts +1 -1
- package/dist/dts/methods/getReleaseVersion.d.ts +15 -0
- package/dist/dts/start-param.d.ts +1 -1
- package/dist/dts/utils/request.d.ts +7 -7
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.iife.js +3 -3
- package/dist/index.iife.js.map +1 -1
- package/dist/index.js +525 -650
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/dts/base64-url.d.ts
CHANGED
|
@@ -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.
|
package/dist/dts/index.d.ts
CHANGED
|
@@ -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';
|
|
@@ -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
|
|
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
|
|
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
|
|
2
|
-
`)]){}class
|
|
3
|
-
`),r,
|
|
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
|