@tma.js/sdk 0.13.3 → 1.0.1

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.
Files changed (426) hide show
  1. package/dist/dts/{components/BackButton → back-button}/BackButton.d.ts +12 -9
  2. package/dist/dts/back-button/index.d.ts +2 -0
  3. package/dist/dts/{components/BackButton → back-button}/types.d.ts +3 -2
  4. package/dist/dts/bridge/env/hasExternalNotify.d.ts +12 -0
  5. package/dist/dts/bridge/env/hasWebviewProxy.d.ts +12 -0
  6. package/dist/dts/bridge/env/index.d.ts +3 -0
  7. package/dist/dts/bridge/env/isIframe.d.ts +5 -0
  8. package/dist/dts/bridge/errors/MethodUnsupportedError.d.ts +8 -0
  9. package/dist/dts/bridge/errors/ParameterUnsupportedError.d.ts +8 -0
  10. package/dist/dts/bridge/errors/index.d.ts +2 -0
  11. package/dist/dts/bridge/events/createEmitter.d.ts +6 -0
  12. package/dist/dts/bridge/events/events.d.ts +130 -0
  13. package/dist/dts/bridge/events/index.d.ts +9 -0
  14. package/dist/dts/bridge/events/off.d.ts +7 -0
  15. package/dist/dts/bridge/events/on.d.ts +10 -0
  16. package/dist/dts/bridge/events/onTelegramEvent.d.ts +7 -0
  17. package/dist/dts/bridge/events/once.d.ts +9 -0
  18. package/dist/dts/bridge/events/parsers/clipboardTextReceived.d.ts +13 -0
  19. package/dist/dts/bridge/events/parsers/customMethodInvoked.d.ts +16 -0
  20. package/dist/dts/bridge/events/parsers/index.d.ts +9 -0
  21. package/dist/dts/bridge/events/parsers/invoiceClosed.d.ts +12 -0
  22. package/dist/dts/bridge/events/parsers/phoneRequested.d.ts +8 -0
  23. package/dist/dts/bridge/events/parsers/popupClosed.d.ts +8 -0
  24. package/dist/dts/bridge/events/parsers/qrTextReceived.d.ts +7 -0
  25. package/dist/dts/bridge/events/parsers/theme-changed.d.ts +42 -0
  26. package/dist/dts/bridge/events/parsers/viewportChanged.d.ts +19 -0
  27. package/dist/dts/bridge/events/parsers/writeAccessRequested.d.ts +8 -0
  28. package/dist/dts/bridge/events/singletonEmitter.d.ts +6 -0
  29. package/dist/dts/bridge/events/subscribe.d.ts +9 -0
  30. package/dist/dts/bridge/events/unsubscribe.d.ts +6 -0
  31. package/dist/dts/bridge/index.d.ts +5 -0
  32. package/dist/dts/bridge/methods/createPostEvent.d.ts +10 -0
  33. package/dist/dts/bridge/methods/haptic.d.ts +40 -0
  34. package/dist/dts/bridge/methods/index.d.ts +6 -0
  35. package/dist/dts/bridge/methods/invoke-custom-method.d.ts +24 -0
  36. package/dist/dts/bridge/methods/methods.d.ts +329 -0
  37. package/dist/dts/bridge/methods/popup.d.ts +49 -0
  38. package/dist/dts/bridge/methods/postEvent.d.ts +29 -0
  39. package/dist/dts/bridge/request.d.ts +65 -0
  40. package/dist/dts/classnames/classNames.d.ts +10 -0
  41. package/dist/dts/classnames/index.d.ts +2 -0
  42. package/dist/dts/classnames/mergeClassNames.d.ts +32 -0
  43. package/dist/dts/{components/ClosingBehaviour/ClosingBehaviour.d.ts → closing-behavior/ClosingBehavior.d.ts} +5 -4
  44. package/dist/dts/closing-behavior/index.d.ts +2 -0
  45. package/dist/dts/closing-behavior/types.d.ts +7 -0
  46. package/dist/dts/{components/CloudStorage → cloud-storage}/CloudStorage.d.ts +19 -11
  47. package/dist/dts/colors/index.d.ts +5 -0
  48. package/dist/dts/colors/isColorDark.d.ts +6 -0
  49. package/dist/dts/colors/isRGB.d.ts +6 -0
  50. package/dist/dts/colors/isRGBShort.d.ts +6 -0
  51. package/dist/dts/colors/toRGB.d.ts +11 -0
  52. package/dist/dts/colors/types.d.ts +8 -0
  53. package/dist/dts/event-emitter/EventEmitter.d.ts +64 -0
  54. package/dist/dts/event-emitter/index.d.ts +2 -0
  55. package/dist/dts/event-emitter/types.d.ts +44 -0
  56. package/dist/dts/globals.d.ts +22 -0
  57. package/dist/dts/{components/HapticFeedback → haptic-feedback}/HapticFeedback.d.ts +3 -3
  58. package/dist/dts/index.d.ts +24 -6
  59. package/dist/dts/init/catchCustomStyles.d.ts +4 -0
  60. package/dist/dts/init/creators/createBackButton.d.ts +2 -2
  61. package/dist/dts/init/creators/createClosingBehavior.d.ts +3 -3
  62. package/dist/dts/init/creators/createMainButton.d.ts +3 -3
  63. package/dist/dts/init/creators/createMiniApp.d.ts +14 -0
  64. package/dist/dts/init/creators/createRequestIdGenerator.d.ts +1 -1
  65. package/dist/dts/init/creators/createThemeParams.d.ts +2 -3
  66. package/dist/dts/init/creators/createViewport.d.ts +16 -9
  67. package/dist/dts/init/creators/index.d.ts +1 -1
  68. package/dist/dts/init/css/bindMiniAppCSSVars.d.ts +16 -0
  69. package/dist/dts/init/css/bindThemeCSSVars.d.ts +12 -0
  70. package/dist/dts/init/css/bindViewportCSSVars.d.ts +20 -0
  71. package/dist/dts/init/css/index.d.ts +1 -0
  72. package/dist/dts/init/css/processCSSVarsOption.d.ts +12 -0
  73. package/dist/dts/init/css/setCSSVar.d.ts +6 -0
  74. package/dist/dts/init/init.d.ts +5 -5
  75. package/dist/dts/init/types.d.ts +42 -69
  76. package/dist/dts/init-data/InitData.d.ts +53 -0
  77. package/dist/dts/init-data/chatParser.d.ts +5 -0
  78. package/dist/dts/init-data/index.d.ts +6 -0
  79. package/dist/dts/init-data/initDataParser.d.ts +5 -0
  80. package/dist/dts/init-data/parseInitData.d.ts +6 -0
  81. package/dist/dts/init-data/types.d.ts +133 -0
  82. package/dist/dts/init-data/userParser.d.ts +5 -0
  83. package/dist/dts/invoice/Invoice.d.ts +43 -0
  84. package/dist/dts/invoice/index.d.ts +2 -0
  85. package/dist/dts/invoice/types.d.ts +7 -0
  86. package/dist/dts/launch-params/computeLaunchData.d.ts +6 -0
  87. package/dist/dts/launch-params/computePageReload.d.ts +6 -0
  88. package/dist/dts/launch-params/getFirstNavigationEntry.d.ts +6 -0
  89. package/dist/dts/launch-params/index.d.ts +12 -0
  90. package/dist/dts/launch-params/launchParamsParser.d.ts +5 -0
  91. package/dist/dts/launch-params/parseLaunchParams.d.ts +6 -0
  92. package/dist/dts/launch-params/retrieveCurrent.d.ts +5 -0
  93. package/dist/dts/launch-params/retrieveFromLocation.d.ts +6 -0
  94. package/dist/dts/launch-params/retrieveFromPerformance.d.ts +8 -0
  95. package/dist/dts/launch-params/retrieveLaunchData.d.ts +6 -0
  96. package/dist/dts/launch-params/serializeLaunchParams.d.ts +6 -0
  97. package/dist/dts/launch-params/storage.d.ts +13 -0
  98. package/dist/dts/launch-params/types.d.ts +48 -0
  99. package/dist/dts/logger/Logger.d.ts +38 -0
  100. package/dist/dts/logger/index.d.ts +1 -0
  101. package/dist/dts/main-button/MainButton.d.ts +104 -0
  102. package/dist/dts/main-button/index.d.ts +2 -0
  103. package/dist/dts/main-button/types.d.ts +20 -0
  104. package/dist/dts/mini-app/MiniApp.d.ts +99 -0
  105. package/dist/dts/mini-app/index.d.ts +2 -0
  106. package/dist/dts/mini-app/types.d.ts +19 -0
  107. package/dist/dts/misc/index.d.ts +2 -0
  108. package/dist/dts/misc/isRecord.d.ts +5 -0
  109. package/dist/dts/misc/isTMA.d.ts +4 -0
  110. package/dist/dts/navigation/HashNavigator/HashNavigator.d.ts +43 -0
  111. package/dist/dts/navigation/HashNavigator/drop.d.ts +4 -0
  112. package/dist/dts/navigation/HashNavigator/go.d.ts +5 -0
  113. package/dist/dts/navigation/HashNavigator/index.d.ts +2 -0
  114. package/dist/dts/navigation/HashNavigator/types.d.ts +34 -0
  115. package/dist/dts/navigation/Navigator/Navigator.d.ts +104 -0
  116. package/dist/dts/navigation/Navigator/index.d.ts +2 -0
  117. package/dist/dts/navigation/Navigator/types.d.ts +44 -0
  118. package/dist/dts/navigation/ensurePrefix.d.ts +7 -0
  119. package/dist/dts/navigation/getHash.d.ts +14 -0
  120. package/dist/dts/navigation/index.d.ts +4 -0
  121. package/dist/dts/parsing/ArrayValueParser.d.ts +18 -0
  122. package/dist/dts/parsing/ParseError.d.ts +22 -0
  123. package/dist/dts/parsing/ParseSchemaFieldError.d.ts +17 -0
  124. package/dist/dts/parsing/ValueParser.d.ts +36 -0
  125. package/dist/dts/parsing/createValueParserGenerator.d.ts +9 -0
  126. package/dist/dts/parsing/index.d.ts +10 -0
  127. package/dist/dts/parsing/parseBySchema.d.ts +8 -0
  128. package/dist/dts/parsing/parsers/array.d.ts +6 -0
  129. package/dist/dts/parsing/parsers/boolean.d.ts +4 -0
  130. package/dist/dts/parsing/parsers/date.d.ts +4 -0
  131. package/dist/dts/parsing/parsers/index.d.ts +8 -0
  132. package/dist/dts/parsing/parsers/json.d.ts +8 -0
  133. package/dist/dts/parsing/parsers/number.d.ts +4 -0
  134. package/dist/dts/parsing/parsers/rgb.d.ts +4 -0
  135. package/dist/dts/parsing/parsers/searchParams.d.ts +8 -0
  136. package/dist/dts/parsing/parsers/string.d.ts +4 -0
  137. package/dist/dts/parsing/toRecord.d.ts +7 -0
  138. package/dist/dts/parsing/types.d.ts +30 -0
  139. package/dist/dts/parsing/unexpectedTypeError.d.ts +4 -0
  140. package/dist/dts/{components/Popup → popup}/Popup.d.ts +10 -9
  141. package/dist/dts/popup/index.d.ts +2 -0
  142. package/dist/dts/popup/preparePopupParams.d.ts +7 -0
  143. package/dist/dts/{components/Popup → popup}/types.d.ts +4 -4
  144. package/dist/dts/{components/QRScanner → qr-scanner}/QRScanner.d.ts +6 -5
  145. package/dist/dts/qr-scanner/index.d.ts +2 -0
  146. package/dist/dts/{components/QRScanner → qr-scanner}/types.d.ts +1 -1
  147. package/dist/dts/state/State.d.ts +19 -7
  148. package/dist/dts/state/types.d.ts +4 -7
  149. package/dist/dts/storage.d.ts +4 -4
  150. package/dist/dts/supports/createSupportsFunc.d.ts +10 -0
  151. package/dist/dts/supports/createSupportsParamFunc.d.ts +15 -0
  152. package/dist/dts/supports/index.d.ts +4 -0
  153. package/dist/dts/supports/supports.d.ts +15 -0
  154. package/dist/dts/supports/types.d.ts +1 -0
  155. package/dist/dts/theme-params/ThemeParams.d.ts +62 -0
  156. package/dist/dts/theme-params/index.d.ts +6 -0
  157. package/dist/dts/theme-params/keys.d.ts +11 -0
  158. package/dist/dts/theme-params/parseThemeParams.d.ts +6 -0
  159. package/dist/dts/theme-params/requestThemeParams.d.ts +7 -0
  160. package/dist/dts/theme-params/serializeThemeParams.d.ts +5 -0
  161. package/dist/dts/theme-params/themeParamsParser.d.ts +2 -0
  162. package/dist/dts/theme-params/types.d.ts +14 -0
  163. package/dist/dts/timeout/TimeoutError.d.ts +3 -0
  164. package/dist/dts/timeout/index.d.ts +3 -0
  165. package/dist/dts/timeout/isTimeoutError.d.ts +6 -0
  166. package/dist/dts/timeout/withTimeout.d.ts +14 -0
  167. package/dist/dts/types/index.d.ts +3 -0
  168. package/dist/dts/types/platform.d.ts +4 -0
  169. package/dist/dts/types/request-id.d.ts +9 -0
  170. package/dist/dts/types/utils.d.ts +36 -0
  171. package/dist/dts/utils/Utils.d.ts +45 -0
  172. package/dist/dts/utils/index.d.ts +1 -0
  173. package/dist/dts/version/compareVersions.d.ts +8 -0
  174. package/dist/dts/version/index.d.ts +2 -0
  175. package/dist/dts/version/types.d.ts +4 -0
  176. package/dist/dts/{components/Viewport → viewport}/Viewport.d.ts +16 -38
  177. package/dist/dts/viewport/index.d.ts +3 -0
  178. package/dist/dts/viewport/requestViewport.d.ts +12 -0
  179. package/dist/dts/{components/Viewport → viewport}/types.d.ts +9 -1
  180. package/dist/dts/viewport/utils.d.ts +5 -0
  181. package/dist/index.cjs +1 -1
  182. package/dist/index.cjs.map +1 -1
  183. package/dist/index.iife.js +1 -1
  184. package/dist/index.iife.js.map +1 -1
  185. package/dist/index.mjs +2254 -1027
  186. package/dist/index.mjs.map +1 -1
  187. package/package.json +7 -16
  188. package/src/{components/BackButton → back-button}/BackButton.ts +23 -21
  189. package/src/back-button/index.ts +2 -0
  190. package/src/{components/BackButton → back-button}/types.ts +3 -2
  191. package/src/bridge/env/hasExternalNotify.ts +19 -0
  192. package/src/bridge/env/hasWebviewProxy.ts +19 -0
  193. package/src/bridge/env/index.ts +3 -0
  194. package/src/bridge/env/isIframe.ts +11 -0
  195. package/src/bridge/errors/MethodUnsupportedError.ts +13 -0
  196. package/src/bridge/errors/ParameterUnsupportedError.ts +13 -0
  197. package/src/bridge/errors/index.ts +2 -0
  198. package/src/bridge/events/createEmitter.ts +108 -0
  199. package/src/bridge/events/events.ts +170 -0
  200. package/src/bridge/events/index.ts +9 -0
  201. package/src/bridge/events/off.ts +14 -0
  202. package/src/bridge/events/on.ts +19 -0
  203. package/src/bridge/events/onTelegramEvent.ts +83 -0
  204. package/src/bridge/events/once.ts +18 -0
  205. package/src/bridge/events/parsers/clipboardTextReceived.ts +26 -0
  206. package/src/bridge/events/parsers/customMethodInvoked.ts +25 -0
  207. package/src/bridge/events/parsers/index.ts +9 -0
  208. package/src/bridge/events/parsers/invoiceClosed.ts +26 -0
  209. package/src/bridge/events/parsers/phoneRequested.ts +14 -0
  210. package/src/bridge/events/parsers/popupClosed.ts +19 -0
  211. package/src/bridge/events/parsers/qrTextReceived.ts +14 -0
  212. package/src/bridge/events/parsers/theme-changed.ts +58 -0
  213. package/src/bridge/events/parsers/viewportChanged.ts +33 -0
  214. package/src/bridge/events/parsers/writeAccessRequested.ts +14 -0
  215. package/src/bridge/events/singletonEmitter.ts +19 -0
  216. package/src/bridge/events/subscribe.ts +15 -0
  217. package/src/bridge/events/unsubscribe.ts +10 -0
  218. package/src/bridge/index.ts +5 -0
  219. package/src/bridge/methods/createPostEvent.ts +40 -0
  220. package/src/bridge/methods/haptic.ts +52 -0
  221. package/src/bridge/methods/index.ts +6 -0
  222. package/src/bridge/methods/invoke-custom-method.ts +25 -0
  223. package/src/bridge/methods/methods.ts +372 -0
  224. package/src/bridge/methods/popup.ts +53 -0
  225. package/src/bridge/methods/postEvent.ts +101 -0
  226. package/src/bridge/request.ts +185 -0
  227. package/src/classnames/classNames.ts +34 -0
  228. package/src/classnames/index.ts +2 -0
  229. package/src/classnames/mergeClassNames.ts +68 -0
  230. package/src/{components/ClosingBehaviour/ClosingBehaviour.ts → closing-behavior/ClosingBehavior.ts} +12 -10
  231. package/src/closing-behavior/index.ts +2 -0
  232. package/src/closing-behavior/types.ts +12 -0
  233. package/src/{components/CloudStorage → cloud-storage}/CloudStorage.ts +50 -28
  234. package/src/colors/index.ts +5 -0
  235. package/src/colors/isColorDark.ts +22 -0
  236. package/src/colors/isRGB.ts +9 -0
  237. package/src/colors/isRGBShort.ts +9 -0
  238. package/src/colors/toRGB.ts +49 -0
  239. package/src/colors/types.ts +9 -0
  240. package/src/event-emitter/EventEmitter.ts +146 -0
  241. package/src/event-emitter/index.ts +2 -0
  242. package/src/event-emitter/types.ts +60 -0
  243. package/src/globals.ts +38 -0
  244. package/src/{components/HapticFeedback → haptic-feedback}/HapticFeedback.ts +16 -8
  245. package/src/index.ts +171 -6
  246. package/src/init/catchCustomStyles.ts +17 -0
  247. package/src/init/creators/createBackButton.ts +4 -6
  248. package/src/init/creators/createClosingBehavior.ts +6 -8
  249. package/src/init/creators/createMainButton.ts +13 -20
  250. package/src/init/creators/createMiniApp.ts +44 -0
  251. package/src/init/creators/createRequestIdGenerator.ts +1 -1
  252. package/src/init/creators/createThemeParams.ts +3 -6
  253. package/src/init/creators/createViewport.ts +92 -42
  254. package/src/init/creators/index.ts +1 -1
  255. package/src/init/css/bindMiniAppCSSVars.ts +48 -0
  256. package/src/init/css/bindThemeCSSVars.ts +31 -0
  257. package/src/init/css/bindViewportCSSVars.ts +36 -0
  258. package/src/init/css/index.ts +1 -0
  259. package/src/init/css/processCSSVarsOption.ts +57 -0
  260. package/src/init/css/setCSSVar.ts +8 -0
  261. package/src/init/init.ts +119 -154
  262. package/src/init/types.ts +42 -87
  263. package/src/init-data/InitData.ts +96 -0
  264. package/src/init-data/chatParser.ts +19 -0
  265. package/src/init-data/index.ts +6 -0
  266. package/src/init-data/initDataParser.ts +41 -0
  267. package/src/init-data/parseInitData.ts +10 -0
  268. package/src/init-data/types.ts +164 -0
  269. package/src/init-data/userParser.ts +45 -0
  270. package/src/invoice/Invoice.ts +123 -0
  271. package/src/invoice/index.ts +2 -0
  272. package/src/invoice/types.ts +11 -0
  273. package/src/launch-params/computeLaunchData.ts +81 -0
  274. package/src/launch-params/computePageReload.ts +13 -0
  275. package/src/launch-params/getFirstNavigationEntry.ts +10 -0
  276. package/src/launch-params/index.ts +12 -0
  277. package/src/launch-params/launchParamsParser.ts +41 -0
  278. package/src/launch-params/parseLaunchParams.ts +10 -0
  279. package/src/launch-params/retrieveCurrent.ts +27 -0
  280. package/src/launch-params/retrieveFromLocation.ts +10 -0
  281. package/src/launch-params/retrieveFromPerformance.ts +23 -0
  282. package/src/launch-params/retrieveLaunchData.ts +30 -0
  283. package/src/launch-params/serializeLaunchParams.ts +37 -0
  284. package/src/launch-params/storage.ts +33 -0
  285. package/src/launch-params/types.ts +57 -0
  286. package/src/logger/Logger.ts +72 -0
  287. package/src/logger/index.ts +1 -0
  288. package/src/main-button/MainButton.ts +239 -0
  289. package/src/main-button/index.ts +2 -0
  290. package/src/main-button/types.ts +26 -0
  291. package/src/mini-app/MiniApp.ts +237 -0
  292. package/src/mini-app/index.ts +2 -0
  293. package/src/mini-app/types.ts +25 -0
  294. package/src/misc/index.ts +2 -0
  295. package/src/misc/isRecord.ts +7 -0
  296. package/src/misc/isTMA.ts +13 -0
  297. package/src/navigation/HashNavigator/HashNavigator.ts +220 -0
  298. package/src/navigation/HashNavigator/drop.ts +36 -0
  299. package/src/navigation/HashNavigator/go.ts +28 -0
  300. package/src/navigation/HashNavigator/index.ts +2 -0
  301. package/src/navigation/HashNavigator/types.ts +41 -0
  302. package/src/navigation/Navigator/Navigator.ts +282 -0
  303. package/src/navigation/Navigator/index.ts +2 -0
  304. package/src/navigation/Navigator/types.ts +55 -0
  305. package/src/navigation/ensurePrefix.ts +9 -0
  306. package/src/navigation/getHash.ts +17 -0
  307. package/src/navigation/index.ts +4 -0
  308. package/src/parsing/ArrayValueParser.ts +79 -0
  309. package/src/parsing/ParseError.ts +27 -0
  310. package/src/parsing/ParseSchemaFieldError.ts +21 -0
  311. package/src/parsing/ValueParser.ts +71 -0
  312. package/src/parsing/createValueParserGenerator.ts +16 -0
  313. package/src/parsing/index.ts +10 -0
  314. package/src/parsing/parseBySchema.ts +65 -0
  315. package/src/parsing/parsers/array.ts +9 -0
  316. package/src/parsing/parsers/boolean.ts +22 -0
  317. package/src/parsing/parsers/date.ts +13 -0
  318. package/src/parsing/parsers/index.ts +8 -0
  319. package/src/parsing/parsers/json.ts +17 -0
  320. package/src/parsing/parsers/number.ts +21 -0
  321. package/src/parsing/parsers/rgb.ts +12 -0
  322. package/src/parsing/parsers/searchParams.ts +24 -0
  323. package/src/parsing/parsers/string.ts +12 -0
  324. package/src/parsing/toRecord.ts +27 -0
  325. package/src/parsing/types.ts +32 -0
  326. package/src/parsing/unexpectedTypeError.ts +6 -0
  327. package/src/{components/Popup → popup}/Popup.ts +38 -28
  328. package/src/popup/index.ts +2 -0
  329. package/src/{components/Popup/utils.ts → popup/preparePopupParams.ts} +3 -3
  330. package/src/{components/Popup → popup}/types.ts +4 -4
  331. package/src/{components/QRScanner → qr-scanner}/QRScanner.ts +18 -10
  332. package/src/qr-scanner/index.ts +2 -0
  333. package/src/{components/QRScanner → qr-scanner}/types.ts +1 -1
  334. package/src/state/State.ts +31 -21
  335. package/src/state/types.ts +5 -8
  336. package/src/storage.ts +6 -4
  337. package/src/supports/createSupportsFunc.ts +18 -0
  338. package/src/supports/createSupportsParamFunc.ts +27 -0
  339. package/src/supports/index.ts +4 -0
  340. package/src/supports/supports.ts +84 -0
  341. package/src/supports/types.ts +1 -0
  342. package/src/theme-params/ThemeParams.ts +131 -0
  343. package/src/theme-params/index.ts +6 -0
  344. package/src/theme-params/keys.ts +24 -0
  345. package/src/theme-params/parseThemeParams.ts +10 -0
  346. package/src/theme-params/requestThemeParams.ts +13 -0
  347. package/src/theme-params/serializeThemeParams.ts +20 -0
  348. package/src/theme-params/themeParamsParser.ts +20 -0
  349. package/src/theme-params/types.ts +33 -0
  350. package/src/timeout/TimeoutError.ts +6 -0
  351. package/src/timeout/index.ts +3 -0
  352. package/src/timeout/isTimeoutError.ts +9 -0
  353. package/src/timeout/withTimeout.ts +36 -0
  354. package/src/types/index.ts +3 -0
  355. package/src/types/platform.ts +14 -0
  356. package/src/types/request-id.ts +10 -0
  357. package/src/types/utils.ts +50 -0
  358. package/src/utils/Utils.ts +107 -0
  359. package/src/utils/index.ts +1 -0
  360. package/src/version/compareVersions.ts +28 -0
  361. package/src/version/index.ts +2 -0
  362. package/src/version/types.ts +4 -0
  363. package/src/{components/Viewport → viewport}/Viewport.ts +72 -98
  364. package/src/viewport/index.ts +3 -0
  365. package/src/viewport/requestViewport.ts +23 -0
  366. package/src/{components/Viewport → viewport}/types.ts +10 -1
  367. package/src/viewport/utils.ts +7 -0
  368. package/dist/dts/components/BackButton/index.d.ts +0 -2
  369. package/dist/dts/components/ClosingBehaviour/index.d.ts +0 -2
  370. package/dist/dts/components/ClosingBehaviour/types.d.ts +0 -7
  371. package/dist/dts/components/InitData/InitData.d.ts +0 -60
  372. package/dist/dts/components/InitData/index.d.ts +0 -1
  373. package/dist/dts/components/MainButton/MainButton.d.ts +0 -114
  374. package/dist/dts/components/MainButton/index.d.ts +0 -2
  375. package/dist/dts/components/MainButton/types.d.ts +0 -15
  376. package/dist/dts/components/Popup/index.d.ts +0 -2
  377. package/dist/dts/components/Popup/utils.d.ts +0 -7
  378. package/dist/dts/components/QRScanner/index.d.ts +0 -2
  379. package/dist/dts/components/ThemeParams/ThemeParams.d.ts +0 -85
  380. package/dist/dts/components/ThemeParams/index.d.ts +0 -2
  381. package/dist/dts/components/ThemeParams/types.d.ts +0 -6
  382. package/dist/dts/components/Viewport/index.d.ts +0 -2
  383. package/dist/dts/components/WebApp/WebApp.d.ts +0 -146
  384. package/dist/dts/components/WebApp/index.d.ts +0 -2
  385. package/dist/dts/components/WebApp/types.d.ts +0 -11
  386. package/dist/dts/components/index.d.ts +0 -11
  387. package/dist/dts/env.d.ts +0 -10
  388. package/dist/dts/errors/MethodNotSupportedError.d.ts +0 -6
  389. package/dist/dts/errors/ParameterNotSupportedError.d.ts +0 -6
  390. package/dist/dts/errors/index.d.ts +0 -2
  391. package/dist/dts/init/creators/createWebApp.d.ts +0 -16
  392. package/dist/dts/init/css.d.ts +0 -50
  393. package/dist/dts/supports.d.ts +0 -22
  394. package/dist/dts/types.d.ts +0 -10
  395. package/dist/dts/url.d.ts +0 -7
  396. package/src/components/BackButton/index.ts +0 -2
  397. package/src/components/ClosingBehaviour/index.ts +0 -6
  398. package/src/components/ClosingBehaviour/types.ts +0 -12
  399. package/src/components/InitData/InitData.ts +0 -139
  400. package/src/components/InitData/index.ts +0 -1
  401. package/src/components/MainButton/MainButton.ts +0 -242
  402. package/src/components/MainButton/index.ts +0 -2
  403. package/src/components/MainButton/types.ts +0 -20
  404. package/src/components/Popup/index.ts +0 -8
  405. package/src/components/QRScanner/index.ts +0 -2
  406. package/src/components/ThemeParams/ThemeParams.ts +0 -168
  407. package/src/components/ThemeParams/index.ts +0 -2
  408. package/src/components/ThemeParams/types.ts +0 -11
  409. package/src/components/Viewport/index.ts +0 -2
  410. package/src/components/WebApp/WebApp.ts +0 -311
  411. package/src/components/WebApp/index.ts +0 -2
  412. package/src/components/WebApp/types.ts +0 -17
  413. package/src/components/index.ts +0 -11
  414. package/src/env.ts +0 -22
  415. package/src/errors/MethodNotSupportedError.ts +0 -9
  416. package/src/errors/ParameterNotSupportedError.ts +0 -9
  417. package/src/errors/index.ts +0 -2
  418. package/src/init/creators/createWebApp.ts +0 -52
  419. package/src/init/css.ts +0 -142
  420. package/src/supports.ts +0 -44
  421. package/src/types.ts +0 -13
  422. package/src/url.ts +0 -23
  423. /package/dist/dts/{components/CloudStorage → cloud-storage}/index.d.ts +0 -0
  424. /package/dist/dts/{components/HapticFeedback → haptic-feedback}/index.d.ts +0 -0
  425. /package/src/{components/CloudStorage → cloud-storage}/index.ts +0 -0
  426. /package/src/{components/HapticFeedback → haptic-feedback}/index.ts +0 -0
