gramstax 0.0.2 → 0.0.4

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.
@@ -1,2 +1,2 @@
1
- "use strict";var J=Object.create;var F=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var Y=Object.getPrototypeOf,Z=Object.prototype.hasOwnProperty;var c=(u,i)=>F(u,"name",{value:i,configurable:!0});var ii=(u,i)=>{for(var s in i)F(u,s,{get:i[s],enumerable:!0})},_=(u,i,s,e)=>{if(i&&typeof i=="object"||typeof i=="function")for(let t of X(i))!Z.call(u,t)&&t!==s&&F(u,t,{get:()=>i[t],enumerable:!(e=q(i,t))||e.enumerable});return u},B=(u,i,s)=>(_(u,i,"default"),s&&_(s,i,"default")),L=(u,i,s)=>(s=u!=null?J(Y(u)):{},_(i||!u||!u.__esModule?F(s,"default",{value:u,enumerable:!0}):s,u)),si=u=>_(F({},"__esModule",{value:!0}),u);var ei={};ii(ei,{BaseGeneral:()=>x,BaseGuard:()=>N,BasePage:()=>k,CacheExternal:()=>T,Ctx:()=>S,Gramstax:()=>I,TemplateEngine:()=>P,TemplateManager:()=>V});module.exports=si(ei);var R=L(require("logging-pretty"),1);var x=class{static{c(this,"BaseGeneral")}static log=new R.default;static logError(i,s){this.log.error(`[${this.toString().match(/class\s+([^\s{]+)/)?.[1]}:${s}]: ${String(i)}`)}logError(i,s,e){this.constructor.log.error(`[${s||this.constructor.name}:${e}] ${String(i)}`)}};var E=require("timers/promises");var S=class extends x{constructor(s,e,t,o){super();this.ct=s;this.templateManager=e;this.cacheSession=t;this.cacheKeyboard=o}static{c(this,"Ctx")}data=this.constructor.data;get isPremium(){return this.ct.from?.is_premium??!1}get isBot(){return this.ct.from?.is_bot??!1}get userid(){return this.ct.from?.id}get username(){return this.ct.from?.username}get fullname(){return`${this.ct.from?.first_name||""}${this.ct.from?.last_name||""}`}get firstname(){return this.ct.from?.first_name}get lastname(){return this.ct.from?.last_name}get msgText(){return this.ct.message?.text}get msgTextIntent(){return this.msgText&&this.msgText.indexOf(" ")!=-1?this.msgText.split(" ")[0]:""}get msgTextPayloads(){return this.msgText&&this.msgText.indexOf(" ")!=-1?this.msgText.split(" ").slice(1):[]}get msgTextPayload(){return this.msgTextPayloads[0]}get msgCaption(){return this.ct.message?.caption}get msgCaptionIntent(){return this.msgCaption&&this.msgCaption.indexOf(" ")!=-1?this.msgCaption.split(" ")[0]:""}get msgPhoto(){return this.ct.message?.photo}get msgVideo(){return this.ct.message?.video}get msgAudio(){return this.ct.message?.audio}get callbackData(){return this.ct.callbackQuery?.data}get callbackDataIntent(){return this.callbackData&&this.callbackData.indexOf(":")!=-1?this.callbackData.split(":")[0]:""}get callbackDataPayloads(){return this.callbackData&&this.callbackData.indexOf(":")!=-1?this.callbackData.split(":").slice(1):[]}get callbackDataPayload(){return this.callbackDataPayloads?.[0]}get callbackDataParts(){return this.callbackDataPayload&&this.callbackDataPayload.indexOf("+")!=-1?this.callbackDataPayload.split("+"):[]}get languageCode(){return this.ct.from?.language_code}set languageCode(s){this.ct.from.language_code=s}session={};async broadcast(s,e,t,o,n,a){let l=e.map(d=>this.templateManager.getMessage(this.data.name,n,d,o));for(let d=0;d<s.length;d++){let p=s[d],C=l[d];await this.ct.api.sendMessage(p,C,{parse_mode:"HTML",reply_markup:t,...a}),d+1==30&&await(0,E.setTimeout)(1200)}}async reply(s,e,t,o){let n=this.templateManager.getMessage(this.data.name,t,this.languageCode,e);return await this.ct.reply(n,{parse_mode:"HTML",reply_markup:s,...o})}async replyAction(s){return await this.ct.replyWithChatAction(s)}async edit(s,e,t,o){try{let n=this.templateManager.getMessage(this.data.name,t,this.languageCode,e);return await this.ct.editMessageText(n,{parse_mode:"HTML",reply_markup:s,...o})}catch{await this.reply(s,e,t,o)}}async delete(){return await this.ct.deleteMessage()}async callbackQueryAnswer(s){try{return await this.ct.answerCallbackQuery(s)}catch{return null}}async sessionSet(s,e,...t){try{let o={method:s,params:e,...t},n=await this.cacheSession.set(`${this.userid}`,{method:s,params:e,...t});return n&&(this.session=o),n}catch{return null}}async sessionGet(){try{let s=await this.cacheSession.get(`${this.userid}`);return s&&(this.session=s),s||null}catch{return null}}async sessionClear(){try{let s=await this.cacheSession.delete(`${this.userid}`);return s&&(this.session={}),s}catch{return null}}};var y={};B(y,require("grammy"));var k=class extends S{static{c(this,"BasePage")}static template;static data;ctx;constructor(i){super(i.ct,i.templateManager,i.cacheSession,i.cacheKeyboard),this.session=i?.ctx?.session||i.session,this.ctx=i?.ctx||i}static buildData(i){return{name:"",callbackData:i?function(...s){let e=i(...s);return`${this.name}${e===void 0?"":`:${e}`}`}:function(){return this?.name}}}buildInlineKeyboard(i,s){let e=this.data.name;if(s?.cache===!0){let a=`${e}:${this.languageCode}:inline`,r=this.cacheKeyboard.get(a);if(!r){let l=new y.InlineKeyboard,d=this.templateManager.getKeyboard(e,s?.baseId,this.languageCode,"inline",s?.data),p=i(l,d);return this.cacheKeyboard.set(a,p),p}return r}let t=new y.InlineKeyboard,o=this.templateManager.getKeyboard(e,s?.baseId,this.languageCode,"inline",s?.data);return i(t,o)}buildKeyboard(i,s){let e=this.data.name;if(s?.cache===!0){let a=`${e}:${this.languageCode}:default`,r=this.cacheKeyboard.get(a);if(!r){let l=new y.Keyboard,d=this.templateManager.getKeyboard(e,s?.baseId,this.languageCode,"default",s?.data),p=i(l,d);return p.resized(!0),this.cacheKeyboard.set(a,p),p}return r}let t=new y.Keyboard,o=this.templateManager.getKeyboard(e,s?.baseId,this.languageCode,"default",s?.data),n=i(t,o);return n.resized(),n}validateSessionCallback(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodCallback(s)}validateSessionCallbackPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodCallbackPayload(s)}validateSessionText(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodText(s)}validateSessionTextPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodTextPayload(s)}validateSessionTextCommand(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodTextCommand(s)}validateSessionTextCommandPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodTextCommandPayload(s)}validateSessionTextFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodTextFree(s)}validateSessionPhotoCaption(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodPhotoCaption(s)}validateSessionPhotoCaptionPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodPhotoCaptionPayload(s)}validateSessionPhotoCaptionCommand(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodPhotoCaptionCommand(s)}validateSessionPhotoCaptionCommandPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodPhotoCaptionCommandPayload(s)}validateSessionPhotoFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodPhotoFree(s)}validateSessionVideoCaption(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoCaption(s)}validateSessionVideoCaptionPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoCaptionPayload(s)}validateSessionVideoCaptionCommand(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoCaptionCommand(s)}validateSessionVideoCaptionCommandPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoCaptionCommandPayload(s)}validateSessionVideoFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoFree(s)}validateSessionAudioCaption(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAudioCaption(s)}validateSessionAudioCaptionPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAudioCaptionPayload(s)}validateSessionAudioCaptionCommand(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAudioCaptionCommand(s)}validateSessionAudioCaptionCommandPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAudioCaptionCommandPayload(s)}validateSessionAudioFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAudioFree(s)}validateSessionDocumentCaption(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodDocumentCaption(s)}validateSessionDocumentCaptionPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodDocumentCaptionPayload(s)}validateSessionDocumentCaptionCommand(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodDocumentCaptionCommand(s)}validateSessionDocumentCaptionCommandPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodDocumentCaptionCommandPayload(s)}validateSessionDocumentFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodDocumentFree(s)}validateSessionAnimationCaption(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAnimationCaption(s)}validateSessionAnimationCaptionPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAnimationCaptionPayload(s)}validateSessionAnimationCaptionCommand(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAnimationCaptionCommand(s)}validateSessionAnimationCaptionCommandPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAnimationCaptionCommandPayload(s)}validateSessionAnimationFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAnimationFree(s)}validateSessionVoiceCaption(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVoiceCaption(s)}validateSessionVoiceCaptionPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVoiceCaptionPayload(s)}validateSessionVoiceCaptionCommand(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVoiceCaptionCommand(s)}validateSessionVoiceCaptionCommandPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVoiceCaptionCommandPayload(s)}validateSessionVoiceFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVoiceFree(s)}validateSessionVideoNoteCaption(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoNoteCaption(s)}validateSessionVideoNoteCaptionPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoNoteCaptionPayload(s)}validateSessionVideoNoteCaptionCommand(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoNoteCaptionCommand(s)}validateSessionVideoNoteCaptionCommandPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoNoteCaptionCommandPayload(s)}validateSessionVideoNoteFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoNoteFree(s)}validateSessionStickerFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodStickerFree(s)}validateSessionLocationFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodLocationFree(s)}validateSessionContactFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodContactFree(s)}sessionCallback(i,s){return this.sessionSet(this.buildSessionMethodCallback(s),i)}sessionCallbackPayload(i,s){return this.sessionSet(this.buildSessionMethodCallbackPayload(s),i)}sessionText(i,s){return this.sessionSet(this.buildSessionMethodText(s),i)}sessionTextPayload(i,s){return this.sessionSet(this.buildSessionMethodTextPayload(s),i)}sessionTextCommand(i,s){return this.sessionSet(this.buildSessionMethodTextCommand(s),i)}sessionTextCommandPayload(i,s){return this.sessionSet(this.buildSessionMethodTextCommandPayload(s),i)}sessionTextFree(i,s){return this.sessionSet(this.buildSessionMethodTextFree(s),i)}sessionPhotoCaption(i,s){return this.sessionSet(this.buildSessionMethodPhotoCaption(s),i)}sessionPhotoCaptionPayload(i,s){return this.sessionSet(this.buildSessionMethodPhotoCaptionPayload(s),i)}sessionPhotoCaptionCommand(i,s){return this.sessionSet(this.buildSessionMethodPhotoCaptionCommand(s),i)}sessionPhotoCaptionCommandPayload(i,s){return this.sessionSet(this.buildSessionMethodPhotoCaptionCommandPayload(s),i)}sessionPhotoFree(i,s){return this.sessionSet(this.buildSessionMethodPhotoFree(s),i)}sessionVideoCaption(i,s){return this.sessionSet(this.buildSessionMethodVideoCaption(s),i)}sessionVideoCaptionPayload(i,s){return this.sessionSet(this.buildSessionMethodVideoCaptionPayload(s),i)}sessionVideoCaptionCommand(i,s){return this.sessionSet(this.buildSessionMethodVideoCaptionCommand(s),i)}sessionVideoCaptionCommandPayload(i,s){return this.sessionSet(this.buildSessionMethodVideoCaptionCommandPayload(s),i)}sessionVideoFree(i,s){return this.sessionSet(this.buildSessionMethodVideoFree(s),i)}sessionAudioCaption(i,s){return this.sessionSet(this.buildSessionMethodAudioCaption(s),i)}sessionAudioCaptionPayload(i,s){return this.sessionSet(this.buildSessionMethodAudioCaptionPayload(s),i)}sessionAudioCaptionCommand(i,s){return this.sessionSet(this.buildSessionMethodAudioCaptionCommand(s),i)}sessionAudioCaptionCommandPayload(i,s){return this.sessionSet(this.buildSessionMethodAudioCaptionCommandPayload(s),i)}sessionAudioFree(i,s){return this.sessionSet(this.buildSessionMethodAudioFree(s),i)}sessionDocumentCaption(i,s){return this.sessionSet(this.buildSessionMethodDocumentCaption(s),i)}sessionDocumentCaptionPayload(i,s){return this.sessionSet(this.buildSessionMethodDocumentCaptionPayload(s),i)}sessionDocumentCaptionCommand(i,s){return this.sessionSet(this.buildSessionMethodDocumentCaptionCommand(s),i)}sessionDocumentCaptionCommandPayload(i,s){return this.sessionSet(this.buildSessionMethodDocumentCaptionCommandPayload(s),i)}sessionDocumentFree(i,s){return this.sessionSet(this.buildSessionMethodDocumentFree(s),i)}sessionAnimationCaption(i,s){return this.sessionSet(this.buildSessionMethodAnimationCaption(s),i)}sessionAnimationCaptionPayload(i,s){return this.sessionSet(this.buildSessionMethodAnimationCaptionPayload(s),i)}sessionAnimationCaptionCommand(i,s){return this.sessionSet(this.buildSessionMethodAnimationCaptionCommand(s),i)}sessionAnimationCaptionCommandPayload(i,s){return this.sessionSet(this.buildSessionMethodAnimationCaptionCommandPayload(s),i)}sessionAnimationFree(i,s){return this.sessionSet(this.buildSessionMethodAnimationFree(s),i)}sessionVoiceCaption(i,s){return this.sessionSet(this.buildSessionMethodVoiceCaption(s),i)}sessionVoiceCaptionPayload(i,s){return this.sessionSet(this.buildSessionMethodVoiceCaptionPayload(s),i)}sessionVoiceCaptionCommand(i,s){return this.sessionSet(this.buildSessionMethodVoiceCaptionCommand(s),i)}sessionVoiceCaptionCommandPayload(i,s){return this.sessionSet(this.buildSessionMethodVoiceCaptionCommandPayload(s),i)}sessionVoiceFree(i,s){return this.sessionSet(this.buildSessionMethodVoiceFree(s),i)}sessionVideoNoteCaption(i,s){return this.sessionSet(this.buildSessionMethodVideoNoteCaption(s),i)}sessionVideoNoteCaptionPayload(i,s){return this.sessionSet(this.buildSessionMethodVideoNoteCaptionPayload(s),i)}sessionVideoNoteCaptionCommand(i,s){return this.sessionSet(this.buildSessionMethodVideoNoteCaptionCommand(s),i)}sessionVideoNoteCaptionCommandPayload(i,s){return this.sessionSet(this.buildSessionMethodVideoNoteCaptionCommandPayload(s),i)}sessionVideoNoteFree(i,s){return this.sessionSet(this.buildSessionMethodVideoNoteFree(s),i)}sessionStickerFree(i,s){return this.sessionSet(this.buildSessionMethodStickerFree(s),i)}sessionLocationFree(i,s){return this.sessionSet(this.buildSessionMethodLocationFree(s),i)}sessionContactFree(i,s){return this.sessionSet(this.buildSessionMethodContactFree(s),i)}sessionToCallback(i,s){return this.sessionCallback({...this.session.params,...i},s)}sessionToCallbackPayload(i,s){return this.sessionCallbackPayload({...this.session.params,...i},s)}sessionToText(i,s){return this.sessionText({...this.session.params,...i},s)}sessionToTextPayload(i,s){return this.sessionTextPayload({...this.session.params,...i},s)}sessionToTextCommand(i,s){return this.sessionTextCommand({...this.session.params,...i},s)}sessionToTextCommandPayload(i,s){return this.sessionTextCommandPayload({...this.session.params,...i},s)}sessionToTextFree(i,s){return this.sessionTextFree({...this.session.params,...i},s)}sessionToPhotoCaption(i,s){return this.sessionPhotoCaption({...this.session.params,...i},s)}sessionToPhotoCaptionPayload(i,s){return this.sessionPhotoCaptionPayload({...this.session.params,...i},s)}sessionToPhotoCaptionCommand(i,s){return this.sessionPhotoCaptionCommand({...this.session.params,...i},s)}sessionToPhotoCaptionCommandPayload(i,s){return this.sessionPhotoCaptionCommandPayload({...this.session.params,...i},s)}sessionToPhotoFree(i,s){return this.sessionPhotoFree({...this.session.params,...i},s)}sessionToVideoCaption(i,s){return this.sessionVideoCaption({...this.session.params,...i},s)}sessionToVideoCaptionPayload(i,s){return this.sessionVideoCaptionPayload({...this.session.params,...i},s)}sessionToVideoCaptionCommand(i,s){return this.sessionVideoCaptionCommand({...this.session.params,...i},s)}sessionToVideoCaptionCommandPayload(i,s){return this.sessionVideoCaptionCommandPayload({...this.session.params,...i},s)}sessionToVideoFree(i,s){return this.sessionVideoFree({...this.session.params,...i},s)}sessionToAudioCaption(i,s){return this.sessionAudioCaption({...this.session.params,...i},s)}sessionToAudioCaptionPayload(i,s){return this.sessionAudioCaptionPayload({...this.session.params,...i},s)}sessionToAudioCaptionCommand(i,s){return this.sessionAudioCaptionCommand({...this.session.params,...i},s)}sessionToAudioCaptionCommandPayload(i,s){return this.sessionAudioCaptionCommandPayload({...this.session.params,...i},s)}sessionToAudioFree(i,s){return this.sessionAudioFree({...this.session.params,...i},s)}sessionToDocumentCaption(i,s){return this.sessionDocumentCaption({...this.session.params,...i},s)}sessionToDocumentCaptionPayload(i,s){return this.sessionDocumentCaptionPayload({...this.session.params,...i},s)}sessionToDocumentCaptionCommand(i,s){return this.sessionDocumentCaptionCommand({...this.session.params,...i},s)}sessionToDocumentCaptionCommandPayload(i,s){return this.sessionDocumentCaptionCommandPayload({...this.session.params,...i},s)}sessionToDocumentFree(i,s){return this.sessionDocumentFree({...this.session.params,...i},s)}sessionToAnimationCaption(i,s){return this.sessionAnimationCaption({...this.session.params,...i},s)}sessionToAnimationCaptionPayload(i,s){return this.sessionAnimationCaptionPayload({...this.session.params,...i},s)}sessionToAnimationCaptionCommand(i,s){return this.sessionAnimationCaptionCommand({...this.session.params,...i},s)}sessionToAnimationCaptionCommandPayload(i,s){return this.sessionAnimationCaptionCommandPayload({...this.session.params,...i},s)}sessionToAnimationFree(i,s){return this.sessionAnimationFree({...this.session.params,...i},s)}sessionToVoiceCaption(i,s){return this.sessionVoiceCaption({...this.session.params,...i},s)}sessionToVoiceCaptionPayload(i,s){return this.sessionVoiceCaptionPayload({...this.session.params,...i},s)}sessionToVoiceCaptionCommand(i,s){return this.sessionVoiceCaptionCommand({...this.session.params,...i},s)}sessionToVoiceCaptionCommandPayload(i,s){return this.sessionVoiceCaptionCommandPayload({...this.session.params,...i},s)}sessionToVoiceFree(i,s){return this.sessionVoiceFree({...this.session.params,...i},s)}sessionToVideoNoteCaption(i,s){return this.sessionVideoNoteCaption({...this.session.params,...i},s)}sessionToVideoNoteCaptionPayload(i,s){return this.sessionVideoNoteCaptionPayload({...this.session.params,...i},s)}sessionToVideoNoteCaptionCommand(i,s){return this.sessionVideoNoteCaptionCommand({...this.session.params,...i},s)}sessionToVideoNoteCaptionCommandPayload(i,s){return this.sessionVideoNoteCaptionCommandPayload({...this.session.params,...i},s)}sessionToVideoNoteFree(i,s){return this.sessionVideoNoteFree({...this.session.params,...i},s)}sessionToStickerFree(i,s){return this.sessionStickerFree({...this.session.params,...i},s)}sessionToLocationFree(i,s){return this.sessionLocationFree({...this.session.params,...i},s)}sessionToContactFree(i,s){return this.sessionContactFree({...this.session.params,...i},s)}buildIntent(i,s=!0){i||(i=s?this.data.callbackData():this.data.name);let e=s?":":" ";return i?.indexOf?.(e)!=-1?i?.split?.(e)?.[0]:i}buildSessionMethod(i,s){return`${i}-${s||this.data.name}`}buildSessionMethodCallback(i){return this.buildSessionMethod("1",i)}buildSessionMethodCallbackPayload(i){return this.buildSessionMethod("2",i)}buildSessionMethodText(i){return this.buildSessionMethod("3",i)}buildSessionMethodTextPayload(i){return this.buildSessionMethod("4",i)}buildSessionMethodTextCommand(i){return this.buildSessionMethod("5",i)}buildSessionMethodTextCommandPayload(i){return this.buildSessionMethod("6",i)}buildSessionMethodTextFree(i){return this.buildSessionMethod("7",i)}buildSessionMethodPhotoCaption(i){return this.buildSessionMethod("8",i)}buildSessionMethodPhotoCaptionPayload(i){return this.buildSessionMethod("9",i)}buildSessionMethodPhotoCaptionCommand(i){return this.buildSessionMethod("10",i)}buildSessionMethodPhotoCaptionCommandPayload(i){return this.buildSessionMethod("11",i)}buildSessionMethodPhotoFree(i){return this.buildSessionMethod("12",i)}buildSessionMethodVideoCaption(i){return this.buildSessionMethod("13",i)}buildSessionMethodVideoCaptionPayload(i){return this.buildSessionMethod("14",i)}buildSessionMethodVideoCaptionCommand(i){return this.buildSessionMethod("15",i)}buildSessionMethodVideoCaptionCommandPayload(i){return this.buildSessionMethod("16",i)}buildSessionMethodVideoFree(i){return this.buildSessionMethod("17",i)}buildSessionMethodAudioCaption(i){return this.buildSessionMethod("18",i)}buildSessionMethodAudioCaptionPayload(i){return this.buildSessionMethod("19",i)}buildSessionMethodAudioCaptionCommand(i){return this.buildSessionMethod("20",i)}buildSessionMethodAudioCaptionCommandPayload(i){return this.buildSessionMethod("21",i)}buildSessionMethodAudioFree(i){return this.buildSessionMethod("22",i)}buildSessionMethodDocumentCaption(i){return this.buildSessionMethod("23",i)}buildSessionMethodDocumentCaptionPayload(i){return this.buildSessionMethod("24",i)}buildSessionMethodDocumentCaptionCommand(i){return this.buildSessionMethod("25",i)}buildSessionMethodDocumentCaptionCommandPayload(i){return this.buildSessionMethod("26",i)}buildSessionMethodDocumentFree(i){return this.buildSessionMethod("27",i)}buildSessionMethodAnimationCaption(i){return this.buildSessionMethod("28",i)}buildSessionMethodAnimationCaptionPayload(i){return this.buildSessionMethod("29",i)}buildSessionMethodAnimationCaptionCommand(i){return this.buildSessionMethod("30",i)}buildSessionMethodAnimationCaptionCommandPayload(i){return this.buildSessionMethod("31",i)}buildSessionMethodAnimationFree(i){return this.buildSessionMethod("32",i)}buildSessionMethodVoiceCaption(i){return this.buildSessionMethod("33",i)}buildSessionMethodVoiceCaptionPayload(i){return this.buildSessionMethod("34",i)}buildSessionMethodVoiceCaptionCommand(i){return this.buildSessionMethod("35",i)}buildSessionMethodVoiceCaptionCommandPayload(i){return this.buildSessionMethod("36",i)}buildSessionMethodVoiceFree(i){return this.buildSessionMethod("37",i)}buildSessionMethodVideoNoteCaption(i){return this.buildSessionMethod("38",i)}buildSessionMethodVideoNoteCaptionPayload(i){return this.buildSessionMethod("39",i)}buildSessionMethodVideoNoteCaptionCommand(i){return this.buildSessionMethod("40",i)}buildSessionMethodVideoNoteCaptionCommandPayload(i){return this.buildSessionMethod("41",i)}buildSessionMethodVideoNoteFree(i){return this.buildSessionMethod("42",i)}buildSessionMethodStickerFree(i){return this.buildSessionMethod("43",i)}buildSessionMethodLocationFree(i){return this.buildSessionMethod("44",i)}buildSessionMethodContactFree(i){return this.buildSessionMethod("45",i)}};var N=class extends k{static{c(this,"BaseGuard")}pageData;constructor(i){super(i.ctx),this.pageData=i.data}};var O=require("keyv"),W=L(require("@keyv/redis"),1);var T=class extends O.Keyv{constructor(s="memory",e,t,o){let n;s.startsWith("redis")&&(n=new W.default(s)),s==="memory"&&(n=new Map),o?.forceStore&&(n=o.forceStore);super({store:n,namespace:e,ttl:t});this.url=s}static{c(this,"CacheExternal")}};var Q=require("bun"),z=require("fs"),v=require("path");var G=require("logging-pretty");var P=class{static{c(this,"TemplateEngine")}static _escape(i){return i.replace(/\\/g,"\\\\").replace(/`/g,"\\`")}static _processVariables(i){return i.replace(/\{\{(\w+)\}\}/g,(s,e)=>`\${(data && data["${e}"]) ?? ""}`)}static _processBaseBlocks(i){let s=/<base\b[^>]*?(?:\sid=(["']?)([^"'\s>]+)\1)?[^>]*?>([\s\S]*?)<\/base>/g,e={};for(let t of i.matchAll(s)){let o=t[2]??"default",a=(t[3]??"").replace(/^[\t ]+/gm,"").replace(/^\n+/,"").replace(/\n+$/,"").trim();e[o]=a}return e}static _processScriptBlocks(i){return i.replace(/<script\b[^>]*>([\s\S]*?)<\/script>/gi,(s,e)=>{let t=e.trim();return t?`\${(() => { if (!data) return ''; try { with(data) { ${t} } } catch(e) { return '' } })()}`:""})}static _processSpaceBlocks(i){return i.replace(/^[ \t]*<space\s*\/>[ \t]*$/gim,"")}static _processDivBlocks(i){return i.replace(/<div>([\s\S]*?)<\/div>/gi,(s,e)=>e.replace(/^[\t ]+/gm,"").replace(/^\n+/,"").replace(/\n+$/,""))}static _processMessageBlocks(i){let s=/<message\s+lang="([^"]+)"\s*>([\s\S]*?)<\/message>/gi,e={};for(let[,t,o]of i.matchAll(s)){let n=o.replace(/^[\t ]+/gm,"").replace(/^\n+/,"").replace(/\n+$/,"").trim();e[t]=n}return e}static _processKeyboardBlocks(i){let s=/<keyboard\b[^>]*\blang="([^"]*)"[^>]*?(?:\sfor="([^"]*)")?[^>]*>([\s\S]*?)<\/keyboard>/gi,e={};for(let[,t,o,n]of i.matchAll(s)){let a=o==="default"?"default":"inline",r=n.trim();e[t]||(e[t]={}),e[t][a]=r}return e}static _compileToFunction(i,s){let e;s?e=i.map(n=>`\`${n}\``).join(","):e=`\`${i}\``;let t=e;if(t=this._processScriptBlocks(this._processDivBlocks(this._processSpaceBlocks(t))),s){let o=`return [${t}]`;return new Function("data",o)}else{let o=`return ${t}`;return new Function("data",o)}}static compileMessages(i){let s=this._processBaseBlocks(i),e={};for(let[t,o]of Object.entries(s)){let n=this._processMessageBlocks(o);e[t]={};for(let[a,r]of Object.entries(n)){let l=this._processVariables(this._processScriptBlocks(r));e[t][a]=this._compileToFunction(l,!1)}}return e}static compileKeyboards(i){let s=this._processBaseBlocks(i),e={};for(let[t,o]of Object.entries(s)){let n=this._processKeyboardBlocks(o);e[t]={};for(let[a,r]of Object.entries(n)){e[t][a]={};for(let[l,d]of Object.entries(r)){let C=d.split(/(?<!\\),\s*/).map(m=>m.replace(/\\,/g,",").trim()).map(m=>this._processVariables(this._processScriptBlocks(m)));e[t][a][l]=this._compileToFunction(C,!0)}}}return e}};var w=require("fs/promises"),j=require("chokidar"),f=require("path"),g=require("fs");var V=class{static{c(this,"TemplateManager")}_map=new Map;_engine=P;_watcher=null;_supportedExtensions=new Set([".html"]);_path;_forceLanguage;_isWatchEnabled;constructor(i={}){let{enableWatch:s=!1,path:e=null,forceLanguage:t=null}=i;this._path=e,this._forceLanguage=t,this._isWatchEnabled=s,this._validatePath(),this._initializeWatcher(),this._loadAllFiles()}_validatePath(){try{if(this._path===null||!(0,g.existsSync)(this._path))return;if(!(0,g.statSync)(this._path).isDirectory())throw new Error(`Template path is not a directory: ${this._path}`)}catch(i){throw new Error(`Failed to validate Template path: ${i}`)}}_initializeWatcher(){this._path===null||!this._isWatchEnabled||(this._watcher=(0,j.watch)(this._path,{persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}}),this._watcher.on("change",this._handleFileChange.bind(this)),this._watcher.on("add",this._handleFileAdd.bind(this)),this._watcher.on("unlink",this._handleFileDelete.bind(this)),this._watcher.on("error",this._handleWatchError.bind(this)))}async _handleFileChange(i){let s=(0,f.basename)(i);this._isValidFile(s)&&await this._loadFile(s,!1)}async _handleFileAdd(i){let s=(0,f.basename)(i);this._isValidFile(s)&&await this._loadFile(s,!1)}_handleFileDelete(i){let s=(0,f.basename)(i),e=this._getKey(s);this._map.has(e)&&this._map.delete(e)}_handleWatchError(i){}_loadAllFiles(){if(this._path===null||!(0,g.existsSync)(this._path))return;let s=(0,g.readdirSync)(this._path,{encoding:"utf8"}).filter(e=>this._isValidFile(e));for(let e of s)this._loadFile(e,!0)}async _loadFile(i,s=!0){if(this._path===null)return;let e=(0,f.join)(this._path,i),t=this._getKey(i),o=s?(0,g.readFileSync)(e,{encoding:"utf8"}):await(0,w.readFile)(e,{encoding:"utf8"});this.compile(t,o)}_isValidFile(i){let s=(0,f.extname)(i).toLowerCase();return this._supportedExtensions.has(s)}_getKey(i){return i.replace(/\.[^/.]+$/,"")}compile(i,s,e){let t=this._map.get(i),o=t||{},n=!1;(e===void 0||e?.message===!1||t?.message===void 0)&&(o.message=P.compileMessages(s),n=!0),(e===void 0||e?.keyboard===!1||t?.keyboard===void 0)&&(o.keyboard=P.compileKeyboards(s),n=!0),n&&this._map.set(i,o)}getMessage(i,s="default",e="en",t){let n=this._map.get(i)?.message?.[s]?.[this._forceLanguage||e];if(!n)return"";try{return n(t)}catch{return""}}getKeyboard(i,s="default",e="en",t="inline",o){let a=this._map.get(i)?.keyboard?.[s]?.[this._forceLanguage||e]?.[t];if(!a)return[];try{return a(o)}catch{return[]}}setMessage(i,s){this.compile(i,s,{keyboard:!0})}setKeyboard(i,s){this.compile(i,s,{message:!0})}async write(i,s){if(this._path===null)return;let e=(0,f.join)(this._path,i);await(0,w.mkdir)(this._path,{recursive:!0}),(0,g.writeFileSync)(e,s,{encoding:"utf8"}),await this._loadFile(i,!1)}getAvailable(){return Array.from(this._map.keys())}has(i){return this._map.has(i)}getCacheStats(){return{templateCount:this._map.size,totalSize:JSON.stringify(this._map.entries().toArray(),(i,s)=>typeof s=="function"?s.toString():s).length}}async destroy(){this._watcher&&await this._watcher.close(),this._map.clear()}};var A=require("grammy");var I=class{static{c(this,"Gramstax")}templateManager;cacheKeyboard;cacheSession;pages=this.pageLoads();log;bot;constructor(i){this.log=i.log||new G.LoggingPretty,this.cacheSession=i.cacheSession||new T("memory","session"),this.cacheKeyboard=i.cacheKeyboard||new Map,this.templateManager=i.templateManager||new V({path:null}),this.bot=new A.Bot(i.token),this.bot.catch(this.onCatch),this.bot.on("callback_query:data",this.onCallbackQueryData.bind(this)),this.bot.on("message:text",this.onMessageText.bind(this)),this.bot.on("message:photo",this.onMessagePhoto.bind(this)),this.bot.on("message:video",this.onMessageVideo.bind(this)),this.bot.on("message:audio",this.onMessageAudio.bind(this)),this.bot.on("message:document",this.onMessageDocument.bind(this)),this.bot.on("message:animation",this.onMessageAnimation.bind(this)),this.bot.on("message:voice",this.onMessageVoice.bind(this)),this.bot.on("message:video_note",this.onMessageVideoNote.bind(this)),this.bot.on("message:sticker",this.onMessageSticker.bind(this)),this.bot.on("message:location",this.onMessageLocation.bind(this)),this.bot.on("message:contact",this.onMessageContact.bind(this)),process.once("SIGINT",()=>this.bot.stop()),process.once("SIGTERM",()=>this.bot.stop()),i.deploy.startsWith("polling")?this.runPolling():i.deploy.startsWith("webhook")&&this.runWebhook(i.deploy.split("webhook:")[1])}onCatch(i){this.log.error(`[Bot.catch]: ${String(i)}`)}onStart(i,s,e){let{username:t}=i;s=="polling"?this.log.success(`Telegram bot polling started: ${t}`):this.log.success(`Telegram bot webhook started: ${t} (${e})`)}initCtx(i){return new S(i,this.templateManager,this.cacheSession,this.cacheKeyboard)}async runPolling(){this.bot.start({onStart:c(async i=>{this.onStart(i,"polling",null)},"onStart")})}async runWebhook(i){let s=(0,A.webhookCallback)(this.bot,"bun"),e="/telegram-webhook";(0,Q.serve)({fetch(a){let{pathname:r}=new URL(a.url);if(r===e)return a.method==="POST"?s(a):new Response("OK",{status:200});if(r==="/"&&a.method==="GET"){let l=new Date().toISOString();return new Response(JSON.stringify({timestamp:l}),{status:200,headers:{"Content-Type":"application/json"}})}return new Response("Not found",{status:404})}});let t=await this.bot.api.getWebhookInfo(),o=i.endsWith("/")?i.slice(0,-1)+e:i+e;t.url!=o&&await this.bot.api.setWebhook(o);let n=await this.bot.api.getMe();this.onStart(n,"webhook",o)}pageCompile(i,s=!0){i?.template!==void 0?(this.templateManager.compile(i.data.name,i.template),s&&(i.template=void 0)):i.template=void 0}pageBuildData(i,s){i?.data===void 0&&(i.data=i.buildData()),i.data.name=(0,v.parse)(s).name}pageSorts(i,s){let e=i.data.name,t=i.prototype,o="Payload",n="Command",a="Caption",r="Free",l=s.dynamic,d=s.dynamicSpesific,p=c(h=>h.charAt(0).toUpperCase()+h.slice(1),"upFirst"),C=c(h=>h.replace(o,"").replace(n,"").replace(a,"").replace(r,""),"getPureFuncName"),m=c((h,b)=>t[`buildSessionMethod${p(h)}`](b),"buildSessionMethod");s.all[e]=i;for(let h=0;h<s.lenListFuncStaticSession;h++){let b=s.listFuncStaticSession[h],M=s.static[b],U=s.staticIntent[b],K=s.staticSession[b],D={name:e,func:b},$=M||U;if($!==void 0){let H=b.includes(n)?`/${e}`:e;$[t.buildIntent(H,b.startsWith("callback"))]=D}K!==void 0&&(K[m(b,e)]=D),b.toLowerCase().endsWith("free")&&d[C(b)].push(D)}t.free&&l.push(e)}pageLoads(){this.log.info("Load pages..");let i=(0,v.join)(process.cwd(),"src","pages"),s=(0,z.readdirSync)(i),e={},t=e,o=e,n=[],a=["callback","text","textCommand","photoCaption","photoCaptionCommand","videoCaption","videoCaptionCommand","audioCaption","audioCaptionCommand","documentCaption","documentCaptionCommand","animationCaption","animationCaptionCommand","voiceCaption","voiceCaptionCommand","videoNoteCaption","videoNoteCaptionCommand"],r=["callbackPayload","textPayload","textCommandPayload","photoCaptionPayload","photoCaptionCommandPayload","videoCaptionPayload","videoCaptionCommandPayload","audioCaptionPayload","audioCaptionCommandPayload","documentCaptionPayload","documentCaptionCommandPayload","animationCaptionPayload","animationCaptionCommandPayload","voiceCaptionPayload","voiceCaptionCommandPayload","videoNoteCaptionPayload","videoNoteCaptionCommandPayload"],l=[...a,...r,"textFree","photoFree","videoFree","audioFree","documentFree","animationFree","voiceFree","videoNoteFree","stickerFree","locationFree","contactFree"],d=c((C,m)=>Object.fromEntries(C.map(h=>[h,{...m}])),"makeObject"),p={all:{},dynamic:[],dynamicSpesific:{text:n,photo:n,video:n,audio:n,document:n,animation:n,voice:n,videoNote:n,sticker:n,location:n,contact:n},static:d(a,e),staticIntent:d(r,t),staticSession:d(l,o),listFuncStatic:a,listFuncStaticIntent:r,listFuncStaticSession:l,lenListFuncStatic:a.length,lenListFuncStaticIntent:r.length,lenListFuncStaticSession:l.length};for(let C of s){let m=(0,v.join)(i,C),h=require(m),M=Object.values(h)[0];if(M===void 0)throw`file ${(0,v.parse)(m).name} must have export (not default) class page`;this.pageBuildData(M,m),this.pageCompile(M),this.pageSorts(M,p)}return this.log.info(`Finish load pages with total (${Object.keys(p.all).length})`),p}async pageRoutes(i,s){let e,t;if(e===void 0){let n=i.callbackData,a=i.msgText,r=i.msgCaption,l=this.pages.static;for(let d=0;d<this.pages.lenListFuncStatic;d++){let p=this.pages.listFuncStatic[d];if(t=l[p][n||a||r],t)break}t!==void 0&&(e=this.pages.all[t.name])}if(e===void 0){let n=await i.sessionGet();if(n){let a=n.method,r=this.pages.staticSession;for(let l=0;l<this.pages.lenListFuncStaticSession;l++){let d=this.pages.listFuncStaticSession[l];if(t=r[d][a],t)break}t!==void 0&&(e=this.pages.all[t.name])}}if(e===void 0){let n=i.callbackDataIntent,a=i.msgTextIntent,r=i.msgCaptionIntent,l=this.pages.staticIntent;for(let d=0;d<this.pages.lenListFuncStaticIntent;d++){let p=this.pages.listFuncStaticIntent[d];if(t=l[p][n||a||r],t)break}t!==void 0&&(e=this.pages.all[t.name])}if(e!==void 0&&t!==void 0)return await new e(i)[t.func]?.();let o=this.pages.dynamicSpesific[s]||[];for(let n=0;n<o.length;n++){let a=o[n];if(a===void 0)continue;let r=this.pages.all[a.func];if(r===void 0)continue;let d=await new r(i)[a.name]?.();if(d!==null)return d}for(let n=0;n<this.pages.dynamic.length;n++){let a=this.pages.dynamic[n];if(a===void 0)continue;let r=this.pages.all[a];if(r===void 0)continue;let d=await new r(i).free?.();if(d!==null)return d}return null}async hookBeforeRoute(i,s){return!0}async hookErrorPage(i,s,e,t){}async hookErrorInputNotFoundPage(i){}async onMessage(i,s){let e=this.initCtx(i);try{if(await this.hookBeforeRoute(e,s)===!1)return;await this.pageRoutes(e,s)===null&&await this.hookErrorInputNotFoundPage(e)}catch(t){await this.hookErrorPage(e,s,t,!1)}}async onCallbackQueryData(i){let s=this.initCtx(i);try{if(await s.callbackQueryAnswer(),await this.hookBeforeRoute(s,"onCallbackQueryData")===!1)return;await this.pageRoutes(s,"callback")}catch(e){await this.hookErrorPage(s,"onCallbackQueryData",e,!0)}}async onMessageText(i){await this.onMessage(i,"onMessageText")}async onMessagePhoto(i){await this.onMessage(i,"onMessagePhoto")}async onMessageVideo(i){await this.onMessage(i,"onMessageVideo")}async onMessageAudio(i){await this.onMessage(i,"onMessageAudio")}async onMessageDocument(i){await this.onMessage(i,"onMessageDocument")}async onMessageAnimation(i){await this.onMessage(i,"onMessageAnimation")}async onMessageVoice(i){await this.onMessage(i,"onMessageVoice")}async onMessageVideoNote(i){await this.onMessage(i,"onMessageVideoNote")}async onMessageSticker(i){await this.onMessage(i,"onMessageSticker")}async onMessageLocation(i){await this.onMessage(i,"onMessageLocation")}async onMessageContact(i){await this.onMessage(i,"onMessageContact")}};0&&(module.exports={BaseGeneral,BaseGuard,BasePage,CacheExternal,Ctx,Gramstax,TemplateEngine,TemplateManager});
1
+ "use strict";var J=Object.create;var F=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var Y=Object.getPrototypeOf,Z=Object.prototype.hasOwnProperty;var c=(u,i)=>F(u,"name",{value:i,configurable:!0});var ii=(u,i)=>{for(var s in i)F(u,s,{get:i[s],enumerable:!0})},_=(u,i,s,e)=>{if(i&&typeof i=="object"||typeof i=="function")for(let t of X(i))!Z.call(u,t)&&t!==s&&F(u,t,{get:()=>i[t],enumerable:!(e=q(i,t))||e.enumerable});return u},L=(u,i,s)=>(_(u,i,"default"),s&&_(s,i,"default")),R=(u,i,s)=>(s=u!=null?J(Y(u)):{},_(i||!u||!u.__esModule?F(s,"default",{value:u,enumerable:!0}):s,u)),si=u=>_(F({},"__esModule",{value:!0}),u);var ei={};ii(ei,{BaseGeneral:()=>x,BaseGuard:()=>I,BasePage:()=>k,CacheExternal:()=>T,Ctx:()=>S,Gramstax:()=>K,TemplateEngine:()=>P,TemplateManager:()=>V});module.exports=si(ei);var E=R(require("logging-pretty"),1);var x=class{static{c(this,"BaseGeneral")}static log=new E.default;static logError(i,s){this.log.error(`[${this.toString().match(/class\s+([^\s{]+)/)?.[1]}:${s}]: ${String(i)}`)}logError(i,s,e){this.constructor.log.error(`[${s||this.constructor.name}:${e}] ${String(i)}`)}};var O=require("timers/promises");var S=class extends x{constructor(s,e,t,o){super();this.ct=s;this.templateManager=e;this.cacheSession=t;this.cacheKeyboard=o}static{c(this,"Ctx")}data=this.constructor.data;get isPremium(){return this.ct.from?.is_premium??!1}get isBot(){return this.ct.from?.is_bot??!1}get userid(){return this.ct.from?.id}get username(){return this.ct.from?.username}get fullname(){return`${this.ct.from?.first_name||""}${this.ct.from?.last_name||""}`}get firstname(){return this.ct.from?.first_name}get lastname(){return this.ct.from?.last_name}get msgText(){return this.ct.message?.text}get msgTextIntent(){return this.msgText&&this.msgText.indexOf(" ")!=-1?this.msgText.split(" ")[0]:""}get msgTextPayloads(){return this.msgText&&this.msgText.indexOf(" ")!=-1?this.msgText.split(" ").slice(1):[]}get msgTextPayload(){return this.msgTextPayloads[0]}get msgCaption(){return this.ct.message?.caption}get msgCaptionIntent(){return this.msgCaption&&this.msgCaption.indexOf(" ")!=-1?this.msgCaption.split(" ")[0]:""}get msgPhoto(){return this.ct.message?.photo}get msgVideo(){return this.ct.message?.video}get msgAudio(){return this.ct.message?.audio}get callbackData(){return this.ct.callbackQuery?.data}get callbackDataIntent(){return this.callbackData&&this.callbackData.indexOf(":")!=-1?this.callbackData.split(":")[0]:""}get callbackDataPayloads(){return this.callbackData&&this.callbackData.indexOf(":")!=-1?this.callbackData.split(":").slice(1):[]}get callbackDataPayload(){return this.callbackDataPayloads?.[0]}get callbackDataParts(){return this.callbackDataPayload&&this.callbackDataPayload.indexOf("+")!=-1?this.callbackDataPayload.split("+"):[]}get languageCode(){return this.ct.from?.language_code}set languageCode(s){this.ct.from.language_code=s}session={};async broadcast(s,e,t,o,n,a){let l=e.map(d=>this.templateManager.getMessage(this.data.name,n,d,o));for(let d=0;d<s.length;d++){let p=s[d],C=l[d];await this.ct.api.sendMessage(p,C,{parse_mode:"HTML",reply_markup:t,...a}),d+1==30&&await(0,O.setTimeout)(1200)}}async reply(s,e,t,o){let n=this.templateManager.getMessage(this.data.name,t,this.languageCode,e);return await this.ct.reply(n,{parse_mode:"HTML",reply_markup:s,...o})}async replyAction(s){return await this.ct.replyWithChatAction(s)}async edit(s,e,t,o){try{let n=this.templateManager.getMessage(this.data.name,t,this.languageCode,e);return await this.ct.editMessageText(n,{parse_mode:"HTML",reply_markup:s,...o})}catch{await this.reply(s,e,t,o)}}async delete(){return await this.ct.deleteMessage()}async callbackQueryAnswer(s){try{return await this.ct.answerCallbackQuery(s)}catch{return null}}async sessionSet(s,e,...t){try{let o={method:s,params:e,...t},n=await this.cacheSession.set(`${this.userid}`,{method:s,params:e,...t});return n&&(this.session=o),n}catch{return null}}async sessionGet(){try{let s=await this.cacheSession.get(`${this.userid}`);return s&&(this.session=s),s||null}catch{return null}}async sessionClear(){try{let s=await this.cacheSession.delete(`${this.userid}`);return s&&(this.session={}),s}catch{return null}}};var y={};L(y,require("grammy"));var k=class extends S{static{c(this,"BasePage")}static template;static data;ctx;constructor(i){super(i.ct,i.templateManager,i.cacheSession,i.cacheKeyboard),this.session=i?.ctx?.session||i.session,this.ctx=i?.ctx||i}static buildData(i){return{name:"",callbackData:i?function(...s){let e=i(...s);return`${this.name}${e===void 0?"":`:${e}`}`}:function(){return this?.name}}}buildInlineKeyboard(i,s){let e=this.data.name;if(s?.cache===!0){let a=`${e}:${this.languageCode}:inline`,r=this.cacheKeyboard.get(a);if(!r){let l=new y.InlineKeyboard,d=this.templateManager.getKeyboard(e,s?.baseId,this.languageCode,"inline",s?.data),p=i(l,d);return this.cacheKeyboard.set(a,p),p}return r}let t=new y.InlineKeyboard,o=this.templateManager.getKeyboard(e,s?.baseId,this.languageCode,"inline",s?.data);return i(t,o)}buildKeyboard(i,s){let e=this.data.name;if(s?.cache===!0){let a=`${e}:${this.languageCode}:default`,r=this.cacheKeyboard.get(a);if(!r){let l=new y.Keyboard,d=this.templateManager.getKeyboard(e,s?.baseId,this.languageCode,"default",s?.data),p=i(l,d);return p.resized(!0),this.cacheKeyboard.set(a,p),p}return r}let t=new y.Keyboard,o=this.templateManager.getKeyboard(e,s?.baseId,this.languageCode,"default",s?.data),n=i(t,o);return n.resized(),n}validateSessionCallback(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodCallback(s)}validateSessionCallbackPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodCallbackPayload(s)}validateSessionText(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodText(s)}validateSessionTextPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodTextPayload(s)}validateSessionTextCommand(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodTextCommand(s)}validateSessionTextCommandPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodTextCommandPayload(s)}validateSessionTextFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodTextFree(s)}validateSessionPhotoCaption(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodPhotoCaption(s)}validateSessionPhotoCaptionPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodPhotoCaptionPayload(s)}validateSessionPhotoCaptionCommand(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodPhotoCaptionCommand(s)}validateSessionPhotoCaptionCommandPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodPhotoCaptionCommandPayload(s)}validateSessionPhotoFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodPhotoFree(s)}validateSessionVideoCaption(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoCaption(s)}validateSessionVideoCaptionPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoCaptionPayload(s)}validateSessionVideoCaptionCommand(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoCaptionCommand(s)}validateSessionVideoCaptionCommandPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoCaptionCommandPayload(s)}validateSessionVideoFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoFree(s)}validateSessionAudioCaption(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAudioCaption(s)}validateSessionAudioCaptionPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAudioCaptionPayload(s)}validateSessionAudioCaptionCommand(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAudioCaptionCommand(s)}validateSessionAudioCaptionCommandPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAudioCaptionCommandPayload(s)}validateSessionAudioFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAudioFree(s)}validateSessionDocumentCaption(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodDocumentCaption(s)}validateSessionDocumentCaptionPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodDocumentCaptionPayload(s)}validateSessionDocumentCaptionCommand(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodDocumentCaptionCommand(s)}validateSessionDocumentCaptionCommandPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodDocumentCaptionCommandPayload(s)}validateSessionDocumentFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodDocumentFree(s)}validateSessionAnimationCaption(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAnimationCaption(s)}validateSessionAnimationCaptionPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAnimationCaptionPayload(s)}validateSessionAnimationCaptionCommand(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAnimationCaptionCommand(s)}validateSessionAnimationCaptionCommandPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAnimationCaptionCommandPayload(s)}validateSessionAnimationFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodAnimationFree(s)}validateSessionVoiceCaption(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVoiceCaption(s)}validateSessionVoiceCaptionPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVoiceCaptionPayload(s)}validateSessionVoiceCaptionCommand(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVoiceCaptionCommand(s)}validateSessionVoiceCaptionCommandPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVoiceCaptionCommandPayload(s)}validateSessionVoiceFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVoiceFree(s)}validateSessionVideoNoteCaption(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoNoteCaption(s)}validateSessionVideoNoteCaptionPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoNoteCaptionPayload(s)}validateSessionVideoNoteCaptionCommand(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoNoteCaptionCommand(s)}validateSessionVideoNoteCaptionCommandPayload(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoNoteCaptionCommandPayload(s)}validateSessionVideoNoteFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodVideoNoteFree(s)}validateSessionStickerFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodStickerFree(s)}validateSessionLocationFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodLocationFree(s)}validateSessionContactFree(i,s){return i===void 0&&(i=this.session.method),i===void 0?!1:i===this.buildSessionMethodContactFree(s)}sessionCallback(i,s){return this.sessionSet(this.buildSessionMethodCallback(s),i)}sessionCallbackPayload(i,s){return this.sessionSet(this.buildSessionMethodCallbackPayload(s),i)}sessionText(i,s){return this.sessionSet(this.buildSessionMethodText(s),i)}sessionTextPayload(i,s){return this.sessionSet(this.buildSessionMethodTextPayload(s),i)}sessionTextCommand(i,s){return this.sessionSet(this.buildSessionMethodTextCommand(s),i)}sessionTextCommandPayload(i,s){return this.sessionSet(this.buildSessionMethodTextCommandPayload(s),i)}sessionTextFree(i,s){return this.sessionSet(this.buildSessionMethodTextFree(s),i)}sessionPhotoCaption(i,s){return this.sessionSet(this.buildSessionMethodPhotoCaption(s),i)}sessionPhotoCaptionPayload(i,s){return this.sessionSet(this.buildSessionMethodPhotoCaptionPayload(s),i)}sessionPhotoCaptionCommand(i,s){return this.sessionSet(this.buildSessionMethodPhotoCaptionCommand(s),i)}sessionPhotoCaptionCommandPayload(i,s){return this.sessionSet(this.buildSessionMethodPhotoCaptionCommandPayload(s),i)}sessionPhotoFree(i,s){return this.sessionSet(this.buildSessionMethodPhotoFree(s),i)}sessionVideoCaption(i,s){return this.sessionSet(this.buildSessionMethodVideoCaption(s),i)}sessionVideoCaptionPayload(i,s){return this.sessionSet(this.buildSessionMethodVideoCaptionPayload(s),i)}sessionVideoCaptionCommand(i,s){return this.sessionSet(this.buildSessionMethodVideoCaptionCommand(s),i)}sessionVideoCaptionCommandPayload(i,s){return this.sessionSet(this.buildSessionMethodVideoCaptionCommandPayload(s),i)}sessionVideoFree(i,s){return this.sessionSet(this.buildSessionMethodVideoFree(s),i)}sessionAudioCaption(i,s){return this.sessionSet(this.buildSessionMethodAudioCaption(s),i)}sessionAudioCaptionPayload(i,s){return this.sessionSet(this.buildSessionMethodAudioCaptionPayload(s),i)}sessionAudioCaptionCommand(i,s){return this.sessionSet(this.buildSessionMethodAudioCaptionCommand(s),i)}sessionAudioCaptionCommandPayload(i,s){return this.sessionSet(this.buildSessionMethodAudioCaptionCommandPayload(s),i)}sessionAudioFree(i,s){return this.sessionSet(this.buildSessionMethodAudioFree(s),i)}sessionDocumentCaption(i,s){return this.sessionSet(this.buildSessionMethodDocumentCaption(s),i)}sessionDocumentCaptionPayload(i,s){return this.sessionSet(this.buildSessionMethodDocumentCaptionPayload(s),i)}sessionDocumentCaptionCommand(i,s){return this.sessionSet(this.buildSessionMethodDocumentCaptionCommand(s),i)}sessionDocumentCaptionCommandPayload(i,s){return this.sessionSet(this.buildSessionMethodDocumentCaptionCommandPayload(s),i)}sessionDocumentFree(i,s){return this.sessionSet(this.buildSessionMethodDocumentFree(s),i)}sessionAnimationCaption(i,s){return this.sessionSet(this.buildSessionMethodAnimationCaption(s),i)}sessionAnimationCaptionPayload(i,s){return this.sessionSet(this.buildSessionMethodAnimationCaptionPayload(s),i)}sessionAnimationCaptionCommand(i,s){return this.sessionSet(this.buildSessionMethodAnimationCaptionCommand(s),i)}sessionAnimationCaptionCommandPayload(i,s){return this.sessionSet(this.buildSessionMethodAnimationCaptionCommandPayload(s),i)}sessionAnimationFree(i,s){return this.sessionSet(this.buildSessionMethodAnimationFree(s),i)}sessionVoiceCaption(i,s){return this.sessionSet(this.buildSessionMethodVoiceCaption(s),i)}sessionVoiceCaptionPayload(i,s){return this.sessionSet(this.buildSessionMethodVoiceCaptionPayload(s),i)}sessionVoiceCaptionCommand(i,s){return this.sessionSet(this.buildSessionMethodVoiceCaptionCommand(s),i)}sessionVoiceCaptionCommandPayload(i,s){return this.sessionSet(this.buildSessionMethodVoiceCaptionCommandPayload(s),i)}sessionVoiceFree(i,s){return this.sessionSet(this.buildSessionMethodVoiceFree(s),i)}sessionVideoNoteCaption(i,s){return this.sessionSet(this.buildSessionMethodVideoNoteCaption(s),i)}sessionVideoNoteCaptionPayload(i,s){return this.sessionSet(this.buildSessionMethodVideoNoteCaptionPayload(s),i)}sessionVideoNoteCaptionCommand(i,s){return this.sessionSet(this.buildSessionMethodVideoNoteCaptionCommand(s),i)}sessionVideoNoteCaptionCommandPayload(i,s){return this.sessionSet(this.buildSessionMethodVideoNoteCaptionCommandPayload(s),i)}sessionVideoNoteFree(i,s){return this.sessionSet(this.buildSessionMethodVideoNoteFree(s),i)}sessionStickerFree(i,s){return this.sessionSet(this.buildSessionMethodStickerFree(s),i)}sessionLocationFree(i,s){return this.sessionSet(this.buildSessionMethodLocationFree(s),i)}sessionContactFree(i,s){return this.sessionSet(this.buildSessionMethodContactFree(s),i)}sessionToCallback(i,s){return this.sessionCallback({...this.session.params,...i},s)}sessionToCallbackPayload(i,s){return this.sessionCallbackPayload({...this.session.params,...i},s)}sessionToText(i,s){return this.sessionText({...this.session.params,...i},s)}sessionToTextPayload(i,s){return this.sessionTextPayload({...this.session.params,...i},s)}sessionToTextCommand(i,s){return this.sessionTextCommand({...this.session.params,...i},s)}sessionToTextCommandPayload(i,s){return this.sessionTextCommandPayload({...this.session.params,...i},s)}sessionToTextFree(i,s){return this.sessionTextFree({...this.session.params,...i},s)}sessionToPhotoCaption(i,s){return this.sessionPhotoCaption({...this.session.params,...i},s)}sessionToPhotoCaptionPayload(i,s){return this.sessionPhotoCaptionPayload({...this.session.params,...i},s)}sessionToPhotoCaptionCommand(i,s){return this.sessionPhotoCaptionCommand({...this.session.params,...i},s)}sessionToPhotoCaptionCommandPayload(i,s){return this.sessionPhotoCaptionCommandPayload({...this.session.params,...i},s)}sessionToPhotoFree(i,s){return this.sessionPhotoFree({...this.session.params,...i},s)}sessionToVideoCaption(i,s){return this.sessionVideoCaption({...this.session.params,...i},s)}sessionToVideoCaptionPayload(i,s){return this.sessionVideoCaptionPayload({...this.session.params,...i},s)}sessionToVideoCaptionCommand(i,s){return this.sessionVideoCaptionCommand({...this.session.params,...i},s)}sessionToVideoCaptionCommandPayload(i,s){return this.sessionVideoCaptionCommandPayload({...this.session.params,...i},s)}sessionToVideoFree(i,s){return this.sessionVideoFree({...this.session.params,...i},s)}sessionToAudioCaption(i,s){return this.sessionAudioCaption({...this.session.params,...i},s)}sessionToAudioCaptionPayload(i,s){return this.sessionAudioCaptionPayload({...this.session.params,...i},s)}sessionToAudioCaptionCommand(i,s){return this.sessionAudioCaptionCommand({...this.session.params,...i},s)}sessionToAudioCaptionCommandPayload(i,s){return this.sessionAudioCaptionCommandPayload({...this.session.params,...i},s)}sessionToAudioFree(i,s){return this.sessionAudioFree({...this.session.params,...i},s)}sessionToDocumentCaption(i,s){return this.sessionDocumentCaption({...this.session.params,...i},s)}sessionToDocumentCaptionPayload(i,s){return this.sessionDocumentCaptionPayload({...this.session.params,...i},s)}sessionToDocumentCaptionCommand(i,s){return this.sessionDocumentCaptionCommand({...this.session.params,...i},s)}sessionToDocumentCaptionCommandPayload(i,s){return this.sessionDocumentCaptionCommandPayload({...this.session.params,...i},s)}sessionToDocumentFree(i,s){return this.sessionDocumentFree({...this.session.params,...i},s)}sessionToAnimationCaption(i,s){return this.sessionAnimationCaption({...this.session.params,...i},s)}sessionToAnimationCaptionPayload(i,s){return this.sessionAnimationCaptionPayload({...this.session.params,...i},s)}sessionToAnimationCaptionCommand(i,s){return this.sessionAnimationCaptionCommand({...this.session.params,...i},s)}sessionToAnimationCaptionCommandPayload(i,s){return this.sessionAnimationCaptionCommandPayload({...this.session.params,...i},s)}sessionToAnimationFree(i,s){return this.sessionAnimationFree({...this.session.params,...i},s)}sessionToVoiceCaption(i,s){return this.sessionVoiceCaption({...this.session.params,...i},s)}sessionToVoiceCaptionPayload(i,s){return this.sessionVoiceCaptionPayload({...this.session.params,...i},s)}sessionToVoiceCaptionCommand(i,s){return this.sessionVoiceCaptionCommand({...this.session.params,...i},s)}sessionToVoiceCaptionCommandPayload(i,s){return this.sessionVoiceCaptionCommandPayload({...this.session.params,...i},s)}sessionToVoiceFree(i,s){return this.sessionVoiceFree({...this.session.params,...i},s)}sessionToVideoNoteCaption(i,s){return this.sessionVideoNoteCaption({...this.session.params,...i},s)}sessionToVideoNoteCaptionPayload(i,s){return this.sessionVideoNoteCaptionPayload({...this.session.params,...i},s)}sessionToVideoNoteCaptionCommand(i,s){return this.sessionVideoNoteCaptionCommand({...this.session.params,...i},s)}sessionToVideoNoteCaptionCommandPayload(i,s){return this.sessionVideoNoteCaptionCommandPayload({...this.session.params,...i},s)}sessionToVideoNoteFree(i,s){return this.sessionVideoNoteFree({...this.session.params,...i},s)}sessionToStickerFree(i,s){return this.sessionStickerFree({...this.session.params,...i},s)}sessionToLocationFree(i,s){return this.sessionLocationFree({...this.session.params,...i},s)}sessionToContactFree(i,s){return this.sessionContactFree({...this.session.params,...i},s)}buildIntent(i,s=!0){i||(i=s?this.data.callbackData():this.data.name);let e=s?":":" ";return i?.indexOf?.(e)!=-1?i?.split?.(e)?.[0]:i}buildSessionMethod(i,s){return`${i}-${s||this.data.name}`}buildSessionMethodCallback(i){return this.buildSessionMethod("1",i)}buildSessionMethodCallbackPayload(i){return this.buildSessionMethod("2",i)}buildSessionMethodText(i){return this.buildSessionMethod("3",i)}buildSessionMethodTextPayload(i){return this.buildSessionMethod("4",i)}buildSessionMethodTextCommand(i){return this.buildSessionMethod("5",i)}buildSessionMethodTextCommandPayload(i){return this.buildSessionMethod("6",i)}buildSessionMethodTextFree(i){return this.buildSessionMethod("7",i)}buildSessionMethodPhotoCaption(i){return this.buildSessionMethod("8",i)}buildSessionMethodPhotoCaptionPayload(i){return this.buildSessionMethod("9",i)}buildSessionMethodPhotoCaptionCommand(i){return this.buildSessionMethod("10",i)}buildSessionMethodPhotoCaptionCommandPayload(i){return this.buildSessionMethod("11",i)}buildSessionMethodPhotoFree(i){return this.buildSessionMethod("12",i)}buildSessionMethodVideoCaption(i){return this.buildSessionMethod("13",i)}buildSessionMethodVideoCaptionPayload(i){return this.buildSessionMethod("14",i)}buildSessionMethodVideoCaptionCommand(i){return this.buildSessionMethod("15",i)}buildSessionMethodVideoCaptionCommandPayload(i){return this.buildSessionMethod("16",i)}buildSessionMethodVideoFree(i){return this.buildSessionMethod("17",i)}buildSessionMethodAudioCaption(i){return this.buildSessionMethod("18",i)}buildSessionMethodAudioCaptionPayload(i){return this.buildSessionMethod("19",i)}buildSessionMethodAudioCaptionCommand(i){return this.buildSessionMethod("20",i)}buildSessionMethodAudioCaptionCommandPayload(i){return this.buildSessionMethod("21",i)}buildSessionMethodAudioFree(i){return this.buildSessionMethod("22",i)}buildSessionMethodDocumentCaption(i){return this.buildSessionMethod("23",i)}buildSessionMethodDocumentCaptionPayload(i){return this.buildSessionMethod("24",i)}buildSessionMethodDocumentCaptionCommand(i){return this.buildSessionMethod("25",i)}buildSessionMethodDocumentCaptionCommandPayload(i){return this.buildSessionMethod("26",i)}buildSessionMethodDocumentFree(i){return this.buildSessionMethod("27",i)}buildSessionMethodAnimationCaption(i){return this.buildSessionMethod("28",i)}buildSessionMethodAnimationCaptionPayload(i){return this.buildSessionMethod("29",i)}buildSessionMethodAnimationCaptionCommand(i){return this.buildSessionMethod("30",i)}buildSessionMethodAnimationCaptionCommandPayload(i){return this.buildSessionMethod("31",i)}buildSessionMethodAnimationFree(i){return this.buildSessionMethod("32",i)}buildSessionMethodVoiceCaption(i){return this.buildSessionMethod("33",i)}buildSessionMethodVoiceCaptionPayload(i){return this.buildSessionMethod("34",i)}buildSessionMethodVoiceCaptionCommand(i){return this.buildSessionMethod("35",i)}buildSessionMethodVoiceCaptionCommandPayload(i){return this.buildSessionMethod("36",i)}buildSessionMethodVoiceFree(i){return this.buildSessionMethod("37",i)}buildSessionMethodVideoNoteCaption(i){return this.buildSessionMethod("38",i)}buildSessionMethodVideoNoteCaptionPayload(i){return this.buildSessionMethod("39",i)}buildSessionMethodVideoNoteCaptionCommand(i){return this.buildSessionMethod("40",i)}buildSessionMethodVideoNoteCaptionCommandPayload(i){return this.buildSessionMethod("41",i)}buildSessionMethodVideoNoteFree(i){return this.buildSessionMethod("42",i)}buildSessionMethodStickerFree(i){return this.buildSessionMethod("43",i)}buildSessionMethodLocationFree(i){return this.buildSessionMethod("44",i)}buildSessionMethodContactFree(i){return this.buildSessionMethod("45",i)}};var I=class extends k{static{c(this,"BaseGuard")}pageData;constructor(i){super(i.ctx),this.pageData=i.data}};var W=require("keyv"),j=R(require("@keyv/redis"),1);var T=class extends W.Keyv{constructor(s="memory",e,t,o){let n;s.startsWith("redis")&&(n=new j.default(s)),s==="memory"&&(n=new Map),o?.forceStore&&(n=o.forceStore);super({store:n,namespace:e,ttl:t});this.url=s}static{c(this,"CacheExternal")}};var z=require("bun"),A=require("fs"),v=require("path");var G=require("logging-pretty");var P=class{static{c(this,"TemplateEngine")}static _escape(i){return i.replace(/\\/g,"\\\\").replace(/`/g,"\\`")}static _processVariables(i){return i.replace(/\{\{(\w+)\}\}/g,(s,e)=>`\${(data && data["${e}"]) ?? ""}`)}static _processBaseBlocks(i){let s=/<base\b[^>]*?(?:\sid=(["']?)([^"'\s>]+)\1)?[^>]*?>([\s\S]*?)<\/base>/g,e={};for(let t of i.matchAll(s)){let o=t[2]??"default",a=(t[3]??"").replace(/^[\t ]+/gm,"").replace(/^\n+/,"").replace(/\n+$/,"").trim();e[o]=a}return e}static _processScriptBlocks(i){return i.replace(/<script\b[^>]*>([\s\S]*?)<\/script>/gi,(s,e)=>{let t=e.trim();return t?`\${(() => { if (!data) return ''; try { with(data) { ${t} } } catch(e) { return '' } })()}`:""})}static _processSpaceBlocks(i){return i.replace(/^[ \t]*<space\s*\/>[ \t]*$/gim,"")}static _processDivBlocks(i){return i.replace(/<div>([\s\S]*?)<\/div>/gi,(s,e)=>e.replace(/^[\t ]+/gm,"").replace(/^\n+/,"").replace(/\n+$/,""))}static _processMessageBlocks(i){let s=/<message\s+lang="([^"]+)"\s*>([\s\S]*?)<\/message>/gi,e={};for(let[,t,o]of i.matchAll(s)){let n=o.replace(/^[\t ]+/gm,"").replace(/^\n+/,"").replace(/\n+$/,"").trim();e[t]=n}return e}static _processKeyboardBlocks(i){let s=/<keyboard\b[^>]*\blang="([^"]*)"[^>]*?(?:\sfor="([^"]*)")?[^>]*>([\s\S]*?)<\/keyboard>/gi,e={};for(let[,t,o,n]of i.matchAll(s)){let a=o==="default"?"default":"inline",r=n.trim();e[t]||(e[t]={}),e[t][a]=r}return e}static _compileToFunction(i,s){let e;s?e=i.map(n=>`\`${n}\``).join(","):e=`\`${i}\``;let t=e;if(t=this._processScriptBlocks(this._processDivBlocks(this._processSpaceBlocks(t))),s){let o=`return [${t}]`;return new Function("data",o)}else{let o=`return ${t}`;return new Function("data",o)}}static compileMessages(i){let s=this._processBaseBlocks(i),e={};for(let[t,o]of Object.entries(s)){let n=this._processMessageBlocks(o);e[t]={};for(let[a,r]of Object.entries(n)){let l=this._processVariables(this._processScriptBlocks(r));e[t][a]=this._compileToFunction(l,!1)}}return e}static compileKeyboards(i){let s=this._processBaseBlocks(i),e={};for(let[t,o]of Object.entries(s)){let n=this._processKeyboardBlocks(o);e[t]={};for(let[a,r]of Object.entries(n)){e[t][a]={};for(let[l,d]of Object.entries(r)){let C=d.split(/(?<!\\),\s*/).map(m=>m.replace(/\\,/g,",").trim()).map(m=>this._processVariables(this._processScriptBlocks(m)));e[t][a][l]=this._compileToFunction(C,!0)}}}return e}};var w=require("fs/promises"),Q=require("chokidar"),f=require("path"),g=require("fs");var V=class{static{c(this,"TemplateManager")}_map=new Map;_engine=P;_watcher=null;_supportedExtensions=new Set([".html"]);_path;_forceLanguage;_isWatchEnabled;constructor(i={}){let{enableWatch:s=!1,path:e=null,forceLanguage:t=null}=i;this._path=e,this._forceLanguage=t,this._isWatchEnabled=s,this._validatePath(),this._initializeWatcher(),this._loadAllFiles()}_validatePath(){try{if(this._path===null||!(0,g.existsSync)(this._path))return;if(!(0,g.statSync)(this._path).isDirectory())throw new Error(`Template path is not a directory: ${this._path}`)}catch(i){throw new Error(`Failed to validate Template path: ${i}`)}}_initializeWatcher(){this._path===null||!this._isWatchEnabled||(this._watcher=(0,Q.watch)(this._path,{persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}}),this._watcher.on("change",this._handleFileChange.bind(this)),this._watcher.on("add",this._handleFileAdd.bind(this)),this._watcher.on("unlink",this._handleFileDelete.bind(this)),this._watcher.on("error",this._handleWatchError.bind(this)))}async _handleFileChange(i){let s=(0,f.basename)(i);this._isValidFile(s)&&await this._loadFile(s,!1)}async _handleFileAdd(i){let s=(0,f.basename)(i);this._isValidFile(s)&&await this._loadFile(s,!1)}_handleFileDelete(i){let s=(0,f.basename)(i),e=this._getKey(s);this._map.has(e)&&this._map.delete(e)}_handleWatchError(i){}_loadAllFiles(){if(this._path===null||!(0,g.existsSync)(this._path))return;let s=(0,g.readdirSync)(this._path,{encoding:"utf8"}).filter(e=>this._isValidFile(e));for(let e of s)this._loadFile(e,!0)}async _loadFile(i,s=!0){if(this._path===null)return;let e=(0,f.join)(this._path,i),t=this._getKey(i),o=s?(0,g.readFileSync)(e,{encoding:"utf8"}):await(0,w.readFile)(e,{encoding:"utf8"});this.compile(t,o)}_isValidFile(i){let s=(0,f.extname)(i).toLowerCase();return this._supportedExtensions.has(s)}_getKey(i){return i.replace(/\.[^/.]+$/,"")}compile(i,s,e){let t=this._map.get(i),o=t||{},n=!1;(e===void 0||e?.message===!1||t?.message===void 0)&&(o.message=P.compileMessages(s),n=!0),(e===void 0||e?.keyboard===!1||t?.keyboard===void 0)&&(o.keyboard=P.compileKeyboards(s),n=!0),n&&this._map.set(i,o)}getMessage(i,s="default",e="en",t){let n=this._map.get(i)?.message?.[s]?.[this._forceLanguage||e];if(!n)return"";try{return n(t)}catch{return""}}getKeyboard(i,s="default",e="en",t="inline",o){let a=this._map.get(i)?.keyboard?.[s]?.[this._forceLanguage||e]?.[t];if(!a)return[];try{return a(o)}catch{return[]}}setMessage(i,s){this.compile(i,s,{keyboard:!0})}setKeyboard(i,s){this.compile(i,s,{message:!0})}async write(i,s){if(this._path===null)return;let e=(0,f.join)(this._path,i);await(0,w.mkdir)(this._path,{recursive:!0}),(0,g.writeFileSync)(e,s,{encoding:"utf8"}),await this._loadFile(i,!1)}getAvailable(){return Array.from(this._map.keys())}has(i){return this._map.has(i)}getCacheStats(){return{templateCount:this._map.size,totalSize:JSON.stringify(this._map.entries().toArray(),(i,s)=>typeof s=="function"?s.toString():s).length}}async destroy(){this._watcher&&await this._watcher.close(),this._map.clear()}};var D=require("grammy");var K=class{static{c(this,"Gramstax")}templateManager;cacheKeyboard;cacheSession;log;bot;pages;constructor(i){this.log=i.log===null?void 0:i.log===void 0?new G.LoggingPretty:i.log,this.cacheSession=i.cacheSession||new T("memory","session"),this.cacheKeyboard=i.cacheKeyboard||new Map,this.templateManager=i.templateManager||new V({path:null}),this.bot=new D.Bot(i.token),this.bot.catch(this.onCatch),this.bot.on("callback_query:data",this.onCallbackQueryData.bind(this)),this.bot.on("message:text",this.onMessageText.bind(this)),this.bot.on("message:photo",this.onMessagePhoto.bind(this)),this.bot.on("message:video",this.onMessageVideo.bind(this)),this.bot.on("message:audio",this.onMessageAudio.bind(this)),this.bot.on("message:document",this.onMessageDocument.bind(this)),this.bot.on("message:animation",this.onMessageAnimation.bind(this)),this.bot.on("message:voice",this.onMessageVoice.bind(this)),this.bot.on("message:video_note",this.onMessageVideoNote.bind(this)),this.bot.on("message:sticker",this.onMessageSticker.bind(this)),this.bot.on("message:location",this.onMessageLocation.bind(this)),this.bot.on("message:contact",this.onMessageContact.bind(this)),this.pages=this.pageLoads(),process.once("SIGINT",()=>this.bot.stop()),process.once("SIGTERM",()=>this.bot.stop()),i.deploy.startsWith("polling")?this.runPolling():i.deploy.startsWith("webhook")&&this.runWebhook(i.deploy.split("webhook:")[1])}onCatch(i){this.log?.error?.(`[Bot.catch]: ${String(i)}`)}onStart(i,s,e){let{username:t}=i;s=="polling"?this.log?.success?.(`Telegram bot polling started: ${t}`):this.log?.success?.(`Telegram bot webhook started: ${t} (${e})`)}initCtx(i){return new S(i,this.templateManager,this.cacheSession,this.cacheKeyboard)}async runPolling(){this.bot.start({onStart:c(async i=>{this.onStart(i,"polling",null)},"onStart")})}async runWebhook(i){let s=(0,D.webhookCallback)(this.bot,"bun"),e="/telegram-webhook";(0,z.serve)({fetch(a){let{pathname:r}=new URL(a.url);if(r===e)return a.method==="POST"?s(a):new Response("OK",{status:200});if(r==="/"&&a.method==="GET"){let l=new Date().toISOString();return new Response(JSON.stringify({timestamp:l}),{status:200,headers:{"Content-Type":"application/json"}})}return new Response("Not found",{status:404})}});let t=await this.bot.api.getWebhookInfo(),o=i.endsWith("/")?i.slice(0,-1)+e:i+e;t.url!=o&&await this.bot.api.setWebhook(o);let n=await this.bot.api.getMe();this.onStart(n,"webhook",o)}pageCompile(i,s=!0){i?.template!==void 0?(this.templateManager.compile(i.data.name,i.template),s&&(i.template=void 0)):i.template=void 0}pageBuildData(i,s){i?.data===void 0&&(i.data=i.buildData()),i.data.name=(0,v.parse)(s).name}pageSorts(i,s){let e=i.data.name,t=i.prototype,o="Payload",n="Command",a="Caption",r="Free",l=s.dynamic,d=s.dynamicSpesific,p=c(h=>h.charAt(0).toUpperCase()+h.slice(1),"upFirst"),C=c(h=>h.replace(o,"").replace(n,"").replace(a,"").replace(r,""),"getPureFuncName"),m=c((h,b)=>t[`buildSessionMethod${p(h)}`](b),"buildSessionMethod");s.all[e]=i;for(let h=0;h<s.lenListFuncStaticSession;h++){let b=s.listFuncStaticSession[h],M=s.static[b],U=s.staticIntent[b],$=s.staticSession[b],N={name:e,func:b},B=M||U;if(B!==void 0){let H=b.includes(n)?`/${e}`:e;B[t.buildIntent(H,b.startsWith("callback"))]=N}$!==void 0&&($[m(b,e)]=N),b.toLowerCase().endsWith("free")&&d[C(b)].push(N)}t.free&&l.push(e)}pageLoads(){this.log?.info?.("Load pages..");let i=(0,v.join)(process.cwd(),"src","pages");if(!(0,A.existsSync)(i))throw new Error(`Folder ${i} is not found, please make it manually`);let s=(0,A.readdirSync)(i),e={},t=e,o=e,n=[],a=["callback","text","textCommand","photoCaption","photoCaptionCommand","videoCaption","videoCaptionCommand","audioCaption","audioCaptionCommand","documentCaption","documentCaptionCommand","animationCaption","animationCaptionCommand","voiceCaption","voiceCaptionCommand","videoNoteCaption","videoNoteCaptionCommand"],r=["callbackPayload","textPayload","textCommandPayload","photoCaptionPayload","photoCaptionCommandPayload","videoCaptionPayload","videoCaptionCommandPayload","audioCaptionPayload","audioCaptionCommandPayload","documentCaptionPayload","documentCaptionCommandPayload","animationCaptionPayload","animationCaptionCommandPayload","voiceCaptionPayload","voiceCaptionCommandPayload","videoNoteCaptionPayload","videoNoteCaptionCommandPayload"],l=[...a,...r,"textFree","photoFree","videoFree","audioFree","documentFree","animationFree","voiceFree","videoNoteFree","stickerFree","locationFree","contactFree"],d=c((C,m)=>Object.fromEntries(C.map(h=>[h,{...m}])),"makeObject"),p={all:{},dynamic:[],dynamicSpesific:{text:n,photo:n,video:n,audio:n,document:n,animation:n,voice:n,videoNote:n,sticker:n,location:n,contact:n},static:d(a,e),staticIntent:d(r,t),staticSession:d(l,o),listFuncStatic:a,listFuncStaticIntent:r,listFuncStaticSession:l,lenListFuncStatic:a.length,lenListFuncStaticIntent:r.length,lenListFuncStaticSession:l.length};for(let C of s){let m=(0,v.join)(i,C),h=require(m),M=Object.values(h)[0];if(M===void 0)throw`file ${(0,v.parse)(m).name} must have export (not default) class page`;this.pageBuildData(M,m),this.pageCompile(M),this.pageSorts(M,p)}return this.log?.info?.(`Finish load pages with total (${Object.keys(p.all).length})`),p}async pageRoutes(i,s){let e,t;if(e===void 0){let n=i.callbackData,a=i.msgText,r=i.msgCaption,l=this.pages.static;for(let d=0;d<this.pages.lenListFuncStatic;d++){let p=this.pages.listFuncStatic[d];if(t=l[p][n||a||r],t)break}t!==void 0&&(e=this.pages.all[t.name])}if(e===void 0){let n=await i.sessionGet();if(n){let a=n.method,r=this.pages.staticSession;for(let l=0;l<this.pages.lenListFuncStaticSession;l++){let d=this.pages.listFuncStaticSession[l];if(t=r[d][a],t)break}t!==void 0&&(e=this.pages.all[t.name])}}if(e===void 0){let n=i.callbackDataIntent,a=i.msgTextIntent,r=i.msgCaptionIntent,l=this.pages.staticIntent;for(let d=0;d<this.pages.lenListFuncStaticIntent;d++){let p=this.pages.listFuncStaticIntent[d];if(t=l[p][n||a||r],t)break}t!==void 0&&(e=this.pages.all[t.name])}if(e!==void 0&&t!==void 0)return await new e(i)[t.func]?.();let o=this.pages.dynamicSpesific[s]||[];for(let n=0;n<o.length;n++){let a=o[n];if(a===void 0)continue;let r=this.pages.all[a.func];if(r===void 0)continue;let d=await new r(i)[a.name]?.();if(d!==null)return d}for(let n=0;n<this.pages.dynamic.length;n++){let a=this.pages.dynamic[n];if(a===void 0)continue;let r=this.pages.all[a];if(r===void 0)continue;let d=await new r(i).free?.();if(d!==null)return d}return null}async hookBeforeRoute(i,s){return!0}async hookErrorPage(i,s,e,t){}async hookErrorInputNotFoundPage(i){}async onMessage(i,s){let e=this.initCtx(i);try{if(await this.hookBeforeRoute(e,s)===!1)return;await this.pageRoutes(e,s)===null&&await this.hookErrorInputNotFoundPage(e)}catch(t){await this.hookErrorPage(e,s,t,!1)}}async onCallbackQueryData(i){let s=this.initCtx(i);try{if(await s.callbackQueryAnswer(),await this.hookBeforeRoute(s,"onCallbackQueryData")===!1)return;await this.pageRoutes(s,"callback")}catch(e){await this.hookErrorPage(s,"onCallbackQueryData",e,!0)}}async onMessageText(i){await this.onMessage(i,"onMessageText")}async onMessagePhoto(i){await this.onMessage(i,"onMessagePhoto")}async onMessageVideo(i){await this.onMessage(i,"onMessageVideo")}async onMessageAudio(i){await this.onMessage(i,"onMessageAudio")}async onMessageDocument(i){await this.onMessage(i,"onMessageDocument")}async onMessageAnimation(i){await this.onMessage(i,"onMessageAnimation")}async onMessageVoice(i){await this.onMessage(i,"onMessageVoice")}async onMessageVideoNote(i){await this.onMessage(i,"onMessageVideoNote")}async onMessageSticker(i){await this.onMessage(i,"onMessageSticker")}async onMessageLocation(i){await this.onMessage(i,"onMessageLocation")}async onMessageContact(i){await this.onMessage(i,"onMessageContact")}};0&&(module.exports={BaseGeneral,BaseGuard,BasePage,CacheExternal,Ctx,Gramstax,TemplateEngine,TemplateManager});
2
2
  //# sourceMappingURL=index.cjs.map