@tma.js/launch-params 
Provides utilities to work with Telegram Mini Apps launch parameters.
Installation 
pnpm i @tma.js/launch-paramspnpm i @tma.js/launch-paramsnpm i @tma.js/launch-paramsnpm i @tma.js/launch-paramsyarn add @tma.js/launch-paramsyarn add @tma.js/launch-paramsParsing 
To parse value as launch parameters, package provides method parse and parser launchParams which is being utilized by parse.
Method and parser accept query parameters presented as a string or an instance of URLSearchParams, returning the LaunchParams interface. It throws an error if the passed data is invalid.
import { parse, launchParams } from '@tma.js/launch-params';
const searchParams = new URLSearchParams([
  ['tgWebAppVersion', '6.7'],
  ['tgWebAppPlatform', 'tdekstop'],
  ['tgWebAppBotInline', '1'],
  ['tgWebAppData', new URLSearchParams([
    ['query_id', 'AAHdF6IQAAAAAN0XohAOqR8k'],
    ['user', JSON.stringify({
      id: 279058397,
      first_name: 'Vladislav',
      last_name: 'Kibenko',
      username: 'vdkfrost',
      language_code: 'ru',
      is_premium: true,
      allows_write_to_pm: true,
    })],
    ['auth_date', '1691441944'],
    ['hash', 'abc'],
  ]).toString()],
  ['tgWebAppThemeParams', JSON.stringify({
    bg_color: '#17212b',
    button_color: '#5288c1',
    button_text_color: '#ffffff',
    hint_color: '#708499',
    link_color: '#6ab3f3',
    secondary_bg_color: '#232e3c',
    text_color: '#f5f5f5',
  })],
]);
const lp = parse(searchParams);
// or
const lp = launchParams().parse(searchParams);import { parse, launchParams } from '@tma.js/launch-params';
const searchParams = new URLSearchParams([
  ['tgWebAppVersion', '6.7'],
  ['tgWebAppPlatform', 'tdekstop'],
  ['tgWebAppBotInline', '1'],
  ['tgWebAppData', new URLSearchParams([
    ['query_id', 'AAHdF6IQAAAAAN0XohAOqR8k'],
    ['user', JSON.stringify({
      id: 279058397,
      first_name: 'Vladislav',
      last_name: 'Kibenko',
      username: 'vdkfrost',
      language_code: 'ru',
      is_premium: true,
      allows_write_to_pm: true,
    })],
    ['auth_date', '1691441944'],
    ['hash', 'abc'],
  ]).toString()],
  ['tgWebAppThemeParams', JSON.stringify({
    bg_color: '#17212b',
    button_color: '#5288c1',
    button_text_color: '#ffffff',
    hint_color: '#708499',
    link_color: '#6ab3f3',
    secondary_bg_color: '#232e3c',
    text_color: '#f5f5f5',
  })],
]);
const lp = parse(searchParams);
// or
const lp = launchParams().parse(searchParams);const result = {
  botInline: true,
  version: '6.7',
  platform: 'tdesktop',
  themeParams: {
    backgroundColor: '#17212b',
    buttonColor: '#5288c1',
    buttonTextColor: '#ffffff',
    hintColor: '#708499',
    linkColor: '#6ab3f3',
    secondaryBackgroundColor: '#232e3c',
    textColor: '#f5f5f5',
  },
  initDataRaw: 'query_id=AAHdF6IQAAAAAN0XohAOqR8k&user=%7B%22id%22%3A279058397%2C%22first_name%22%3A%22Vladislav%22%2C%22last_name%22%3A%22Kibenko%22%2C%22username%22%3A%22vdkfrost%22%2C%22language_code%22%3A%22ru%22%2C%22is_premium%22%3Atrue%2C%22allows_write_to_pm%22%3Atrue%7D&auth_date=1691441944&hash=abc',
  initData: {
    queryId: 'AAHdF6IQAAAAAN0XohAOqR8k',
    authDate: new Date(1691441944000),
    hash: 'abc',
    user: {
      id: 279058397,
      firstName: 'Vladislav',
      lastName: 'Kibenko',
      username: 'vdkfrost',
      languageCode: 'ru',
      isPremium: true,
      allowsWriteToPm: true,
    },
  },
};const result = {
  botInline: true,
  version: '6.7',
  platform: 'tdesktop',
  themeParams: {
    backgroundColor: '#17212b',
    buttonColor: '#5288c1',
    buttonTextColor: '#ffffff',
    hintColor: '#708499',
    linkColor: '#6ab3f3',
    secondaryBackgroundColor: '#232e3c',
    textColor: '#f5f5f5',
  },
  initDataRaw: 'query_id=AAHdF6IQAAAAAN0XohAOqR8k&user=%7B%22id%22%3A279058397%2C%22first_name%22%3A%22Vladislav%22%2C%22last_name%22%3A%22Kibenko%22%2C%22username%22%3A%22vdkfrost%22%2C%22language_code%22%3A%22ru%22%2C%22is_premium%22%3Atrue%2C%22allows_write_to_pm%22%3Atrue%7D&auth_date=1691441944&hash=abc',
  initData: {
    queryId: 'AAHdF6IQAAAAAN0XohAOqR8k',
    authDate: new Date(1691441944000),
    hash: 'abc',
    user: {
      id: 279058397,
      firstName: 'Vladislav',
      lastName: 'Kibenko',
      username: 'vdkfrost',
      languageCode: 'ru',
      isPremium: true,
      allowsWriteToPm: true,
    },
  },
};Serializing 
To convert the launch parameters object representation to a string, developers should use the serialize function:
import { serialize } from '@tma.js/launch-params';
serialize({
  version: '6.7',
  platform: 'tdesktop',
  themeParams: {
    backgroundColor: '#17212b',
    buttonColor: '#5288c1',
    buttonTextColor: '#ffffff',
    hintColor: '#708499',
    linkColor: '#6ab3f3',
    secondaryBackgroundColor: '#232e3c',
    textColor: '#f5f5f5',
  },
});
// Result:
// tgWebAppVersion=6.7&tgWebAppPlatform=tdesktop&tgWebAppThemeParams=%7B%22bg_color%22%3A%22%2317212b%22%2C%22button_color%22%3A%22%235288c1%22%2C%22button_text_color%22%3A%22%23ffffff%22%2C%22hint_color%22%3A%22%23708499%22%2C%22link_color%22%3A%22%236ab3f3%22%2C%22secondary_bg_color%22%3A%22%23232e3c%22%2C%22text_color%22%3A%22%23f5f5f5%22%7Dimport { serialize } from '@tma.js/launch-params';
serialize({
  version: '6.7',
  platform: 'tdesktop',
  themeParams: {
    backgroundColor: '#17212b',
    buttonColor: '#5288c1',
    buttonTextColor: '#ffffff',
    hintColor: '#708499',
    linkColor: '#6ab3f3',
    secondaryBackgroundColor: '#232e3c',
    textColor: '#f5f5f5',
  },
});
// Result:
// tgWebAppVersion=6.7&tgWebAppPlatform=tdesktop&tgWebAppThemeParams=%7B%22bg_color%22%3A%22%2317212b%22%2C%22button_color%22%3A%22%235288c1%22%2C%22button_text_color%22%3A%22%23ffffff%22%2C%22hint_color%22%3A%22%23708499%22%2C%22link_color%22%3A%22%236ab3f3%22%2C%22secondary_bg_color%22%3A%22%23232e3c%22%2C%22text_color%22%3A%22%23f5f5f5%22%7DRetrieving 
This package enables the extraction of launch parameters from the current environment using the retrieveFromLocation, retrieveFromPerformance, and retrieveFromStorage functions. Developer is also able to use retrieveLaunchData to surely extract launch parameters and determine if current page was reloaded. Each of these functions throws an error if the source contains invalid data.
retrieveLaunchData 
Extracts actual launch parameters and page reload flag.
import { retrieveLaunchData } from '@tma.js/launch-params';
const { launchParams, isPageReload } = retrieveLaunchData();import { retrieveLaunchData } from '@tma.js/launch-params';
const { launchParams, isPageReload } = retrieveLaunchData();INFO
This function is more likely to be used by developers because it offers a stable way of retrieving the actual launch parameters.
retrieveFromStorage 
Extracts launch parameters from sessionStorage. This method expects that launch parameters have been saved in the sessionStorage via the saveToStorage method.
import { retrieveFromStorage, saveToStorage } from '@tma.js/launch-params';
saveToStorage({
  initData: {
    authDate: new Date(16552413000),
    hash: 'hash',
  },
  initDataRaw: 'auth_date=16552413&hash=hash',
  themeParams: {},
  version: '7.0',
  platform: 'macos',
});
const launchParameters = retrieveFromStorage();import { retrieveFromStorage, saveToStorage } from '@tma.js/launch-params';
saveToStorage({
  initData: {
    authDate: new Date(16552413000),
    hash: 'hash',
  },
  initDataRaw: 'auth_date=16552413&hash=hash',
  themeParams: {},
  version: '7.0',
  platform: 'macos',
});
const launchParameters = retrieveFromStorage();retrieveFromLocation 
Extracts launch parameters from window.location.hash:
import { retrieveFromLocation } from '@tma.js/launch-params';
const launchParameters = retrieveFromLocation();import { retrieveFromLocation } from '@tma.js/launch-params';
const launchParameters = retrieveFromLocation();retrieveFromPerformance 
Extracts launch parameters from window.performance. This function allows retrieving launch parameters using performance navigation entries.
import { retrieveFromPerformance } from '@tma.js/launch-params';
const launchParameters = retrieveFromPerformance();import { retrieveFromPerformance } from '@tma.js/launch-params';
const launchParameters = retrieveFromPerformance(); Telegram Mini Apps
Telegram Mini Apps