@@ -1,11 +1,13 @@
1
- import { type PostEvent } from '@tma.js/bridge';
2
- import type { Version } from '@tma.js/utils';
3
- import { type SupportsFunc } from '../../supports.js';
1
+ import { type PostEvent } from '../bridge/index.js';
2
+ import { EventEmitter } from '../event-emitter/index.js';
3
+ import { type SupportsFunc } from '../supports/index.js';
4
+ import type { Version } from '../version/index.js';
5
+ import type { BackButtonEvents } from './types.js';
6
+ type Emitter = EventEmitter<BackButtonEvents>;
4
7
  /**
5
- * Class which controls the back button displayed in the header
6
- * of the Mini App in the Telegram interface. It is mostly used in case, when
7
- * you want to provide a way to go bach in routing history or "rollback" some
8
- * action.
8
+ * Class which controls the back button displayed in the header of the Mini App in the Telegram
9
+ * interface. It is mostly used in case, when you want to provide a way to go bach in routing
10
+ * history or "rollback" some action.
9
11
  */
10
12
  export declare class BackButton {
11
13
  private readonly postEvent;
@@ -26,13 +28,13 @@ export declare class BackButton {
26
28
  * @param event - event name.
27
29
  * @param listener - event listener.
28
30
  */
29
- on: typeof this.ee.on;
31
+ on: Emitter['on'];
30
32
  /**
31
33
  * Removes event listener.
32
34
  * @param event - event name.
33
35
  * @param listener - event listener.
34
36
  */
35
- off: typeof this.ee.off;
37
+ off: Emitter['off'];
36
38
  /**
37
39
  * Shows the BackButton.
38
40
  */
@@ -42,3 +44,4 @@ export declare class BackButton {
42
44
  */
43
45
  supports: SupportsFunc<'show' | 'hide'>;
44
46
  }
47
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './BackButton.js';
2
+ export * from './types.js';
@@ -1,9 +1,10 @@
1
- import type { StateEvents } from '../../state/index.js';
1
+ import type { MiniAppsEventListener } from '../bridge/index.js';
2
+ import type { StateEvents } from '../state/index.js';
2
3
  export interface BackButtonState {
3
4
  isVisible: boolean;
4
5
  }
5
6
  export interface BackButtonEvents extends StateEvents<BackButtonState> {
6
- click: () => void;
7
+ click: MiniAppsEventListener<'main_button_pressed'>;
7
8
  }
8
9
  export type BackButtonEventName = keyof BackButtonEvents;
9
10
  export type BackButtonEventListener<E extends BackButtonEventName> = BackButtonEvents[E];
@@ -0,0 +1,12 @@
1
+ type WithExternalNotify<T> = T & {
2
+ external: {
3
+ notify: (...args: any) => any;
4
+ };
5
+ };
6
+ /**
7
+ * Returns true in case, passed value contains path `external.notify` property and `notify` is a
8
+ * function.
9
+ * @param value - value to check.
10
+ */
11
+ export declare function hasExternalNotify<T extends {}>(value: T): value is WithExternalNotify<T>;
12
+ export {};
@@ -0,0 +1,12 @@
1
+ type WithWebviewProxy<T> = T & {
2
+ TelegramWebviewProxy: {
3
+ postEvent: (...args: any) => any;
4
+ };
5
+ };
6
+ /**
7
+ * Returns true in case, passed value contains path `TelegramWebviewProxy.postEvent` property and
8
+ * `postEvent` is a function.
9
+ * @param value - value to check.
10
+ */
11
+ export declare function hasWebviewProxy<T extends {}>(value: T): value is WithWebviewProxy<T>;
12
+ export {};
@@ -0,0 +1,3 @@
1
+ export * from './hasExternalNotify.js';
2
+ export * from './hasWebviewProxy.js';
3
+ export * from './isIframe.js';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Returns true in case, current environment is iframe.
3
+ * @see https://stackoverflow.com/a/326076
4
+ */
5
+ export declare function isIframe(): boolean;
@@ -0,0 +1,8 @@
1
+ import type { Version } from '../../version/index.js';
2
+ import type { MiniAppsMethodName } from '../methods/index.js';
3
+ /**
4
+ * Error thrown in case, unsupported method was called.
5
+ */
6
+ export declare class MethodUnsupportedError extends Error {
7
+ constructor(method: MiniAppsMethodName, version: Version);
8
+ }
@@ -0,0 +1,8 @@
1
+ import type { Version } from '../../version/index.js';
2
+ import type { MiniAppsMethodName } from '../methods/index.js';
3
+ /**
4
+ * Error thrown in case, unsupported parameter was used.
5
+ */
6
+ export declare class ParameterUnsupportedError extends Error {
7
+ constructor(method: MiniAppsMethodName, param: string, version: Version);
8
+ }
@@ -0,0 +1,2 @@
1
+ export * from './MethodUnsupportedError.js';
2
+ export * from './ParameterUnsupportedError.js';
@@ -0,0 +1,6 @@
1
+ import type { MiniAppsEventEmitter } from './events.js';
2
+ /**
3
+ * Returns event emitter which could be safely used, to process events from
4
+ * Telegram native application.
5
+ */
6
+ export declare function createEmitter(): MiniAppsEventEmitter;
@@ -0,0 +1,130 @@
1
+ import type { AnySubscribeListener, EventEmitter, EventListener, EventParams } from '../../event-emitter/index.js';
2
+ import type { IsNever, Not } from '../../types/index.js';
3
+ import type { ClipboardTextReceivedPayload, CustomMethodInvokedPayload, InvoiceClosedPayload, PhoneRequestedPayload, PopupClosedPayload, QrTextReceivedPayload, ThemeChangedPayload, ViewportChangedPayload, WriteAccessRequestedPayload } from './parsers/index.js';
4
+ /**
5
+ * Map where key is known event name, and value is its listener.
6
+ * @see https://docs.telegram-mini-apps.com/platform/apps-communication/events
7
+ */
8
+ export interface MiniAppsEvents {
9
+ /**
10
+ * User clicked back button.
11
+ * @since v6.1
12
+ * @see https://docs.telegram-mini-apps.com/platform/apps-communication/events#back-button-pressed
13
+ */
14
+ back_button_pressed: () => void;
15
+ /**
16
+ * Telegram application attempted to extract text from clipboard.
17
+ * @param payload - event payload.
18
+ * @since v6.4
19
+ * @see https://docs.telegram-mini-apps.com/platform/apps-communication/events#clipboard-text-received
20
+ */
21
+ clipboard_text_received: (payload: ClipboardTextReceivedPayload) => void;
22
+ /**
23
+ * Custom method invocation completed.
24
+ * @param payload - event payload.
25
+ * @since v6.9
26
+ * @see https://docs.telegram-mini-apps.com/platform/apps-communication/events#custom-method-invoked
27
+ */
28
+ custom_method_invoked: (payload: CustomMethodInvokedPayload) => void;
29
+ /**
30
+ * An invoice was closed.
31
+ * @param payload - invoice close information.
32
+ * @see https://docs.telegram-mini-apps.com/platform/apps-communication/events#invoice-closed
33
+ */
34
+ invoice_closed: (payload: InvoiceClosedPayload) => void;
35
+ /**
36
+ * User clicked the Main Button.
37
+ * @see https://docs.telegram-mini-apps.com/platform/apps-communication/events#main-button-pressed
38
+ */
39
+ main_button_pressed: () => void;
40
+ /**
41
+ * Application received phone access request status.
42
+ * @param payload - event payload.
43
+ * @since v6.9
44
+ * @see https://docs.telegram-mini-apps.com/platform/apps-communication/events#phone-requested
45
+ */
46
+ phone_requested: (payload: PhoneRequestedPayload) => void;
47
+ /**
48
+ * Popup was closed.
49
+ * @param payload - event payload.
50
+ * @see https://docs.telegram-mini-apps.com/platform/apps-communication/events#popup-closed
51
+ */
52
+ popup_closed: (payload: PopupClosedPayload) => void;
53
+ /**
54
+ * Parent iframe requested current iframe reload.
55
+ * @see https://docs.telegram-mini-apps.com/platform/apps-communication/events#reload-iframe
56
+ */
57
+ reload_iframe: () => void;
58
+ /**
59
+ * The QR scanner scanned some QR and extracted its content.
60
+ * @param payload - event payload.
61
+ * @since v6.4
62
+ * @see https://docs.telegram-mini-apps.com/platform/apps-communication/events#qr-text-received
63
+ */
64
+ qr_text_received: (payload: QrTextReceivedPayload) => void;
65
+ /**
66
+ * QR scanner was closed.
67
+ * @since v6.4
68
+ * @see https://docs.telegram-mini-apps.com/platform/apps-communication/events#scan-qr-popup-closed
69
+ */
70
+ scan_qr_popup_closed: () => void;
71
+ /**
72
+ * The event which is usually sent by the Telegram web application. Its payload represents
73
+ * `<style/>` tag html content, a developer could use. The stylesheet described in the payload
74
+ * will help the developer to stylize the app scrollbar (but he is still able to do it himself).
75
+ * @param html - `style` tag inner HTML.
76
+ * @see https://docs.telegram-mini-apps.com/platform/apps-communication/events#set-custom-style
77
+ */
78
+ set_custom_style: (html: string) => void;
79
+ /**
80
+ * Occurs when the Settings Button was pressed.
81
+ * @since v6.1
82
+ * @see https://docs.telegram-mini-apps.com/platform/apps-communication/events#settings-button-pressed
83
+ */
84
+ settings_button_pressed: () => void;
85
+ /**
86
+ * Occurs whenever theme settings are changed in the user's Telegram app
87
+ * (including switching to night mode).
88
+ * @param payload - event payload.
89
+ * @see https://docs.telegram-mini-apps.com/platform/apps-communication/events#theme-changed
90
+ */
91
+ theme_changed: (payload: ThemeChangedPayload) => void;
92
+ /**
93
+ * Occurs whenever the viewport has been changed. For example, when the user started
94
+ * dragging the application or called the expansion method.
95
+ * @param payload - event payload.
96
+ * @see https://docs.telegram-mini-apps.com/platform/apps-communication/events#viewport-changed
97
+ */
98
+ viewport_changed: (payload: ViewportChangedPayload) => void;
99
+ /**
100
+ * Application received write access request status.
101
+ * @param payload - event payload.
102
+ * @since v6.9
103
+ * @see https://docs.telegram-mini-apps.com/platform/apps-communication/events#write-access-requested
104
+ */
105
+ write_access_requested: (payload: WriteAccessRequestedPayload) => void;
106
+ }
107
+ /**
108
+ * Any known event name.
109
+ */
110
+ export type MiniAppsEventName = keyof MiniAppsEvents;
111
+ /**
112
+ * Parameters of specified event.
113
+ */
114
+ export type MiniAppsEventParams<E extends MiniAppsEventName> = EventParams<MiniAppsEvents[E]>[0];
115
+ /**
116
+ * Returns event listener for specified event name.
117
+ */
118
+ export type MiniAppsEventListener<E extends MiniAppsEventName> = EventListener<MiniAppsEvents[E]>;
119
+ /**
120
+ * Event emitter, based describe events map.
121
+ */
122
+ export type MiniAppsEventEmitter = EventEmitter<MiniAppsEvents>;
123
+ /**
124
+ * Returns true in case, event has parameters.
125
+ */
126
+ export type MiniAppsEventHasParams<E extends MiniAppsEventName> = Not<IsNever<MiniAppsEventParams<E>>>;
127
+ /**
128
+ * Event listener used in `subscribe` and `unsubscribe` functions.
129
+ */
130
+ export type MiniAppsGlobalEventListener = AnySubscribeListener<MiniAppsEvents> | ((event: string, data: unknown) => void);
@@ -0,0 +1,9 @@
1
+ export * from './createEmitter.js';
2
+ export * from './events.js';
3
+ export * from './off.js';
4
+ export * from './on.js';
5
+ export * from './once.js';
6
+ export * from './parsers/index.js';
7
+ export * from './singletonEmitter.js';
8
+ export * from './subscribe.js';
9
+ export * from './unsubscribe.js';
@@ -0,0 +1,7 @@
1
+ import type { MiniAppsEventListener, MiniAppsEventName } from './events.js';
2
+ /**
3
+ * Removes listener from specified event.
4
+ * @param event - event to listen.
5
+ * @param listener - event listener.
6
+ */
7
+ export declare function off<E extends MiniAppsEventName>(event: E, listener: MiniAppsEventListener<E>): void;
@@ -0,0 +1,10 @@
1
+ import type { MiniAppsEventListener, MiniAppsEventName } from './events.js';
2
+ type StopListening = () => void;
3
+ /**
4
+ * Adds new listener to the specified event. Returns handler
5
+ * which allows to stop listening to event.
6
+ * @param event - event name.
7
+ * @param listener - event listener.
8
+ */
9
+ export declare function on<E extends MiniAppsEventName>(event: E, listener: MiniAppsEventListener<E>): StopListening;
10
+ export {};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Adds listener to window "message" event assuming, that this event could
3
+ * be sent by Telegram native application. Calls passed callback with event
4
+ * type and data.
5
+ * @param cb - callback to call.
6
+ */
7
+ export declare function onTelegramEvent(cb: (eventType: string, eventData: unknown) => void): void;
@@ -0,0 +1,9 @@
1
+ import type { MiniAppsEventListener, MiniAppsEventName } from './events.js';
2
+ type StopListening = () => void;
3
+ /**
4
+ * Works the same as "on" method, but after catching the event, will remove event listener.
5
+ * @param event - event name.
6
+ * @param listener - event listener.
7
+ */
8
+ export declare function once<E extends MiniAppsEventName>(event: E, listener: MiniAppsEventListener<E>): StopListening;
9
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { RequestId } from '../../../types/index.js';
2
+ export interface ClipboardTextReceivedPayload {
3
+ /**
4
+ * Passed during the `web_app_read_text_from_clipboard` method invocation `req_id` value.
5
+ */
6
+ req_id: RequestId;
7
+ /**
8
+ * Data extracted from the clipboard. The returned value will have the type `string` only in
9
+ * the case, application has access to the clipboard.
10
+ */
11
+ data?: string | null;
12
+ }
13
+ export declare function clipboardTextReceived(): import('../../../parsing/index.js').ValueParser<ClipboardTextReceivedPayload, false>;
@@ -0,0 +1,16 @@
1
+ import type { RequestId } from '../../../types/index.js';
2
+ export interface CustomMethodInvokedPayload<R = unknown> {
3
+ /**
4
+ * Unique identifier of this invocation.
5
+ */
6
+ req_id: RequestId;
7
+ /**
8
+ * Method invocation successful result.
9
+ */
10
+ result?: R;
11
+ /**
12
+ * Method invocation error code.
13
+ */
14
+ error?: string;
15
+ }
16
+ export declare function customMethodInvoked(): import('../../../parsing/index.js').ValueParser<CustomMethodInvokedPayload<unknown>, false>;
@@ -0,0 +1,9 @@
1
+ export * from './clipboardTextReceived.js';
2
+ export * from './customMethodInvoked.js';
3
+ export * from './invoiceClosed.js';
4
+ export * from './phoneRequested.js';
5
+ export * from './popupClosed.js';
6
+ export * from './qrTextReceived.js';
7
+ export * from './theme-changed.js';
8
+ export * from './viewportChanged.js';
9
+ export * from './writeAccessRequested.js';
@@ -0,0 +1,12 @@
1
+ export type InvoiceStatus = 'paid' | 'failed' | 'pending' | 'cancelled' | string;
2
+ export interface InvoiceClosedPayload {
3
+ /**
4
+ * Passed during the `web_app_open_invoice` method invocation `slug` value.
5
+ */
6
+ slug: string;
7
+ /**
8
+ * Invoice status
9
+ */
10
+ status: InvoiceStatus;
11
+ }
12
+ export declare function invoiceClosed(): import('../../../parsing/index.js').ValueParser<InvoiceClosedPayload, false>;
@@ -0,0 +1,8 @@
1
+ export type PhoneRequestedStatus = 'sent' | string;
2
+ export interface PhoneRequestedPayload {
3
+ /**
4
+ * Request status.
5
+ */
6
+ status: PhoneRequestedStatus;
7
+ }
8
+ export declare function phoneRequested(): import('../../../parsing/index.js').ValueParser<PhoneRequestedPayload, false>;
@@ -0,0 +1,8 @@
1
+ export interface PopupClosedPayload {
2
+ /**
3
+ * Identifier of the clicked button. In case, the popup was closed without clicking any button,
4
+ * this property will be omitted.
5
+ */
6
+ button_id?: string;
7
+ }
8
+ export declare function popupClosed(): import('../../../parsing/index.js').ValueParser<PopupClosedPayload, false>;
@@ -0,0 +1,7 @@
1
+ export interface QrTextReceivedPayload {
2
+ /**
3
+ * Data extracted from the QR.
4
+ */
5
+ data?: string;
6
+ }
7
+ export declare function qrTextReceived(): import('../../../parsing/index.js').ValueParser<QrTextReceivedPayload, false>;
@@ -0,0 +1,42 @@
1
+ import type { RGB } from '../../../colors/index.js';
2
+ export interface ThemeChangedPayload {
3
+ /**
4
+ * Map where the key is a theme stylesheet key and value is the corresponding color in
5
+ * `#RRGGBB` format.
6
+ */
7
+ theme_params: {
8
+ /**
9
+ * @since v6.10
10
+ */
11
+ accent_text_color?: RGB;
12
+ bg_color?: RGB;
13
+ button_color?: RGB;
14
+ button_text_color?: RGB;
15
+ /**
16
+ * @since v6.10
17
+ */
18
+ destructive_text_color?: RGB;
19
+ /**
20
+ * @since v6.10
21
+ */
22
+ header_bg_color?: RGB;
23
+ hint_color?: RGB;
24
+ link_color?: RGB;
25
+ secondary_bg_color?: RGB;
26
+ /**
27
+ * @since v6.10
28
+ */
29
+ section_bg_color?: RGB;
30
+ /**
31
+ * @since v6.10
32
+ */
33
+ section_header_text_color?: RGB;
34
+ /**
35
+ * @since v6.10
36
+ */
37
+ subtitle_text_color?: RGB;
38
+ text_color?: RGB;
39
+ [key: string]: RGB | undefined;
40
+ };
41
+ }
42
+ export declare function themeChanged(): import('../../../parsing/index.js').ValueParser<ThemeChangedPayload, false>;
@@ -0,0 +1,19 @@
1
+ export interface ViewportChangedPayload {
2
+ /**
3
+ * The viewport height.
4
+ */
5
+ height: number;
6
+ /**
7
+ * The viewport width.
8
+ */
9
+ width: number;
10
+ /**
11
+ * Is the viewport currently expanded.
12
+ */
13
+ is_expanded: boolean;
14
+ /**
15
+ * Is the viewport current state stable and not going to change in the next moment.
16
+ */
17
+ is_state_stable: boolean;
18
+ }
19
+ export declare function viewportChanged(): import('../../../parsing/index.js').ValueParser<ViewportChangedPayload, false>;
@@ -0,0 +1,8 @@
1
+ export type WriteAccessRequestedStatus = 'allowed' | string;
2
+ export interface WriteAccessRequestedPayload {
3
+ /**
4
+ * Request status.
5
+ */
6
+ status: WriteAccessRequestedStatus;
7
+ }
8
+ export declare function writeAccessRequested(): import('../../../parsing/index.js').ValueParser<WriteAccessRequestedPayload, false>;
@@ -0,0 +1,6 @@
1
+ import type { MiniAppsEventEmitter } from '../../bridge/index.js';
2
+ /**
3
+ * Returns singleton instance of bridge EventEmitter. Also, defines
4
+ * Telegram event handlers.
5
+ */
6
+ export declare function singletonEmitter(): MiniAppsEventEmitter;
@@ -0,0 +1,9 @@
1
+ import type { MiniAppsGlobalEventListener } from './events.js';
2
+ type StopListening = () => void;
3
+ /**
4
+ * Subscribes to all events sent from the native Telegram application.
5
+ * Returns function used to remove added event listener.
6
+ * @param listener - event listener.
7
+ */
8
+ export declare function subscribe(listener: MiniAppsGlobalEventListener): StopListening;
9
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { MiniAppsGlobalEventListener } from './events.js';
2
+ /**
3
+ * Removes global event listener.
4
+ * @param listener - event listener.
5
+ */
6
+ export declare function unsubscribe(listener: MiniAppsGlobalEventListener): void;
@@ -0,0 +1,5 @@
1
+ export * from './env/index.js';
2
+ export * from './errors/index.js';
3
+ export * from './events/index.js';
4
+ export * from './methods/index.js';
5
+ export * from './request.js';
@@ -0,0 +1,10 @@
1
+ import type { Version } from '../../version/index.js';
2
+ import { type PostEvent } from './postEvent.js';
3
+ /**
4
+ * Creates function which checks if specified method and parameters are supported. In case,
5
+ * method or parameters are unsupported, an error will be thrown.
6
+ * @param version - Telegram Mini Apps version.
7
+ * @throws {MethodUnsupportedError} Method is unsupported.
8
+ * @throws {ParameterUnsupportedError} Method parameter is unsupported.
9
+ */
10
+ export declare function createPostEvent(version: Version): PostEvent;
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Generic type which creates new types of haptic feedback.
3
+ */
4
+ type CreateHapticFeedbackParams<T extends string, P> = {
5
+ type: T;
6
+ } & P;
7
+ /**
8
+ * Style of impact occurred haptic event.
9
+ * - `light`, indicates a collision between small or lightweight UI objects,
10
+ * - `medium`, indicates a collision between medium-sized or medium-weight UI objects,
11
+ * - `heavy`, indicates a collision between large or heavyweight UI objects,
12
+ * - `rigid`, indicates a collision between hard or inflexible UI objects,
13
+ * - `soft`, indicates a collision between soft or flexible UI objects.
14
+ */
15
+ export type ImpactHapticFeedbackStyle = 'light' | 'medium' | 'heavy' | 'rigid' | 'soft';
16
+ /**
17
+ * Type of notification occurred type event.
18
+ * - `error`, indicates that a task or action has failed,
19
+ * - `success`, indicates that a task or action has completed successfully,
20
+ * - `warning`, indicates that a task or action produced a warning.
21
+ */
22
+ export type NotificationHapticFeedbackType = 'error' | 'success' | 'warning';
23
+ /**
24
+ * `impactOccurred` haptic feedback.
25
+ */
26
+ export type ImpactHapticFeedbackParams = CreateHapticFeedbackParams<'impact', {
27
+ impact_style: ImpactHapticFeedbackStyle;
28
+ }>;
29
+ /**
30
+ * `notificationOccurred` haptic feedback.
31
+ */
32
+ export type NotificationHapticFeedbackParams = CreateHapticFeedbackParams<'notification', {
33
+ notification_type: NotificationHapticFeedbackType;
34
+ }>;
35
+ /**
36
+ * `selectionChanged` haptic feedback.
37
+ */
38
+ export type SelectionHapticFeedbackParams = CreateHapticFeedbackParams<'selection_change', {}>;
39
+ export type AnyHapticFeedbackParams = ImpactHapticFeedbackParams | NotificationHapticFeedbackParams | SelectionHapticFeedbackParams;
40
+ export {};
@@ -0,0 +1,6 @@
1
+ export * from './createPostEvent.js';
2
+ export * from './haptic.js';
3
+ export * from './invoke-custom-method.js';
4
+ export * from './methods.js';
5
+ export * from './popup.js';
6
+ export * from './postEvent.js';
@@ -0,0 +1,24 @@
1
+ import type { RequestId } from '../../types/index.js';
2
+ interface CreateInvokeCustomMethodParams<M extends string, Params extends object> {
3
+ /**
4
+ * Unique request identifier.
5
+ */
6
+ req_id: RequestId;
7
+ /**
8
+ * Method name.
9
+ */
10
+ method: M;
11
+ /**
12
+ * Method specific parameters.
13
+ */
14
+ params: Params;
15
+ }
16
+ export type AnyInvokeCustomMethodParams = CreateInvokeCustomMethodParams<'deleteStorageValues', {
17
+ keys: string | string[];
18
+ }> | CreateInvokeCustomMethodParams<'getStorageValues', {
19
+ keys: string | string[];
20
+ }> | CreateInvokeCustomMethodParams<'getStorageKeys', {}> | CreateInvokeCustomMethodParams<'saveStorageValue', {
21
+ key: string;
22
+ value: string;
23
+ }> | CreateInvokeCustomMethodParams<string, any>;
24
+ export {};