telegram-webapps-types-new
Advanced tools
Comparing version 1.2.3 to 1.3.0
@@ -12,5 +12,11 @@ export declare namespace TelegramWebApps { | ||
type THomeScreenStatus = 'unsupported' | 'unknown' | 'added' | 'missed'; | ||
type IEventTypes = { | ||
activated: () => void; | ||
deactivated: () => void; | ||
themeChanged: () => void; | ||
viewportChanged: (event: { isStateStable: boolean; }) => void; | ||
safeAreaChanged: () => void; | ||
contentSafeAreaChanged: () => void; | ||
mainButtonClicked: () => void; | ||
@@ -27,2 +33,29 @@ secondaryButtonClicked: () => void; | ||
contactRequested: (event: { status: 'sent' | 'cancelled' }) => void; | ||
biometricManagerUpdated: () => void; | ||
biometricAuthRequested: (event: { isAuthenticated: boolean; biometricToken?: string }) => void; | ||
biometricTokenUpdated: (event: { isUpdated: boolean; }) => void; | ||
fullscreenChanged: (this: { isFullscreen: boolean }) => void; | ||
fullscreenFailed: (event: { error: 'UNSUPPORTED' | 'ALREADY_FULLSCREEN' }) => void; | ||
homeScreenAdded: () => void; | ||
homeScreenChecked: (event: { status: THomeScreenStatus }) => void; | ||
accelerometerStarted: () => void; | ||
accelerometerStopped: () => void; | ||
accelerometerChanged: (this: { x: number; y: number; z: number; }) => void; | ||
accelerometerFailed: (event: { error: 'UNSUPPORTED' }) => void; | ||
deviceOrientationStarted: () => void; | ||
deviceOrientationStopped: () => void; | ||
deviceOrientationChanged: (this: { alpha: number; beta: number; gamma: number; }) => void; | ||
deviceOrientationFailed: (event: { error: 'UNSUPPORTED' }) => void; | ||
gyroscopeStarted: () => void; | ||
gyroscopeStopped: () => void; | ||
gyroscopeChanged: (this: { x: number; y: number; z: number; }) => void; | ||
gyroscopeFailed: (event: { error: 'UNSUPPORTED' }) => void; | ||
locationManagerUpdated: () => void; | ||
locationRequested: (event: { locationData: LocationData }) => void; | ||
shareMessageSent: () => void; | ||
shareMessageFailed: (event: { error: 'UNSUPPORTED' | 'MESSAGE_EXPIRED' | 'MESSAGE_SEND_FAILED' | 'USER_DECLINED' | 'UNKNOWN_ERROR' }) => void; | ||
emojiStatusSet: () => void; | ||
emojiStatusFailed: (event: { error: 'UNSUPPORTED' | 'SUGGESTED_EMOJI_INVALID' | 'DURATION_INVALID' | 'USER_DECLINED' | 'SERVER_ERROR' | 'UNKNOWN_ERROR' }) => void; | ||
emojiStatusAccessRequested: (event: { status: 'allowed' | 'cancelled' }) => void; | ||
fileDownloadRequested: (event: { status: 'downloading' | 'cancelled' }) => void; | ||
} | ||
@@ -64,2 +97,8 @@ | ||
/** | ||
* Bot API 8.0+ | ||
* True, if the Mini App is currently active. | ||
* False, if the Mini App is minimized. | ||
*/ | ||
isActive: boolean; | ||
/** | ||
* True if the Web App is expanded to the maximum available height. | ||
@@ -90,2 +129,27 @@ * False, if the Web App occupies part of the screen and can be expanded to the full height using the expand() method. | ||
/** | ||
* True, if vertical swipes to close or minimize the Mini App are enabled. | ||
* | ||
* False, if vertical swipes to close or minimize the Mini App are disabled. | ||
* | ||
* In any case, the user will still be able to minimize and close the Mini App by swiping the Mini App's header. | ||
*/ | ||
isVerticalSwipesEnabled: boolean; | ||
/** | ||
* True, if the Mini App is currently being displayed in fullscreen mode. | ||
*/ | ||
isFullscreen: boolean; | ||
/** | ||
* True, if the Mini App’s orientation is currently locked. | ||
* False, if orientation changes freely based on the device’s rotation. | ||
*/ | ||
isOrientationLocked: boolean; | ||
/** | ||
* An object representing the device's safe area insets, accounting for system UI elements like notches or navigation bars. | ||
*/ | ||
safeAreaInset: SafeAreaInset; | ||
/** | ||
* An object representing the safe area for displaying content within the app, free from overlapping Telegram UI elements. | ||
*/ | ||
contentSafeAreaInset: ContentSafeAreaInset; | ||
/** | ||
* An object for controlling the back button which can be displayed in the header of the Web App in the Telegram interface. | ||
@@ -111,2 +175,22 @@ */ | ||
/** | ||
* An object for controlling biometrics on the device. | ||
*/ | ||
BiometricManager: BiometricManager; | ||
/** | ||
* An object for accessing accelerometer data on the device. | ||
*/ | ||
Accelerometer: Accelerometer; | ||
/** | ||
* An object for accessing device orientation data on the device. | ||
*/ | ||
DeviceOrientation: DeviceOrientation; | ||
/** | ||
* An object for accessing gyroscope data on the device. | ||
*/ | ||
Gyroscope: Gyroscope; | ||
/** | ||
* An object for controlling location on the device. | ||
*/ | ||
LocationManager: LocationManager; | ||
/** | ||
* Returns true if the user's app supports a version of the Bot API that is equal to or higher than the version passed as the parameter. | ||
@@ -144,2 +228,51 @@ */ | ||
/** | ||
* Bot API 7.7+ | ||
* A method that enables vertical swipes to close or minimize the Mini App. | ||
* For user convenience, it is recommended to always enable swipes unless they conflict with the Mini App's own gestures. | ||
*/ | ||
enableVerticalSwipes(): void; | ||
/** | ||
* Bot API 7.7+ A method that disables vertical swipes to close or minimize the Mini App. | ||
* This method is useful if your Mini App uses swipe gestures that may conflict with the gestures for minimizing and closing the app. | ||
*/ | ||
disableVerticalSwipes(): void; | ||
/** | ||
* Bot API 8.0+ A method that requests opening the Mini App in fullscreen mode. | ||
* Although the header is transparent in fullscreen mode, it is recommended that the Mini App sets the header color using the setHeaderColor method. | ||
* This color helps determine a contrasting color for the status bar and other UI controls. | ||
*/ | ||
requestFullscreen(): void; | ||
/** | ||
* Bot API 8.0+ A method that requests exiting fullscreen mode. | ||
*/ | ||
exitFullscreen(): void; | ||
/** | ||
* Bot API 8.0+ A method that locks the Mini App’s orientation to its current mode (either portrait or landscape). | ||
* Once locked, the orientation remains fixed, regardless of device rotation. | ||
* This is useful if a stable orientation is needed during specific interactions. | ||
*/ | ||
lockOrientation(): void; | ||
/** | ||
* Bot API 8.0+ A method that unlocks the Mini App’s orientation, allowing it to follow the device's rotation freely. | ||
* Use this to restore automatic orientation adjustments based on the device orientation. | ||
*/ | ||
unlockOrientation(): void; | ||
/** | ||
* Bot API 8.0+ A method that prompts the user to add the Mini App to the home screen. | ||
* After successfully adding the icon, the homeScreenAdded event will be triggered if supported by the device. | ||
* Note that if the device cannot determine the installation status, the event may not be received even if the icon has been added. | ||
*/ | ||
addToHomeScreen(): void; | ||
/** | ||
* Bot API 8.0+ A method that checks if adding to the home screen is supported and if the Mini App has already been added. | ||
* If an optional callback parameter is provided, the callback function will be called with a single argument status, which is a string indicating the home screen status. | ||
* | ||
* Possible values for status are: | ||
* - unsupported – the feature is not supported, and it is not possible to add the icon to the home screen, | ||
* - unknown – the feature is supported, and the icon can be added, but it is not possible to determine if the icon has already been added, | ||
* - added – the icon has already been added to the home screen, | ||
* - missed – the icon has not been added to the home screen. | ||
*/ | ||
checkHomeScreenStatus(callback?: (status: THomeScreenStatus) => void): void; | ||
/** | ||
* A method that sets the app event handler. | ||
@@ -204,2 +337,26 @@ */ | ||
/** | ||
* Bot API 8.0+ A method that opens a dialog allowing the user to share a message provided by the bot. | ||
* If an optional callback parameter is provided, the callback function will be called with a boolean as the first argument, indicating whether the message was successfully sent. | ||
* The message id passed to this method must belong to a PreparedInlineMessage previously obtained via the Bot API method savePreparedInlineMessage. | ||
*/ | ||
shareMessage(message_id: string, callback?: (sent: boolean) => void): void; | ||
/** | ||
* Bot API 8.0+ A method that opens a dialog allowing the user to set the specified custom emoji as their status. | ||
* An optional params argument of type EmojiStatusParams specifies additional settings, such as duration. | ||
* If an optional callback parameter is provided, the callback function will be called with a boolean as the first argument, indicating whether the status was set. | ||
* | ||
* Note: this method opens a native dialog and cannot be used to set the emoji status without manual user interaction. For fully programmatic changes, you should instead use the Bot API method setUserEmojiStatus after obtaining authorization to do so via the Mini App method requestEmojiStatusAccess. | ||
*/ | ||
setEmojiStatus(custom_emoji_id: string, params?: EmojiStatusParams, callback?: (set: boolean) => void): void; | ||
/** | ||
* Bot API 8.0+ A method that shows a native popup requesting permission for the bot to manage user's emoji status. | ||
* If an optional callback parameter was passed, the callback function will be called when the popup is closed and the first argument will be a boolean indicating whether the user granted this access. | ||
*/ | ||
requestEmojiStatusAccess(callback?: (confirm: boolean) => void): void; | ||
/** | ||
* ot API 8.0+ A method that displays a native popup prompting the user to download a file specified by the params argument of type DownloadFileParams. | ||
* If an optional callback parameter is provided, the callback function will be called when the popup is closed, with the first argument as a boolean indicating whether the user accepted the download request. | ||
*/ | ||
downloadFile(params: DownloadFileParams, callback?: (confirm: boolean) => void): void; | ||
/** | ||
* Bot API 6.2+ | ||
@@ -272,21 +429,2 @@ * A method that shows a native popup described by the params argument of the type PopupParams. | ||
close(): void; | ||
/** | ||
* True, if vertical swipes to close or minimize the Mini App are enabled. | ||
* | ||
* False, if vertical swipes to close or minimize the Mini App are disabled. | ||
* | ||
* In any case, the user will still be able to minimize and close the Mini App by swiping the Mini App's header. | ||
*/ | ||
isVerticalSwipesEnabled: boolean; | ||
/** | ||
* Bot API 7.7+ | ||
* A method that enables vertical swipes to close or minimize the Mini App. | ||
* For user convenience, it is recommended to always enable swipes unless they conflict with the Mini App's own gestures. | ||
*/ | ||
enableVerticalSwipes(): void; | ||
/** | ||
* Bot API 7.7+ A method that disables vertical swipes to close or minimize the Mini App. | ||
* This method is useful if your Mini App uses swipe gestures that may conflict with the gestures for minimizing and closing the app. | ||
*/ | ||
disableVerticalSwipes(): void; | ||
} | ||
@@ -455,2 +593,74 @@ | ||
interface EmojiStatusParams { | ||
/** | ||
* Optional. The duration for which the status will remain set, in seconds. | ||
*/ | ||
duration?: number; | ||
} | ||
interface DownloadFileParams { | ||
/** | ||
* The HTTPS URL of the file to be downloaded. | ||
*/ | ||
url: string; | ||
/** | ||
* The suggested name for the downloaded file. | ||
*/ | ||
file_name: string; | ||
} | ||
interface SafeAreaInset { | ||
/** | ||
* The top inset in pixels, representing the space to avoid at the top of the screen. | ||
* | ||
* Also available as the CSS variable var(--tg-safe-area-inset-top). | ||
*/ | ||
top: number; | ||
/** | ||
* The bottom inset in pixels, representing the space to avoid at the bottom of the screen. | ||
* | ||
* Also available as the CSS variable var(--tg-safe-area-inset-bottom). | ||
*/ | ||
bottom: number; | ||
/** | ||
* The left inset in pixels, representing the space to avoid on the left side of the screen. | ||
* | ||
* Also available as the CSS variable var(--tg-safe-area-inset-left). | ||
*/ | ||
left: number | ||
/** | ||
* The right inset in pixels, representing the space to avoid on the right side of the screen. | ||
* | ||
* Also available as the CSS variable var(--tg-safe-area-inset-right). | ||
*/ | ||
right: number; | ||
} | ||
interface ContentSafeAreaInset { | ||
/** | ||
* The top inset in pixels, representing the space to avoid at the top of the content area. | ||
* | ||
* Also available as the CSS variable var(--tg-content-safe-area-inset-top). | ||
*/ | ||
top: number; | ||
/** | ||
* The bottom inset in pixels, representing the space to avoid at the bottom of the content area. | ||
* | ||
* Also available as the CSS variable var(--tg-content-safe-area-inset-bottom). | ||
*/ | ||
bottom: number; | ||
/** | ||
* The left inset in pixels, representing the space to avoid on the left side of the content area. | ||
* | ||
* Also available as the CSS variable var(--tg-content-safe-area-inset-left). | ||
*/ | ||
left: number; | ||
/** | ||
* The right inset in pixels, representing the space to avoid on the right side of the content area. | ||
* | ||
* Also available as the CSS variable var(--tg-content-safe-area-inset-right). | ||
*/ | ||
right: number; | ||
} | ||
interface BackButton { | ||
@@ -613,2 +823,186 @@ /** | ||
interface Accelerometer { | ||
/** | ||
* Indicates whether accelerometer tracking is currently active. | ||
*/ | ||
isStarted: boolean; | ||
/** | ||
* The current acceleration in the X-axis, measured in m/s². | ||
*/ | ||
x: number; | ||
/** | ||
* The current acceleration in the Y-axis, measured in m/s². | ||
*/ | ||
y: number; | ||
/** | ||
* The current acceleration in the Z-axis, measured in m/s². | ||
*/ | ||
z: number; | ||
/** | ||
* Bot API 8.0+ Starts tracking accelerometer data using params of type AccelerometerStartParams. If an optional callback parameter is provided, the callback function will be called with a boolean indicating whether tracking was successfully started. | ||
*/ | ||
start(params: AccelerometerStartParams, callback?: (isStarted: boolean) => void): Accelerometer; | ||
/** | ||
* Bot API 8.0+ Stops tracking accelerometer data. If an optional callback parameter is provided, the callback function will be called with a boolean indicating whether tracking was successfully stopped. | ||
*/ | ||
stop(callback?: (isStopped: boolean) => void): Accelerometer; | ||
} | ||
interface AccelerometerStartParams { | ||
/** | ||
* Optional. The refresh rate in milliseconds, with acceptable values ranging from 20 to 1000. Set to 1000 by default. Note that refresh_rate may not be supported on all platforms, so the actual tracking frequency may differ from the specified value. | ||
*/ | ||
refresh_rate?: number; | ||
} | ||
interface DeviceOrientation { | ||
/** | ||
* Indicates whether device orientation tracking is currently active. | ||
*/ | ||
isStarted: boolean; | ||
/** | ||
* A boolean that indicates whether or not the device is providing orientation data in absolute values. | ||
*/ | ||
absolute: boolean; | ||
/** | ||
* The rotation around the Z-axis, measured in radians. | ||
*/ | ||
alpha: number; | ||
/** | ||
* The rotation around the X-axis, measured in radians. | ||
*/ | ||
beta: number; | ||
/** | ||
* The rotation around the Y-axis, measured in radians. | ||
*/ | ||
gamma: number; | ||
/** | ||
* Bot API 8.0+ Starts tracking device orientation data using params of type DeviceOrientationStartParams. If an optional callback parameter is provided, the callback function will be called with a boolean indicating whether tracking was successfully started. | ||
*/ | ||
start(params: DeviceOrientationStartParams, callback?: (isStarted: boolean) => void): DeviceOrientation; | ||
/** | ||
* Bot API 8.0+ Stops tracking device orientation data. If an optional callback parameter is provided, the callback function will be called with a boolean indicating whether tracking was successfully stopped. | ||
*/ | ||
stop(callback?: (isStopped: boolean) => void): DeviceOrientation; | ||
} | ||
interface DeviceOrientationStartParams { | ||
/** | ||
* Optional. The refresh rate in milliseconds, with acceptable values ranging from 20 to 1000. Set to 1000 by default. Note that refresh_rate may not be supported on all platforms, so the actual tracking frequency may differ from the specified value. | ||
*/ | ||
refresh_rate?: number; | ||
/** | ||
* Optional. Pass true to receive absolute orientation data, allowing you to determine the device's attitude relative to magnetic north. Use this option if implementing features like a compass in your app. If relative data is sufficient, pass false. Set to false by default. | ||
* | ||
* Note: Keep in mind that some devices may not support absolute orientation data. In such cases, you will receive relative data even if need_absolute=true is passed. Check the DeviceOrientation.absolute parameter to determine whether the data provided is absolute or relative. | ||
*/ | ||
need_absolute?: boolean; | ||
} | ||
interface Gyroscope { | ||
/** | ||
* Indicates whether gyroscope tracking is currently active. | ||
*/ | ||
isStarted: boolean; | ||
/** | ||
* The current rotation rate around the X-axis, measured in rad/s. | ||
*/ | ||
x: number; | ||
/** | ||
* The current rotation rate around the Y-axis, measured in rad/s. | ||
*/ | ||
y: number; | ||
/** | ||
* The current rotation rate around the Z-axis, measured in rad/s. | ||
*/ | ||
z: number; | ||
/** | ||
* Bot API 8.0+ Starts tracking gyroscope data using params of type GyroscopeStartParams. If an optional callback parameter is provided, the callback function will be called with a boolean indicating whether tracking was successfully started. | ||
*/ | ||
start(params: GyroscopeStartParams, callback?: (isStarted: boolean) => void): Gyroscope; | ||
/** | ||
* Bot API 8.0+ Stops tracking gyroscope data. If an optional callback parameter is provided, the callback function will be called with a boolean indicating whether tracking was successfully stopped. | ||
*/ | ||
stop(callback?: (isStopped: boolean) => void): Gyroscope; | ||
} | ||
interface GyroscopeStartParams { | ||
/** | ||
* Optional. The refresh rate in milliseconds, with acceptable values ranging from 20 to 1000. Set to 1000 by default. Note that refresh_rate may not be supported on all platforms, so the actual tracking frequency may differ from the specified value. | ||
*/ | ||
refresh_rate?: number; | ||
} | ||
interface LocationManager { | ||
/** | ||
* Shows whether the LocationManager object has been initialized. | ||
*/ | ||
isInited: boolean; | ||
/** | ||
* Shows whether location services are available on the current device. | ||
*/ | ||
isLocationAvailable: boolean; | ||
/** | ||
* Shows whether permission to use location has been requested. | ||
*/ | ||
isAccessRequested: boolean; | ||
/** | ||
* Shows whether permission to use location has been granted. | ||
*/ | ||
isAccessGranted: boolean; | ||
/** | ||
* Bot API 8.0+ A method that initializes the LocationManager object. It should be called before the object's first use. If an optional callback parameter is provided, the callback function will be called when the object is initialized. | ||
*/ | ||
init(callback?: () => void): LocationManager; | ||
/** | ||
* Bot API 8.0+ A method that requests location data. The callback function will be called with null as the first argument if access to location was not granted, or an object of type LocationData as the first argument if access was successful. | ||
*/ | ||
getLocation(callback: (location: LocationData | null) => void): LocationManager; | ||
/** | ||
* Bot API 8.0+ A method that opens the location access settings for bots. Useful when you need to request location access from users who haven't granted it yet. | ||
* | ||
* Note that this method can be called only in response to user interaction with the Mini App interface (e.g., a click inside the Mini App or on the main button). | ||
*/ | ||
openSettings(): LocationManager; | ||
} | ||
interface LocationData { | ||
/** | ||
* Latitude in degrees. | ||
*/ | ||
latitude: number; | ||
/** | ||
* Longitude in degrees. | ||
*/ | ||
longitude: number; | ||
/** | ||
* Altitude above sea level in meters. null if altitude data is not available on the device. | ||
*/ | ||
altitude: number | null; | ||
/** | ||
* The direction the device is moving in degrees (0 = North, 90 = East, 180 = South, 270 = West). null if course data is not available on the device. | ||
*/ | ||
course: number | null; | ||
/** | ||
* The speed of the device in m/s. null if speed data is not available on the device. | ||
*/ | ||
speed: number | null; | ||
/** | ||
* Accuracy of the latitude and longitude values in meters. null if horizontal accuracy data is not available on the device. | ||
*/ | ||
horizontal_accuracy: number | null; | ||
/** | ||
* Accuracy of the altitude value in meters. null if vertical accuracy data is not available on the device. | ||
*/ | ||
vertical_accuracy: number | null; | ||
/** | ||
* Accuracy of the course value in degrees. null if course accuracy data is not available on the device. | ||
*/ | ||
course_accuracy: number | null; | ||
/** | ||
* Accuracy of the speed value in m/s. null if speed accuracy data is not available on the device. | ||
*/ | ||
speed_accuracy: number | null; | ||
} | ||
interface SettingsButton { | ||
@@ -615,0 +1009,0 @@ /** |
{ | ||
"name": "telegram-webapps-types-new", | ||
"version": "1.2.3", | ||
"version": "1.3.0", | ||
"description": "TypeScript typings for Telegram Web Apps for Bots. See https://core.telegram.org/bots/webapps", | ||
@@ -5,0 +5,0 @@ "scripts": { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
61080
1244