{"mappings":"AAEA,ICAA,MA+BIA,iBAAiBC,GACb,MAAMC,EAAS,CACXC,OAAO,EACPC,OAAQ,gBAGNC,QAAaC,MAAM,+CAAgD,CACrEC,OAAQ,OACRC,KAAM,IAAIC,gBAAgBR,KAG9B,IAAKI,EAAKK,GAGN,OAFAR,EAAOC,OAAQ,EAEPE,EAAKM,QACT,KAAK,IACDT,EAAOE,OAAS,oBAChB,MACJ,KAAK,IACDF,EAAOE,OAAS,oBAChB,MACJ,QACIF,EAAOE,OAAS,uBAI5B,OAAOF,EAGXU,mBACI,IAAIC,EAAO,EACX,GAAIC,OAAOC,SAASC,KAAM,CACtB,MAAMC,EAAQH,OAAOC,SAASC,KAAKC,MAAK,cACpCA,aAAA,EAAAA,EAAQ,MACRJ,EAAOK,OAAOD,EAAM,KAG5B,OAAOJ,EAnEXM,YAAYC,GACR,MAAMZ,EAAOa,SAASC,cAA2B,QAC3CC,EAAUF,SAASC,cAA2B,gBAE/Cd,GAASe,GAIdC,KAAKC,WAAWL,EAASM,OAAOzB,UAAU0B,MAAKC,IAC3CR,EAASM,OAAOG,QAChBN,EAAQO,UAAYF,EAAIxB,OACxBI,EAAKuB,MAAMC,QAAU,QAEfJ,EAAIzB,OAKViB,EAASM,OAAOO,WAAWC,SAAQ,KAC/BpB,OAAOC,SAASoB,KAAO,UACvBf,EAASM,OAAOU,WAAWC,UAG/BjB,EAASM,OAAOU,WAAWF,SAAQ,KAC/BpB,OAAOC,SAASoB,KAAO,UACvBf,EAASM,OAAOU,WAAWE,WAX3BlB,EAASM,OAAOa,eAAeC,qBAAqB,cDf5D1B,OAAOM","sources":["src/ts/index.ts","src/ts/app.ts"],"sourcesContent":["import App from \"./app\"\n\nnew App(window.Telegram)\n","import {TelegramWebApps} from \"../../global\";\n\nclass App {\n constructor(Telegram: TelegramWebApps.SDK) {\n const body = document.querySelector('body')\n const heading = document.querySelector('#page-1 > h1')\n\n if (!body || !heading) {\n return\n }\n\n this.verifyData(Telegram.WebApp.initData).then(res => {\n Telegram.WebApp.ready()\n heading.innerText = res.reason\n body.style.display = 'block'\n\n if (! res.valid) {\n Telegram.WebApp.HapticFeedback.notificationOccurred('error')\n return\n }\n\n Telegram.WebApp.MainButton.onClick(() => {\n window.location.href = '#page-2'\n Telegram.WebApp.BackButton.show()\n })\n\n Telegram.WebApp.BackButton.onClick(() => {\n window.location.href = '#page-1'\n Telegram.WebApp.BackButton.hide()\n })\n })\n }\n\n async verifyData(initData: string) {\n const result = {\n valid: true,\n reason: 'Watcha need?',\n }\n\n const resp = await fetch('https://4d_request.pierlo.workers.dev/verify', {\n method: 'POST',\n body: new URLSearchParams(initData)\n })\n\n if (!resp.ok) {\n result.valid = false\n\n switch (resp.status) {\n case 403:\n result.reason = 'Umm... try again?'\n break\n case 401:\n result.reason = 'Never heard of ya'\n break\n default:\n result.reason = 'Something went wrong'\n }\n }\n\n return result\n }\n\n getActivePageNum() {\n let page = 1\n if (window.location.hash) {\n const match = window.location.hash.match(/page-(\\d)/)\n if (match?.[1]) {\n page = Number(match[1])\n }\n }\n return page\n }\n}\n\nexport default App\n"],"names":["async","initData","result","valid","reason","resp","fetch","method","body","URLSearchParams","ok","status","getActivePageNum","page","window","location","hash","match","Number","constructor","Telegram","document","querySelector","heading","this","verifyData","WebApp","then","res","ready","innerText","style","display","MainButton","onClick","href","BackButton","show","hide","HapticFeedback","notificationOccurred"],"version":3,"file":"index.52252f5d.js.map"}