@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
@@ -0,0 +1,43 @@
1
+ import type { HashNavigatorEventsMap, HashNavigatorOptions } from './types.js';
2
+ import { Navigator } from '../Navigator/index.js';
3
+ import type { NavigatorConEntry, PerformGoOptions, PerformPushOptions, PerformReplaceOptions } from '../Navigator/types.js';
4
+ export declare class HashNavigator extends Navigator<Promise<void>> {
5
+ /**
6
+ * Creates navigator from current window location hash.
7
+ * @param options - options passed to constructor.
8
+ */
9
+ static fromLocation(options?: HashNavigatorOptions): HashNavigator;
10
+ private readonly ee;
11
+ private attached;
12
+ constructor(entries: NavigatorConEntry[], entriesCursor: number, options?: HashNavigatorOptions);
13
+ /**
14
+ * Handles window "popstate" event.
15
+ * @param state - event state.
16
+ */
17
+ private onPopState;
18
+ protected performGo(options: PerformGoOptions): Promise<void>;
19
+ protected performPush({ before, after }: PerformPushOptions): Promise<void>;
20
+ protected performReplace(options: PerformReplaceOptions): Promise<void>;
21
+ /**
22
+ * Synchronizes current navigator state with browser history.
23
+ */
24
+ private syncHistory;
25
+ private emitChanged;
26
+ /**
27
+ * Attaches current navigator to the browser history allowing navigator to manipulate it.
28
+ */
29
+ attach(): Promise<void>;
30
+ back: () => Promise<void>;
31
+ /**
32
+ * Detaches current navigator from the browser history.
33
+ */
34
+ detach(): void;
35
+ /**
36
+ * Adds new event listener.
37
+ */
38
+ on: <E extends "change">(event: E, listener: import('../../event-emitter/index.js').EventListener<HashNavigatorEventsMap[E]>) => import('../../event-emitter/index.js').RemoveEventListener;
39
+ /**
40
+ * Removes event listener.
41
+ */
42
+ off: <E extends "change">(event: E, listener: import('../../event-emitter/index.js').EventListener<HashNavigatorEventsMap[E]>) => void;
43
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Drops current browser history switching browser history cursor to the first one entry.
3
+ */
4
+ export declare function drop(): Promise<void>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Performs window.history.go operation waiting for it to be completed.
3
+ * @param delta - history change delta.
4
+ */
5
+ export declare function go(delta: number): Promise<boolean>;
@@ -0,0 +1,2 @@
1
+ export * from './HashNavigator.js';
2
+ export * from './types.js';
@@ -0,0 +1,34 @@
1
+ import type { HashNavigator } from './HashNavigator.js';
2
+ import type { NavigatorOptions } from '../Navigator/index.js';
3
+ import type { NavigationEntry } from '../Navigator/types.js';
4
+ export type HashNavigatorOptions = Omit<NavigatorOptions, 'loggerPrefix'>;
5
+ interface ChangeEventPayload {
6
+ /**
7
+ * Navigator instance.
8
+ */
9
+ navigator: HashNavigator;
10
+ /**
11
+ * Previous navigation state.
12
+ */
13
+ from: NavigationEntry;
14
+ /**
15
+ * Current navigation state.
16
+ */
17
+ to: NavigationEntry;
18
+ }
19
+ export interface HashNavigatorEventsMap {
20
+ /**
21
+ * Being called whenever current history changes.
22
+ * @param event - generated event.
23
+ */
24
+ change: (event: ChangeEventPayload) => void;
25
+ }
26
+ /**
27
+ * Navigator event name.
28
+ */
29
+ export type HashNavigatorEventName = keyof HashNavigatorEventsMap;
30
+ /**
31
+ * Navigator event listener.
32
+ */
33
+ export type HashNavigatorEventListener<E extends HashNavigatorEventName> = HashNavigatorEventsMap[E];
34
+ export {};
@@ -0,0 +1,104 @@
1
+ import { Logger } from '../../logger/index.js';
2
+ import type { AnyEntry, NavigationEntry, NavigatorConEntry, NavigatorOptions, PerformGoOptions, PerformPushOptions, PerformReplaceOptions } from './types.js';
3
+ /**
4
+ * Represents basic navigator implementation which uses only memory to store and control
5
+ * navigation state.
6
+ */
7
+ export declare abstract class Navigator<T> {
8
+ protected entriesCursor: number;
9
+ protected logger: Logger;
10
+ protected readonly entries: NavigationEntry[];
11
+ constructor(entries: NavigatorConEntry[], entriesCursor: number, { debug, loggerPrefix, }: NavigatorOptions);
12
+ protected abstract performGo(options: PerformGoOptions): T;
13
+ protected abstract performPush(options: PerformPushOptions): T;
14
+ protected abstract performReplace(options: PerformReplaceOptions): T;
15
+ /**
16
+ * Converts entry to the navigation entry.
17
+ * @param entry - entry data
18
+ */
19
+ private formatEntry;
20
+ /**
21
+ * Current entry.
22
+ */
23
+ protected get entry(): NavigationEntry;
24
+ /**
25
+ * Goes back in history.
26
+ */
27
+ back(): T;
28
+ /**
29
+ * Current entries cursor.
30
+ */
31
+ get cursor(): number;
32
+ /**
33
+ * True if navigator can go back.
34
+ */
35
+ get canGoBack(): boolean;
36
+ /**
37
+ * True if navigator can go forward.
38
+ */
39
+ get canGoForward(): boolean;
40
+ /**
41
+ * Goes forward in history.
42
+ */
43
+ forward(): T;
44
+ /**
45
+ * Moves entries cursor by specified delta.
46
+ * @param delta - cursor delta.
47
+ */
48
+ go(delta: number): T;
49
+ /**
50
+ * Returns copy of navigator entries.
51
+ */
52
+ getEntries(): NavigationEntry[];
53
+ /**
54
+ * Current hash.
55
+ * @example
56
+ * "", "#", "#hash"
57
+ */
58
+ get hash(): string;
59
+ /**
60
+ * Pushes new entry. Method replaces all entries after the current one with the inserted.
61
+ * @param entry - entry data.
62
+ *
63
+ * @example Pushing absolute pathname.
64
+ * push("/absolute-path"); // "/absolute-path"
65
+ *
66
+ * @example Pushing relative pathname.
67
+ * // Pushing relative path replaces N last path parts, where N is pushed pathname parts count.
68
+ * // Pushing empty path is recognized as relative, but not replacing the last pathname part.
69
+ * push("relative"); // "/home/root" -> "/home/relative"
70
+ *
71
+ * @example Pushing query parameters.
72
+ * push("/absolute?my-param=1"); // "/home" -> "/absolute?my-param=1"
73
+ * push("relative?my-param=1"); // "/home/root" -> "/home/relative?my-param=1"
74
+ * push("?my-param=1"); // "/home" -> "/home?my-param=1"
75
+ *
76
+ * @example Pushing hash.
77
+ * push("#my-hash"); // "/home" -> "/home#my-hash"
78
+ * push("johny#my-hash"); // "/home/root" -> "/home/johny#my-hash"
79
+ */
80
+ push(entry: AnyEntry): T;
81
+ /**
82
+ * Current full path including pathname, query parameters and hash.
83
+ */
84
+ get path(): string;
85
+ /**
86
+ * Current pathname.
87
+ * @example
88
+ * "/", "/abc"
89
+ */
90
+ get pathname(): string;
91
+ /**
92
+ * Replaces current entry. Has the same logic as `push` method.
93
+ * @param entry - entry data.
94
+ * @see push
95
+ * @returns True if changes were done.
96
+ */
97
+ replace(entry: AnyEntry): T;
98
+ /**
99
+ * Current query parameters.
100
+ * @example
101
+ * "", "?", "?a=1"
102
+ */
103
+ get search(): string;
104
+ }
@@ -0,0 +1,2 @@
1
+ export * from './Navigator.js';
2
+ export * from './types.js';
@@ -0,0 +1,44 @@
1
+ export interface NavigationEntry {
2
+ pathname: string;
3
+ search: string;
4
+ hash: string;
5
+ }
6
+ export type NavigatorConEntry = Partial<NavigationEntry>;
7
+ /**
8
+ * Entry information is allowed to be used in `push` and `replace` Navigator methods.
9
+ * Should be either path or object partially describing it.
10
+ */
11
+ export type AnyEntry = string | Partial<NavigationEntry>;
12
+ export type PerformGoOptions = {
13
+ updated: false;
14
+ delta: number;
15
+ } | {
16
+ updated: true;
17
+ delta: number;
18
+ before: NavigationEntry;
19
+ after: NavigationEntry;
20
+ };
21
+ export interface PerformPushOptions {
22
+ before: NavigationEntry;
23
+ after: NavigationEntry;
24
+ }
25
+ export type PerformReplaceOptions = {
26
+ updated: false;
27
+ entry: NavigationEntry;
28
+ } | {
29
+ updated: true;
30
+ before: NavigationEntry;
31
+ after: NavigationEntry;
32
+ };
33
+ export interface NavigatorOptions {
34
+ /**
35
+ * Should navigator display debug messages.
36
+ * @default false
37
+ */
38
+ debug?: boolean;
39
+ /**
40
+ * Prefix used for logger.
41
+ * @default 'Navigator'
42
+ */
43
+ loggerPrefix?: string;
44
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Ensures, that specified value starts with the specified prefix. If it doesn't, function appends
3
+ * prefix.
4
+ * @param value - value to check.
5
+ * @param prefix - prefix to add.
6
+ */
7
+ export declare function ensurePrefix(value: string, prefix: string): string;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Returns string after first met "#" symbol.
3
+ * @param value - string to take hash part from.
4
+ *
5
+ * @example No hash.
6
+ * getHash('/path'); // null
7
+ *
8
+ * @example Has hash.
9
+ * getHash('/path#abc'); // 'abc'
10
+ *
11
+ * @example Has double hash.
12
+ * getHash('/path#abc#another'); // 'abc#another'
13
+ */
14
+ export declare function getHash(value: string): string | null;
@@ -0,0 +1,4 @@
1
+ export * from './ensurePrefix.js';
2
+ export * from './getHash.js';
3
+ export * from './HashNavigator/index.js';
4
+ export * from './Navigator/index.js';
@@ -0,0 +1,18 @@
1
+ import type { AnyParser } from './types.js';
2
+ import type { ParseResult, ValueParserOverrides } from './ValueParser.js';
3
+ import { ValueParser } from './ValueParser.js';
4
+ export type OfResult<BaseClass, ItemType, IsOptional extends boolean> = ArrayParserType<BaseClass, ItemType, IsOptional>;
5
+ export interface ArrayParserOverrides<BaseClass, ItemType, IsOptional extends boolean> extends ValueParserOverrides<BaseClass, ItemType[], IsOptional> {
6
+ /**
7
+ * Specifies parser for each array item.
8
+ * @param parser - item parser.
9
+ */
10
+ of<Item>(parser: AnyParser<Item>): OfResult<BaseClass, Item, IsOptional>;
11
+ }
12
+ export type ArrayParserType<BaseClass, ItemType, IsOptional extends boolean> = Omit<BaseClass, keyof ArrayParserOverrides<any, any, any>> & ArrayParserOverrides<BaseClass, ItemType, IsOptional>;
13
+ export declare class ArrayValueParser<ItemType, IsOptional extends boolean> extends ValueParser<unknown[], IsOptional> {
14
+ private itemParser;
15
+ constructor(itemParser: AnyParser<ItemType>, isOptional: IsOptional, type?: string);
16
+ parse(value: unknown): ParseResult<ItemType[], IsOptional>;
17
+ of<Item>(itemParser: AnyParser<Item>): OfResult<this, Item, IsOptional>;
18
+ }
@@ -0,0 +1,22 @@
1
+ interface Options {
2
+ /**
3
+ * Type name.
4
+ */
5
+ type?: string;
6
+ /**
7
+ * Original occurred error.
8
+ */
9
+ cause?: unknown;
10
+ }
11
+ /**
12
+ * Error thrown in case, there was an error during parsing.
13
+ */
14
+ export declare class ParseError extends Error {
15
+ readonly value: unknown;
16
+ /**
17
+ * Parser name.
18
+ */
19
+ readonly type?: string;
20
+ constructor(value: unknown, { cause, type }?: Options);
21
+ }
22
+ export {};
@@ -0,0 +1,17 @@
1
+ interface Options {
2
+ /**
3
+ * Type name.
4
+ */
5
+ type?: string;
6
+ /**
7
+ * Original occurred error.
8
+ */
9
+ cause?: unknown;
10
+ }
11
+ /**
12
+ * Error thrown in case, there was an error during parse.
13
+ */
14
+ export declare class ParseSchemaFieldError extends Error {
15
+ constructor(field: string, { cause, type }?: Options);
16
+ }
17
+ export {};
@@ -0,0 +1,36 @@
1
+ import type { If } from '../types/index.js';
2
+ import type { Parser } from './types.js';
3
+ /**
4
+ * Result of "parse" function.
5
+ */
6
+ export type ParseResult<ResultType, IsOptional extends boolean> = ResultType | If<IsOptional, undefined, never>;
7
+ /**
8
+ * Result of "optional" function in ValueParser.
9
+ */
10
+ export type OptionalResult<BaseClass, ResultType> = ValueParserType<BaseClass, ResultType, true>;
11
+ export interface ValueParserOverrides<BaseClass, ResultType, IsOptional extends boolean> {
12
+ /**
13
+ * Parses incoming value applying parsing function passed via constructor.
14
+ * @param value - value to parse.
15
+ */
16
+ parse(value: unknown): ParseResult<ResultType, IsOptional>;
17
+ /**
18
+ * Marks this parser result as optional. This makes the parser to check if passed value
19
+ * is empty. If so, parser will return undefined value instead of passing it to the actual
20
+ * parser.
21
+ */
22
+ optional(): OptionalResult<BaseClass, ResultType>;
23
+ }
24
+ /**
25
+ * Describes generated ValueParser interface. Shortly saying, this type overrides BaseClass
26
+ * properties defined in ValueParser.
27
+ */
28
+ export type ValueParserType<BaseClass, ResultType, IsOptional extends boolean> = Omit<BaseClass, keyof ValueParserOverrides<any, any, any>> & ValueParserOverrides<BaseClass, ResultType, IsOptional>;
29
+ export declare class ValueParser<ResultType, IsOptional extends boolean> {
30
+ protected parser: Parser<ResultType>;
31
+ protected isOptional: IsOptional;
32
+ protected type?: string | undefined;
33
+ constructor(parser: Parser<ResultType>, isOptional: IsOptional, type?: string | undefined);
34
+ parse(value: unknown): ParseResult<ResultType, IsOptional>;
35
+ optional(): OptionalResult<this, ResultType>;
36
+ }
@@ -0,0 +1,9 @@
1
+ import type { Parser } from './types.js';
2
+ import { ValueParser } from './ValueParser.js';
3
+ export type ValueParserGenerator<T> = () => ValueParser<T, false>;
4
+ /**
5
+ * Creates function which generates new scalar value parser based on the specified one.
6
+ * @param parser - parser to use as basic.
7
+ * @param type - type name.
8
+ */
9
+ export declare function createValueParserGenerator<T>(parser: Parser<T>, type?: string): ValueParserGenerator<T>;
@@ -0,0 +1,10 @@
1
+ export * from './ArrayValueParser.js';
2
+ export * from './createValueParserGenerator.js';
3
+ export * from './parseBySchema.js';
4
+ export * from './ParseError.js';
5
+ export * from './parsers/index.js';
6
+ export * from './ParseSchemaFieldError.js';
7
+ export * from './toRecord.js';
8
+ export * from './types.js';
9
+ export * from './unexpectedTypeError.js';
10
+ export * from './ValueParser.js';
@@ -0,0 +1,8 @@
1
+ import type { Schema } from './types.js';
2
+ /**
3
+ * Parses external value by specified schema. Functions iterates over each schema field
4
+ * and uses getField function to get its value from the external source.
5
+ * @param schema - object schema.
6
+ * @param getField - function which gets external value by its field name.
7
+ */
8
+ export declare function parseBySchema<T>(schema: Schema<T>, getField: (field: string) => unknown): T;
@@ -0,0 +1,6 @@
1
+ import { ArrayValueParser } from '../ArrayValueParser.js';
2
+ /**
3
+ * Parses incoming value as an array.
4
+ * @param type - parser type name.
5
+ */
6
+ export declare function array(type?: string): ArrayValueParser<unknown, false>;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Returns parser to parse value as boolean.
3
+ */
4
+ export declare const boolean: import("../createValueParserGenerator.js").ValueParserGenerator<boolean>;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Returns parser to parse value as Date.
3
+ */
4
+ export declare const date: import("../createValueParserGenerator.js").ValueParserGenerator<Date>;
@@ -0,0 +1,8 @@
1
+ export * from './array.js';
2
+ export * from './boolean.js';
3
+ export * from './date.js';
4
+ export * from './json.js';
5
+ export * from './number.js';
6
+ export * from './rgb.js';
7
+ export * from './searchParams.js';
8
+ export * from './string.js';
@@ -0,0 +1,8 @@
1
+ import type { Schema } from '../types.js';
2
+ import { ValueParser } from '../ValueParser.js';
3
+ /**
4
+ * Creates new Json parser according to passed schema.
5
+ * @param schema - object schema.
6
+ * @param type - parser type name.
7
+ */
8
+ export declare function json<T>(schema: Schema<T>, type?: string): ValueParser<T, false>;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Returns parser to parse value as number.
3
+ */
4
+ export declare const number: import("../createValueParserGenerator.js").ValueParserGenerator<number>;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Returns parser to parse value as RGB color.
3
+ */
4
+ export declare const rgb: import("../createValueParserGenerator.js").ValueParserGenerator<`#${string}`>;
@@ -0,0 +1,8 @@
1
+ import type { Schema } from '../types.js';
2
+ import { ValueParser } from '../ValueParser.js';
3
+ /**
4
+ * Creates new search params parser according to passed schema.
5
+ * @param schema - object schema.
6
+ * @param type - parser type name.
7
+ */
8
+ export declare function searchParams<T>(schema: Schema<T>, type?: string): ValueParser<T, false>;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Returns parser to parse value as string.
3
+ */
4
+ export declare const string: import("../createValueParserGenerator.js").ValueParserGenerator<string>;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Converts value to record.
3
+ * @param value - value to convert.
4
+ * @throws {Error} Value passed as a string does not represent JSON object.
5
+ * @throws {Error} Value is not convertable.
6
+ */
7
+ export declare function toRecord(value: unknown): Record<string, unknown>;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Represents any known parser.
3
+ */
4
+ export type AnyParser<T> = Parser<T> | {
5
+ parse: Parser<T>;
6
+ };
7
+ /**
8
+ * Detailed schema field options.
9
+ */
10
+ export interface SchemaFieldDetailed<T> {
11
+ /**
12
+ * Source property name.
13
+ * @default Original property name in schema.
14
+ */
15
+ from?: string;
16
+ /**
17
+ * Function which should parse incoming value and return expected type.
18
+ */
19
+ type: AnyParser<T>;
20
+ }
21
+ /**
22
+ * Function which parses incoming value.
23
+ */
24
+ export type Parser<T> = (value: unknown) => T;
25
+ /**
26
+ * Object schema definition.
27
+ */
28
+ export type Schema<T> = {
29
+ [K in keyof T]: AnyParser<T[K]> | SchemaFieldDetailed<T[K]>;
30
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Creates instance of TypeError stating, that value has unexpected type.
3
+ */
4
+ export declare function unexpectedTypeError(): TypeError;
@@ -1,7 +1,7 @@
1
- import { type PostEvent } from '@tma.js/bridge';
2
- import type { Version } from '@tma.js/utils';
3
- import { type SupportsFunc } from '../../supports.js';
4
- import type { PopupParams } from './types.js';
1
+ import { type PostEvent } from '../bridge/index.js';
2
+ import { type SupportsFunc } from '../supports/index.js';
3
+ import type { Version } from '../version/index.js';
4
+ import type { OpenPopupOptions, PopupEvents } from './types.js';
5
5
  /**
6
6
  * Controls currently displayed application popup. It allows developers to
7
7
  * open new custom popups and detect popup-connected events.
@@ -11,18 +11,19 @@ export declare class Popup {
11
11
  private readonly ee;
12
12
  private readonly state;
13
13
  constructor(version: Version, postEvent?: PostEvent);
14
+ private set isOpened(value);
14
15
  /**
15
- * Shows whether popup is currently opened.
16
+ * True if popup is currently opened.
16
17
  */
17
18
  get isOpened(): boolean;
18
19
  /**
19
20
  * Adds new event listener.
20
21
  */
21
- on: typeof this.ee.on;
22
+ on: <E extends "change" | "change:isOpened">(event: E, listener: import('../event-emitter/index.js').EventListener<PopupEvents[E]>) => import('../event-emitter/index.js').RemoveEventListener;
22
23
  /**
23
24
  * Removes event listener.
24
25
  */
25
- off: typeof this.ee.off;
26
+ off: <E extends "change" | "change:isOpened">(event: E, listener: import('../event-emitter/index.js').EventListener<PopupEvents[E]>) => void;
26
27
  /**
27
28
  * A method that shows a native popup described by the `params` argument.
28
29
  * Promise will be resolved when popup is closed. Resolved value will have
@@ -33,10 +34,10 @@ export declare class Popup {
33
34
  *
34
35
  * FIXME: In desktop, this function may work incorrectly.
35
36
  * Issue: https://github.com/Telegram-Mini-Apps/tma.js/issues/7
36
- * @param params - popup parameters.
37
+ * @param options - popup parameters.
37
38
  * @throws {Error} Popup is already opened.
38
39
  */
39
- open(params: PopupParams): Promise<string | null>;
40
+ open(options: OpenPopupOptions): Promise<string | null>;
40
41
  /**
41
42
  * Checks if specified method is supported by current component.
42
43
  */
@@ -0,0 +1,2 @@
1
+ export * from './Popup.js';
2
+ export * from './types.js';
@@ -0,0 +1,7 @@
1
+ import type { PopupParams as BridgePopupParams } from '../bridge/index.js';
2
+ import type { OpenPopupOptions } from './types.js';
3
+ /**
4
+ * Prepares popup parameters before sending them to native app.
5
+ * @param params - popup parameters.
6
+ */
7
+ export declare function preparePopupParams(params: OpenPopupOptions): BridgePopupParams;
@@ -1,4 +1,4 @@
1
- import type { StateEvents } from '../../state/index.js';
1
+ import type { StateEvents } from '../state/index.js';
2
2
  export interface PopupState {
3
3
  isOpened: boolean;
4
4
  }
@@ -9,7 +9,7 @@ export type PopupEventListener<E extends PopupEventName> = PopupEvents[E];
9
9
  * This object describes the native popup.
10
10
  * @see https://core.telegram.org/bots/webapps#popupparams
11
11
  */
12
- export interface PopupParams {
12
+ export interface OpenPopupOptions {
13
13
  /**
14
14
  * The text to be displayed in the popup title, 0-64 characters.
15
15
  * @default ""
@@ -23,13 +23,13 @@ export interface PopupParams {
23
23
  * List of buttons to be displayed in the popup, 1-3 buttons.
24
24
  * @default [{type: 'close'}]
25
25
  */
26
- buttons?: PopupButton[];
26
+ buttons?: OpenPopupOptionsButton[];
27
27
  }
28
28
  /**
29
29
  * This object describes the native popup button.
30
30
  * @see https://core.telegram.org/bots/webapps#popupbutton
31
31
  */
32
- export type PopupButton = {
32
+ export type OpenPopupOptionsButton = {
33
33
  /**
34
34
  * Identifier of the button, 0-64 characters.
35
35
  * @default ""
@@ -1,6 +1,7 @@
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 { type SupportsFunc } from '../supports/index.js';
3
+ import type { Version } from '../version/index.js';
4
+ import type { QRScannerEvents } from './types.js';
4
5
  /**
5
6
  * Provides QR scanner functionality.
6
7
  */
@@ -28,11 +29,11 @@ export declare class QRScanner {
28
29
  /**
29
30
  * Adds new event listener.
30
31
  */
31
- on: typeof this.ee.on;
32
+ on: <E extends "change" | "change:isOpened">(event: E, listener: import('../event-emitter/index.js').EventListener<QRScannerEvents[E]>) => import('../event-emitter/index.js').RemoveEventListener;
32
33
  /**
33
34
  * Removes event listener.
34
35
  */
35
- off: typeof this.ee.off;
36
+ off: <E extends "change" | "change:isOpened">(event: E, listener: import('../event-emitter/index.js').EventListener<QRScannerEvents[E]>) => void;
36
37
  /**
37
38
  * Checks if specified method is supported by current component.
38
39
  */
@@ -0,0 +1,2 @@
1
+ export * from './QRScanner.js';
2
+ export * from './types.js';
@@ -1,4 +1,4 @@
1
- import type { StateEvents } from '../../state/index.js';
1
+ import type { StateEvents } from '../state/index.js';
2
2
  export interface QRScannerState {
3
3
  isOpened: boolean;
4
4
  }