UNPKG

richpartners-telegram-sdk

Version:
110 lines 4.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TelegramService = void 0; const sdk_1 = require("@telegram-apps/sdk"); class TelegramService { constructor() { this.telegramData = {}; } initTelegramData(debug) { if (typeof window === 'undefined') { throw new Error("RichPartnersTelegramAds can only be called in a browser environment."); } if (debug) { this.telegramData = { telegram_id: '123456789', language_code: 'en', premium: false, last_name: 'publisher', firstName: 'publisher', version: '8.0', platform: 'weba', }; return; } const sdk = (0, sdk_1.init)(); const user = sdk_1.initData?.user || {}; const tg = window.Telegram?.WebApp || {}; const initParams = sessionStorage.getItem('__telegram__initParams'); const launchParams = sessionStorage.getItem('tapps/launchParams') ?? sessionStorage.getItem("telegram-apps/launch-params") ?? sessionStorage.getItem("tma.js/launch-params"); const data = initParams && JSON.parse(initParams); const dataLaunchParams = launchParams && JSON.parse(launchParams); if (data && Object.keys(data).length) { const data = JSON.parse(initParams); const urlParams = new URLSearchParams(data.tgWebAppData); const userParam = urlParams.get('user'); const userData = userParam ? JSON.parse(decodeURIComponent(userParam)) : {}; if (userData.id === undefined) { throw new Error('initParams not installed.'); } this.telegramData = { telegram_id: String(userData.id || ''), language_code: userData.language_code || '', premium: userData.is_premium || false, last_name: userData.last_name || '', firstName: userData.first_name || '', version: data.tgWebAppVersion || '', platform: data.tgWebAppPlatform || '', }; } else if (dataLaunchParams && Object.keys(dataLaunchParams).length) { const decoded = decodeURIComponent(dataLaunchParams); const innerParams = new URLSearchParams(decoded); const userStr = innerParams.get('user'); const tgWebAppData = innerParams.get('tgWebAppData'); const tgWebAppVersion = innerParams.get('tgWebAppVersion'); const tgWebAppPlatform = innerParams.get('tgWebAppPlatform'); if (userStr) { let user = JSON.parse(decodeURIComponent(userStr)); this.telegramData = { telegram_id: String(user.id || ''), language_code: user.language_code || '', premium: user.is_premium || false, last_name: user.last_name || '', firstName: user.first_name || '', version: tgWebAppVersion || '', platform: tgWebAppPlatform || '', }; } if (tgWebAppData) { const urlParams = new URLSearchParams(tgWebAppData); const userString = urlParams.get('user'); if (userString) { const user = JSON.parse(userString); this.telegramData = { telegram_id: String(user.id || ''), language_code: user.language_code || '', premium: user.is_premium || false, last_name: user.last_name || '', firstName: user.first_name || '', version: tgWebAppVersion || '', platform: tgWebAppPlatform || '', }; } } } else { if (window.Telegram === undefined) { throw new Error('The script telegram-web-app.js not connected.'); } const tg = window.Telegram?.WebApp; if (!tg?.initDataUnsafe?.user) { throw new Error('telegram user not found.'); } this.telegramData = { telegram_id: String(tg.initDataUnsafe.user.id), language_code: tg.initDataUnsafe.user.language_code, premium: tg.initDataUnsafe.user.is_premium || false, last_name: tg.initDataUnsafe.user.last_name || '', firstName: tg.initDataUnsafe.user.first_name, version: tg.version, }; } } getTelegramData(debug) { this.initTelegramData(debug); return this.telegramData; } } exports.TelegramService = TelegramService; //# sourceMappingURL=TelegramService.js.map