@mtcute/core 0.11.0 → 0.12.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 (471) hide show
  1. package/cjs/highlevel/client.d.ts +198 -18
  2. package/cjs/highlevel/client.js +53 -0
  3. package/cjs/highlevel/client.js.map +1 -1
  4. package/cjs/highlevel/methods/_imports.js.map +1 -1
  5. package/cjs/highlevel/methods/auth/utils.d.ts +3 -0
  6. package/cjs/highlevel/methods/bots/normalize-command-scope.d.ts +5 -1
  7. package/cjs/highlevel/methods/chats/batched-queries.d.ts +10 -1
  8. package/cjs/highlevel/methods/chats/get-full-chat.d.ts +2 -2
  9. package/cjs/highlevel/methods/chats/get-full-chat.js +1 -1
  10. package/cjs/highlevel/methods/chats/get-full-chat.js.map +1 -1
  11. package/cjs/highlevel/methods/dialogs/get-folders.d.ts +3 -0
  12. package/cjs/highlevel/methods/files/normalize-file-to-document.d.ts +9 -1
  13. package/cjs/highlevel/methods/files/normalize-input-media.d.ts +1 -0
  14. package/cjs/highlevel/methods/files/normalize-input-media.js +11 -10
  15. package/cjs/highlevel/methods/files/normalize-input-media.js.map +1 -1
  16. package/cjs/highlevel/methods/messages/_business-connection.d.ts +7 -0
  17. package/cjs/highlevel/methods/messages/_business-connection.js +42 -0
  18. package/cjs/highlevel/methods/messages/_business-connection.js.map +1 -0
  19. package/cjs/highlevel/methods/messages/close-poll.js +1 -1
  20. package/cjs/highlevel/methods/messages/close-poll.js.map +1 -1
  21. package/cjs/highlevel/methods/messages/edit-message.d.ts +1 -0
  22. package/cjs/highlevel/methods/messages/edit-message.js +2 -1
  23. package/cjs/highlevel/methods/messages/edit-message.js.map +1 -1
  24. package/cjs/highlevel/methods/messages/find-in-update.d.ts +13 -1
  25. package/cjs/highlevel/methods/messages/find-in-update.js +7 -2
  26. package/cjs/highlevel/methods/messages/find-in-update.js.map +1 -1
  27. package/cjs/highlevel/methods/messages/forward-messages.d.ts +5 -0
  28. package/cjs/highlevel/methods/messages/forward-messages.js +2 -0
  29. package/cjs/highlevel/methods/messages/forward-messages.js.map +1 -1
  30. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.d.ts +8 -0
  31. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.js +32 -0
  32. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.js.map +1 -0
  33. package/cjs/highlevel/methods/messages/get-discussion-message.d.ts +4 -0
  34. package/cjs/highlevel/methods/messages/iter-search-global.js +2 -1
  35. package/cjs/highlevel/methods/messages/iter-search-global.js.map +1 -1
  36. package/cjs/highlevel/methods/messages/search-global.d.ts +4 -0
  37. package/cjs/highlevel/methods/messages/search-global.js +2 -1
  38. package/cjs/highlevel/methods/messages/search-global.js.map +1 -1
  39. package/cjs/highlevel/methods/messages/send-common.d.ts +28 -0
  40. package/cjs/highlevel/methods/messages/send-common.js +21 -1
  41. package/cjs/highlevel/methods/messages/send-common.js.map +1 -1
  42. package/cjs/highlevel/methods/messages/send-media-group.js +5 -2
  43. package/cjs/highlevel/methods/messages/send-media-group.js.map +1 -1
  44. package/cjs/highlevel/methods/messages/send-media.js +4 -2
  45. package/cjs/highlevel/methods/messages/send-media.js.map +1 -1
  46. package/cjs/highlevel/methods/messages/send-text.js +4 -2
  47. package/cjs/highlevel/methods/messages/send-text.js.map +1 -1
  48. package/cjs/highlevel/methods/messages/send-typing.d.ts +4 -0
  49. package/cjs/highlevel/methods/messages/send-typing.js +2 -1
  50. package/cjs/highlevel/methods/messages/send-typing.js.map +1 -1
  51. package/cjs/highlevel/methods/misc/chain-id.d.ts +4 -1
  52. package/cjs/highlevel/methods/misc/get-collectible-info.d.ts +6 -0
  53. package/cjs/highlevel/methods/misc/get-collectible-info.js +26 -0
  54. package/cjs/highlevel/methods/misc/get-collectible-info.js.map +1 -0
  55. package/cjs/highlevel/methods/misc/normalize-text.d.ts +5 -1
  56. package/cjs/highlevel/methods/premium/create-business-chat-link.d.ts +12 -0
  57. package/cjs/highlevel/methods/premium/create-business-chat-link.js +26 -0
  58. package/cjs/highlevel/methods/premium/create-business-chat-link.js.map +1 -0
  59. package/cjs/highlevel/methods/premium/edit-business-chat-link.d.ts +20 -0
  60. package/cjs/highlevel/methods/premium/edit-business-chat-link.js +42 -0
  61. package/cjs/highlevel/methods/premium/edit-business-chat-link.js.map +1 -0
  62. package/cjs/highlevel/methods/premium/get-business-chat-links.d.ts +6 -0
  63. package/cjs/highlevel/methods/premium/get-business-chat-links.js +14 -0
  64. package/cjs/highlevel/methods/premium/get-business-chat-links.js.map +1 -0
  65. package/cjs/highlevel/methods/premium/get-business-connection.d.ts +8 -0
  66. package/cjs/highlevel/methods/premium/get-business-connection.js +25 -0
  67. package/cjs/highlevel/methods/premium/get-business-connection.js.map +1 -0
  68. package/cjs/highlevel/methods/premium/set-business-intro.d.ts +22 -0
  69. package/cjs/highlevel/methods/premium/set-business-intro.js +42 -0
  70. package/cjs/highlevel/methods/premium/set-business-intro.js.map +1 -0
  71. package/cjs/highlevel/methods/premium/set-business-work-hours.d.ts +18 -0
  72. package/cjs/highlevel/methods/premium/set-business-work-hours.js +33 -0
  73. package/cjs/highlevel/methods/premium/set-business-work-hours.js.map +1 -0
  74. package/cjs/highlevel/methods/stickers/_utils.d.ts +10 -0
  75. package/cjs/highlevel/methods/stickers/_utils.js +27 -0
  76. package/cjs/highlevel/methods/stickers/_utils.js.map +1 -0
  77. package/cjs/highlevel/methods/stickers/add-sticker-to-set.d.ts +1 -2
  78. package/cjs/highlevel/methods/stickers/add-sticker-to-set.js +3 -17
  79. package/cjs/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -1
  80. package/cjs/highlevel/methods/stickers/create-sticker-set.d.ts +0 -3
  81. package/cjs/highlevel/methods/stickers/create-sticker-set.js +2 -19
  82. package/cjs/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  83. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -2
  84. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js +1 -2
  85. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  86. package/cjs/highlevel/methods/stickers/get-installed-stickers.d.ts +1 -2
  87. package/cjs/highlevel/methods/stickers/get-installed-stickers.js +1 -2
  88. package/cjs/highlevel/methods/stickers/get-installed-stickers.js.map +1 -1
  89. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.d.ts +13 -0
  90. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.js +24 -0
  91. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.js.map +1 -0
  92. package/cjs/highlevel/methods/stickers/get-sticker-set.d.ts +2 -2
  93. package/cjs/highlevel/methods/stickers/get-sticker-set.js +2 -2
  94. package/cjs/highlevel/methods/stickers/get-sticker-set.js.map +1 -1
  95. package/cjs/highlevel/methods/stickers/move-sticker-in-set.d.ts +2 -3
  96. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js +2 -3
  97. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  98. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.d.ts +24 -0
  99. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.js +32 -0
  100. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.js.map +1 -0
  101. package/cjs/highlevel/methods/stories/find-in-update.d.ts +5 -1
  102. package/cjs/highlevel/methods/users/set-my-birthday.d.ts +12 -0
  103. package/cjs/highlevel/methods/users/set-my-birthday.js +22 -0
  104. package/cjs/highlevel/methods/users/set-my-birthday.js.map +1 -0
  105. package/cjs/highlevel/methods.d.ts +12 -0
  106. package/cjs/highlevel/methods.js +33 -3
  107. package/cjs/highlevel/methods.js.map +1 -1
  108. package/cjs/highlevel/storage/storage.d.ts +7 -2
  109. package/cjs/highlevel/types/auth/sent-code.d.ts +7 -2
  110. package/cjs/highlevel/types/auth/sent-code.js +14 -0
  111. package/cjs/highlevel/types/auth/sent-code.js.map +1 -1
  112. package/cjs/highlevel/types/bots/inline-message/factories.d.ts +5 -1
  113. package/cjs/highlevel/types/bots/inline-result/factories.d.ts +4 -1
  114. package/cjs/highlevel/types/bots/keyboards/factories.d.ts +7 -1
  115. package/cjs/highlevel/types/calls/discard-reason.d.ts +5 -0
  116. package/cjs/highlevel/types/files/uploaded-file.d.ts +2 -0
  117. package/cjs/highlevel/types/files/utils.d.ts +6 -5
  118. package/cjs/highlevel/types/files/utils.js.map +1 -1
  119. package/cjs/highlevel/types/media/document-utils.d.ts +5 -0
  120. package/cjs/highlevel/types/media/document-utils.js +9 -2
  121. package/cjs/highlevel/types/media/document-utils.js.map +1 -1
  122. package/cjs/highlevel/types/media/input-media/types.d.ts +2 -2
  123. package/cjs/highlevel/types/media/input-media/types.js.map +1 -1
  124. package/cjs/highlevel/types/media/poll.d.ts +17 -6
  125. package/cjs/highlevel/types/media/poll.js +65 -18
  126. package/cjs/highlevel/types/media/poll.js.map +1 -1
  127. package/cjs/highlevel/types/messages/dialog.js +1 -12
  128. package/cjs/highlevel/types/messages/dialog.js.map +1 -1
  129. package/cjs/highlevel/types/messages/input-message-id.d.ts +5 -0
  130. package/cjs/highlevel/types/messages/message-action.d.ts +19 -2
  131. package/cjs/highlevel/types/messages/message-action.js +6 -0
  132. package/cjs/highlevel/types/messages/message-action.js.map +1 -1
  133. package/cjs/highlevel/types/messages/message-media.d.ts +4 -0
  134. package/cjs/highlevel/types/messages/message.d.ts +59 -1
  135. package/cjs/highlevel/types/messages/message.js +96 -1
  136. package/cjs/highlevel/types/messages/message.js.map +1 -1
  137. package/cjs/highlevel/types/misc/collectible-info.d.ts +27 -0
  138. package/cjs/highlevel/types/misc/collectible-info.js +46 -0
  139. package/cjs/highlevel/types/misc/collectible-info.js.map +1 -0
  140. package/cjs/highlevel/types/misc/entities.d.ts +7 -0
  141. package/cjs/highlevel/types/misc/entities.js +15 -0
  142. package/cjs/highlevel/types/misc/entities.js.map +1 -1
  143. package/cjs/highlevel/types/misc/index.d.ts +1 -0
  144. package/cjs/highlevel/types/misc/index.js +1 -0
  145. package/cjs/highlevel/types/misc/index.js.map +1 -1
  146. package/cjs/highlevel/types/misc/sticker-set.d.ts +8 -1
  147. package/cjs/highlevel/types/misc/sticker-set.js +36 -5
  148. package/cjs/highlevel/types/misc/sticker-set.js.map +1 -1
  149. package/cjs/highlevel/types/peers/chat-event/actions.d.ts +3 -0
  150. package/cjs/highlevel/types/peers/chat-event/filters.d.ts +2 -0
  151. package/cjs/highlevel/types/peers/chat.d.ts +7 -93
  152. package/cjs/highlevel/types/peers/chat.js +2 -195
  153. package/cjs/highlevel/types/peers/chat.js.map +1 -1
  154. package/cjs/highlevel/types/peers/full-chat.d.ts +103 -0
  155. package/cjs/highlevel/types/peers/full-chat.js +237 -0
  156. package/cjs/highlevel/types/peers/full-chat.js.map +1 -0
  157. package/cjs/highlevel/types/peers/index.d.ts +1 -0
  158. package/cjs/highlevel/types/peers/index.js +1 -0
  159. package/cjs/highlevel/types/peers/index.js.map +1 -1
  160. package/cjs/highlevel/types/peers/user.d.ts +5 -0
  161. package/cjs/highlevel/types/peers/user.js +7 -0
  162. package/cjs/highlevel/types/peers/user.js.map +1 -1
  163. package/cjs/highlevel/types/premium/business-account.d.ts +19 -0
  164. package/cjs/highlevel/types/premium/business-account.js +45 -0
  165. package/cjs/highlevel/types/premium/business-account.js.map +1 -0
  166. package/cjs/highlevel/types/premium/business-chat-link.d.ts +19 -0
  167. package/cjs/highlevel/types/premium/business-chat-link.js +39 -0
  168. package/cjs/highlevel/types/premium/business-chat-link.js.map +1 -0
  169. package/cjs/highlevel/types/premium/business-connection.d.ts +23 -0
  170. package/cjs/highlevel/types/premium/business-connection.js +45 -0
  171. package/cjs/highlevel/types/premium/business-connection.js.map +1 -0
  172. package/cjs/highlevel/types/premium/business-intro.d.ts +22 -0
  173. package/cjs/highlevel/types/premium/business-intro.js +43 -0
  174. package/cjs/highlevel/types/premium/business-intro.js.map +1 -0
  175. package/cjs/highlevel/types/premium/business-location.d.ts +10 -0
  176. package/cjs/highlevel/types/premium/business-location.js +26 -0
  177. package/cjs/highlevel/types/premium/business-location.js.map +1 -0
  178. package/cjs/highlevel/types/premium/business-work-hours.d.ts +42 -0
  179. package/cjs/highlevel/types/premium/business-work-hours.js +141 -0
  180. package/cjs/highlevel/types/premium/business-work-hours.js.map +1 -0
  181. package/cjs/highlevel/types/premium/index.d.ts +5 -0
  182. package/cjs/highlevel/types/premium/index.js +5 -0
  183. package/cjs/highlevel/types/premium/index.js.map +1 -1
  184. package/cjs/highlevel/types/updates/business-message.d.ts +18 -0
  185. package/cjs/highlevel/types/updates/business-message.js +35 -0
  186. package/cjs/highlevel/types/updates/business-message.js.map +1 -0
  187. package/cjs/highlevel/types/updates/delete-business-message-update.d.ts +21 -0
  188. package/cjs/highlevel/types/updates/delete-business-message-update.js +37 -0
  189. package/cjs/highlevel/types/updates/delete-business-message-update.js.map +1 -0
  190. package/cjs/highlevel/types/updates/index.d.ts +19 -2
  191. package/cjs/highlevel/types/updates/index.js +5 -1
  192. package/cjs/highlevel/types/updates/index.js.map +1 -1
  193. package/cjs/highlevel/types/updates/parse-update.d.ts +4 -1
  194. package/cjs/highlevel/types/updates/parse-update.js +8 -0
  195. package/cjs/highlevel/types/updates/parse-update.js.map +1 -1
  196. package/cjs/highlevel/types/updates/poll-update.js +2 -2
  197. package/cjs/highlevel/types/updates/poll-update.js.map +1 -1
  198. package/cjs/highlevel/updates/manager.d.ts +0 -1
  199. package/cjs/highlevel/updates/manager.js +7 -2
  200. package/cjs/highlevel/updates/manager.js.map +1 -1
  201. package/cjs/highlevel/updates/parsed.js +8 -2
  202. package/cjs/highlevel/updates/parsed.js.map +1 -1
  203. package/cjs/highlevel/updates/types.d.ts +57 -0
  204. package/cjs/highlevel/updates/utils.d.ts +2 -0
  205. package/cjs/highlevel/utils/inspectable.js +7 -0
  206. package/cjs/highlevel/utils/inspectable.js.map +1 -1
  207. package/cjs/highlevel/worker/index.js +6 -0
  208. package/cjs/highlevel/worker/protocol.d.ts +0 -1
  209. package/cjs/index.js +6 -0
  210. package/cjs/network/client.d.ts +2 -2
  211. package/cjs/network/client.js +9 -1
  212. package/cjs/network/client.js.map +1 -1
  213. package/cjs/network/mtproto-session.d.ts +0 -1
  214. package/cjs/network/multi-session-connection.d.ts +0 -1
  215. package/cjs/network/network-manager.d.ts +8 -0
  216. package/cjs/network/network-manager.js +9 -4
  217. package/cjs/network/network-manager.js.map +1 -1
  218. package/cjs/network/persistent-connection.d.ts +0 -1
  219. package/cjs/network/session-connection.js +11 -0
  220. package/cjs/network/session-connection.js.map +1 -1
  221. package/cjs/network/transports/abstract.d.ts +0 -1
  222. package/cjs/network/transports/streamed.d.ts +0 -1
  223. package/cjs/network/transports/wrapped.d.ts +0 -1
  224. package/cjs/platform.js +6 -0
  225. package/cjs/storage/sqlite/repository/peers.js +1 -2
  226. package/cjs/storage/sqlite/repository/peers.js.map +1 -1
  227. package/cjs/storage/storage.d.ts +21 -0
  228. package/cjs/types/utils.d.ts +1 -0
  229. package/cjs/types/utils.js.map +1 -1
  230. package/cjs/utils/index.js +6 -0
  231. package/cjs/utils/reloadable.d.ts +0 -1
  232. package/client.d.ts +1 -0
  233. package/client.js +1 -0
  234. package/esm/highlevel/client.d.ts +198 -18
  235. package/esm/highlevel/client.js +47 -0
  236. package/esm/highlevel/client.js.map +1 -1
  237. package/esm/highlevel/methods/_imports.js.map +1 -1
  238. package/esm/highlevel/methods/auth/utils.d.ts +3 -0
  239. package/esm/highlevel/methods/bots/normalize-command-scope.d.ts +5 -1
  240. package/esm/highlevel/methods/chats/batched-queries.d.ts +10 -1
  241. package/esm/highlevel/methods/chats/get-full-chat.d.ts +2 -2
  242. package/esm/highlevel/methods/chats/get-full-chat.js +2 -2
  243. package/esm/highlevel/methods/chats/get-full-chat.js.map +1 -1
  244. package/esm/highlevel/methods/dialogs/get-folders.d.ts +3 -0
  245. package/esm/highlevel/methods/files/normalize-file-to-document.d.ts +9 -1
  246. package/esm/highlevel/methods/files/normalize-input-media.d.ts +1 -0
  247. package/esm/highlevel/methods/files/normalize-input-media.js +11 -10
  248. package/esm/highlevel/methods/files/normalize-input-media.js.map +1 -1
  249. package/esm/highlevel/methods/messages/_business-connection.d.ts +7 -0
  250. package/esm/highlevel/methods/messages/_business-connection.js +38 -0
  251. package/esm/highlevel/methods/messages/_business-connection.js.map +1 -0
  252. package/esm/highlevel/methods/messages/close-poll.js +1 -1
  253. package/esm/highlevel/methods/messages/close-poll.js.map +1 -1
  254. package/esm/highlevel/methods/messages/edit-message.d.ts +1 -0
  255. package/esm/highlevel/methods/messages/edit-message.js +2 -1
  256. package/esm/highlevel/methods/messages/edit-message.js.map +1 -1
  257. package/esm/highlevel/methods/messages/find-in-update.d.ts +13 -1
  258. package/esm/highlevel/methods/messages/find-in-update.js +7 -2
  259. package/esm/highlevel/methods/messages/find-in-update.js.map +1 -1
  260. package/esm/highlevel/methods/messages/forward-messages.d.ts +5 -0
  261. package/esm/highlevel/methods/messages/forward-messages.js +2 -0
  262. package/esm/highlevel/methods/messages/forward-messages.js.map +1 -1
  263. package/esm/highlevel/methods/messages/get-all-scheduled-messages.d.ts +8 -0
  264. package/esm/highlevel/methods/messages/get-all-scheduled-messages.js +25 -0
  265. package/esm/highlevel/methods/messages/get-all-scheduled-messages.js.map +1 -0
  266. package/esm/highlevel/methods/messages/get-discussion-message.d.ts +4 -0
  267. package/esm/highlevel/methods/messages/iter-search-global.js +2 -1
  268. package/esm/highlevel/methods/messages/iter-search-global.js.map +1 -1
  269. package/esm/highlevel/methods/messages/search-global.d.ts +4 -0
  270. package/esm/highlevel/methods/messages/search-global.js +2 -1
  271. package/esm/highlevel/methods/messages/search-global.js.map +1 -1
  272. package/esm/highlevel/methods/messages/send-common.d.ts +28 -0
  273. package/esm/highlevel/methods/messages/send-common.js +19 -0
  274. package/esm/highlevel/methods/messages/send-common.js.map +1 -1
  275. package/esm/highlevel/methods/messages/send-media-group.js +5 -2
  276. package/esm/highlevel/methods/messages/send-media-group.js.map +1 -1
  277. package/esm/highlevel/methods/messages/send-media.js +4 -2
  278. package/esm/highlevel/methods/messages/send-media.js.map +1 -1
  279. package/esm/highlevel/methods/messages/send-text.js +4 -2
  280. package/esm/highlevel/methods/messages/send-text.js.map +1 -1
  281. package/esm/highlevel/methods/messages/send-typing.d.ts +4 -0
  282. package/esm/highlevel/methods/messages/send-typing.js +2 -1
  283. package/esm/highlevel/methods/messages/send-typing.js.map +1 -1
  284. package/esm/highlevel/methods/misc/chain-id.d.ts +4 -1
  285. package/esm/highlevel/methods/misc/get-collectible-info.d.ts +6 -0
  286. package/esm/highlevel/methods/misc/get-collectible-info.js +22 -0
  287. package/esm/highlevel/methods/misc/get-collectible-info.js.map +1 -0
  288. package/esm/highlevel/methods/misc/normalize-text.d.ts +5 -1
  289. package/esm/highlevel/methods/premium/create-business-chat-link.d.ts +12 -0
  290. package/esm/highlevel/methods/premium/create-business-chat-link.js +22 -0
  291. package/esm/highlevel/methods/premium/create-business-chat-link.js.map +1 -0
  292. package/esm/highlevel/methods/premium/edit-business-chat-link.d.ts +20 -0
  293. package/esm/highlevel/methods/premium/edit-business-chat-link.js +37 -0
  294. package/esm/highlevel/methods/premium/edit-business-chat-link.js.map +1 -0
  295. package/esm/highlevel/methods/premium/get-business-chat-links.d.ts +6 -0
  296. package/esm/highlevel/methods/premium/get-business-chat-links.js +10 -0
  297. package/esm/highlevel/methods/premium/get-business-chat-links.js.map +1 -0
  298. package/esm/highlevel/methods/premium/get-business-connection.d.ts +8 -0
  299. package/esm/highlevel/methods/premium/get-business-connection.js +21 -0
  300. package/esm/highlevel/methods/premium/get-business-connection.js.map +1 -0
  301. package/esm/highlevel/methods/premium/set-business-intro.d.ts +22 -0
  302. package/esm/highlevel/methods/premium/set-business-intro.js +38 -0
  303. package/esm/highlevel/methods/premium/set-business-intro.js.map +1 -0
  304. package/esm/highlevel/methods/premium/set-business-work-hours.d.ts +18 -0
  305. package/esm/highlevel/methods/premium/set-business-work-hours.js +29 -0
  306. package/esm/highlevel/methods/premium/set-business-work-hours.js.map +1 -0
  307. package/esm/highlevel/methods/stickers/_utils.d.ts +10 -0
  308. package/esm/highlevel/methods/stickers/_utils.js +23 -0
  309. package/esm/highlevel/methods/stickers/_utils.js.map +1 -0
  310. package/esm/highlevel/methods/stickers/add-sticker-to-set.d.ts +1 -2
  311. package/esm/highlevel/methods/stickers/add-sticker-to-set.js +4 -18
  312. package/esm/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -1
  313. package/esm/highlevel/methods/stickers/create-sticker-set.d.ts +0 -3
  314. package/esm/highlevel/methods/stickers/create-sticker-set.js +3 -20
  315. package/esm/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  316. package/esm/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -2
  317. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js +1 -2
  318. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  319. package/esm/highlevel/methods/stickers/get-installed-stickers.d.ts +1 -2
  320. package/esm/highlevel/methods/stickers/get-installed-stickers.js +1 -2
  321. package/esm/highlevel/methods/stickers/get-installed-stickers.js.map +1 -1
  322. package/esm/highlevel/methods/stickers/get-my-sticker-sets.d.ts +13 -0
  323. package/esm/highlevel/methods/stickers/get-my-sticker-sets.js +17 -0
  324. package/esm/highlevel/methods/stickers/get-my-sticker-sets.js.map +1 -0
  325. package/esm/highlevel/methods/stickers/get-sticker-set.d.ts +2 -2
  326. package/esm/highlevel/methods/stickers/get-sticker-set.js +2 -2
  327. package/esm/highlevel/methods/stickers/get-sticker-set.js.map +1 -1
  328. package/esm/highlevel/methods/stickers/move-sticker-in-set.d.ts +2 -3
  329. package/esm/highlevel/methods/stickers/move-sticker-in-set.js +2 -3
  330. package/esm/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  331. package/esm/highlevel/methods/stickers/replace-sticker-in-set.d.ts +24 -0
  332. package/esm/highlevel/methods/stickers/replace-sticker-in-set.js +28 -0
  333. package/esm/highlevel/methods/stickers/replace-sticker-in-set.js.map +1 -0
  334. package/esm/highlevel/methods/stories/find-in-update.d.ts +5 -1
  335. package/esm/highlevel/methods/users/set-my-birthday.d.ts +12 -0
  336. package/esm/highlevel/methods/users/set-my-birthday.js +18 -0
  337. package/esm/highlevel/methods/users/set-my-birthday.js.map +1 -0
  338. package/esm/highlevel/methods.d.ts +12 -0
  339. package/esm/highlevel/methods.js +12 -0
  340. package/esm/highlevel/methods.js.map +1 -1
  341. package/esm/highlevel/storage/storage.d.ts +7 -2
  342. package/esm/highlevel/types/auth/sent-code.d.ts +7 -2
  343. package/esm/highlevel/types/auth/sent-code.js +14 -0
  344. package/esm/highlevel/types/auth/sent-code.js.map +1 -1
  345. package/esm/highlevel/types/bots/inline-message/factories.d.ts +5 -1
  346. package/esm/highlevel/types/bots/inline-result/factories.d.ts +4 -1
  347. package/esm/highlevel/types/bots/keyboards/factories.d.ts +7 -1
  348. package/esm/highlevel/types/calls/discard-reason.d.ts +5 -0
  349. package/esm/highlevel/types/files/uploaded-file.d.ts +2 -0
  350. package/esm/highlevel/types/files/utils.d.ts +6 -5
  351. package/esm/highlevel/types/files/utils.js.map +1 -1
  352. package/esm/highlevel/types/media/document-utils.d.ts +5 -0
  353. package/esm/highlevel/types/media/document-utils.js +7 -1
  354. package/esm/highlevel/types/media/document-utils.js.map +1 -1
  355. package/esm/highlevel/types/media/input-media/types.d.ts +2 -2
  356. package/esm/highlevel/types/media/input-media/types.js.map +1 -1
  357. package/esm/highlevel/types/media/poll.d.ts +17 -6
  358. package/esm/highlevel/types/media/poll.js +64 -17
  359. package/esm/highlevel/types/media/poll.js.map +1 -1
  360. package/esm/highlevel/types/messages/dialog.js +1 -12
  361. package/esm/highlevel/types/messages/dialog.js.map +1 -1
  362. package/esm/highlevel/types/messages/input-message-id.d.ts +5 -0
  363. package/esm/highlevel/types/messages/message-action.d.ts +19 -2
  364. package/esm/highlevel/types/messages/message-action.js +6 -0
  365. package/esm/highlevel/types/messages/message-action.js.map +1 -1
  366. package/esm/highlevel/types/messages/message-media.d.ts +4 -0
  367. package/esm/highlevel/types/messages/message.d.ts +59 -1
  368. package/esm/highlevel/types/messages/message.js +96 -1
  369. package/esm/highlevel/types/messages/message.js.map +1 -1
  370. package/esm/highlevel/types/misc/collectible-info.d.ts +27 -0
  371. package/esm/highlevel/types/misc/collectible-info.js +43 -0
  372. package/esm/highlevel/types/misc/collectible-info.js.map +1 -0
  373. package/esm/highlevel/types/misc/entities.d.ts +7 -0
  374. package/esm/highlevel/types/misc/entities.js +13 -1
  375. package/esm/highlevel/types/misc/entities.js.map +1 -1
  376. package/esm/highlevel/types/misc/index.d.ts +1 -0
  377. package/esm/highlevel/types/misc/index.js +1 -0
  378. package/esm/highlevel/types/misc/index.js.map +1 -1
  379. package/esm/highlevel/types/misc/sticker-set.d.ts +8 -1
  380. package/esm/highlevel/types/misc/sticker-set.js +38 -7
  381. package/esm/highlevel/types/misc/sticker-set.js.map +1 -1
  382. package/esm/highlevel/types/peers/chat-event/actions.d.ts +3 -0
  383. package/esm/highlevel/types/peers/chat-event/filters.d.ts +2 -0
  384. package/esm/highlevel/types/peers/chat.d.ts +7 -93
  385. package/esm/highlevel/types/peers/chat.js +2 -195
  386. package/esm/highlevel/types/peers/chat.js.map +1 -1
  387. package/esm/highlevel/types/peers/full-chat.d.ts +103 -0
  388. package/esm/highlevel/types/peers/full-chat.js +234 -0
  389. package/esm/highlevel/types/peers/full-chat.js.map +1 -0
  390. package/esm/highlevel/types/peers/index.d.ts +1 -0
  391. package/esm/highlevel/types/peers/index.js +1 -0
  392. package/esm/highlevel/types/peers/index.js.map +1 -1
  393. package/esm/highlevel/types/peers/user.d.ts +5 -0
  394. package/esm/highlevel/types/peers/user.js +7 -0
  395. package/esm/highlevel/types/peers/user.js.map +1 -1
  396. package/esm/highlevel/types/premium/business-account.d.ts +19 -0
  397. package/esm/highlevel/types/premium/business-account.js +42 -0
  398. package/esm/highlevel/types/premium/business-account.js.map +1 -0
  399. package/esm/highlevel/types/premium/business-chat-link.d.ts +19 -0
  400. package/esm/highlevel/types/premium/business-chat-link.js +36 -0
  401. package/esm/highlevel/types/premium/business-chat-link.js.map +1 -0
  402. package/esm/highlevel/types/premium/business-connection.d.ts +23 -0
  403. package/esm/highlevel/types/premium/business-connection.js +42 -0
  404. package/esm/highlevel/types/premium/business-connection.js.map +1 -0
  405. package/esm/highlevel/types/premium/business-intro.d.ts +22 -0
  406. package/esm/highlevel/types/premium/business-intro.js +40 -0
  407. package/esm/highlevel/types/premium/business-intro.js.map +1 -0
  408. package/esm/highlevel/types/premium/business-location.d.ts +10 -0
  409. package/esm/highlevel/types/premium/business-location.js +23 -0
  410. package/esm/highlevel/types/premium/business-location.js.map +1 -0
  411. package/esm/highlevel/types/premium/business-work-hours.d.ts +42 -0
  412. package/esm/highlevel/types/premium/business-work-hours.js +137 -0
  413. package/esm/highlevel/types/premium/business-work-hours.js.map +1 -0
  414. package/esm/highlevel/types/premium/index.d.ts +5 -0
  415. package/esm/highlevel/types/premium/index.js +5 -0
  416. package/esm/highlevel/types/premium/index.js.map +1 -1
  417. package/esm/highlevel/types/updates/business-message.d.ts +18 -0
  418. package/esm/highlevel/types/updates/business-message.js +31 -0
  419. package/esm/highlevel/types/updates/business-message.js.map +1 -0
  420. package/esm/highlevel/types/updates/delete-business-message-update.d.ts +21 -0
  421. package/esm/highlevel/types/updates/delete-business-message-update.js +34 -0
  422. package/esm/highlevel/types/updates/delete-business-message-update.js.map +1 -0
  423. package/esm/highlevel/types/updates/index.d.ts +19 -2
  424. package/esm/highlevel/types/updates/index.js +3 -1
  425. package/esm/highlevel/types/updates/index.js.map +1 -1
  426. package/esm/highlevel/types/updates/parse-update.d.ts +4 -1
  427. package/esm/highlevel/types/updates/parse-update.js +9 -1
  428. package/esm/highlevel/types/updates/parse-update.js.map +1 -1
  429. package/esm/highlevel/types/updates/poll-update.js +2 -2
  430. package/esm/highlevel/types/updates/poll-update.js.map +1 -1
  431. package/esm/highlevel/updates/manager.d.ts +0 -1
  432. package/esm/highlevel/updates/manager.js +7 -2
  433. package/esm/highlevel/updates/manager.js.map +1 -1
  434. package/esm/highlevel/updates/parsed.js +8 -2
  435. package/esm/highlevel/updates/parsed.js.map +1 -1
  436. package/esm/highlevel/updates/types.d.ts +57 -0
  437. package/esm/highlevel/updates/utils.d.ts +2 -0
  438. package/esm/highlevel/utils/inspectable.js +4 -0
  439. package/esm/highlevel/utils/inspectable.js.map +1 -1
  440. package/esm/highlevel/worker/protocol.d.ts +0 -1
  441. package/esm/network/client.d.ts +2 -2
  442. package/esm/network/client.js +9 -1
  443. package/esm/network/client.js.map +1 -1
  444. package/esm/network/mtproto-session.d.ts +0 -1
  445. package/esm/network/multi-session-connection.d.ts +0 -1
  446. package/esm/network/network-manager.d.ts +8 -0
  447. package/esm/network/network-manager.js +9 -4
  448. package/esm/network/network-manager.js.map +1 -1
  449. package/esm/network/persistent-connection.d.ts +0 -1
  450. package/esm/network/session-connection.js +11 -0
  451. package/esm/network/session-connection.js.map +1 -1
  452. package/esm/network/transports/abstract.d.ts +0 -1
  453. package/esm/network/transports/streamed.d.ts +0 -1
  454. package/esm/network/transports/wrapped.d.ts +0 -1
  455. package/esm/storage/sqlite/repository/peers.js +1 -2
  456. package/esm/storage/sqlite/repository/peers.js.map +1 -1
  457. package/esm/storage/storage.d.ts +21 -0
  458. package/esm/types/utils.d.ts +1 -0
  459. package/esm/types/utils.js.map +1 -1
  460. package/esm/utils/reloadable.d.ts +0 -1
  461. package/index.d.ts +1 -0
  462. package/index.js +1 -0
  463. package/methods.d.ts +1 -0
  464. package/methods.js +1 -0
  465. package/package.json +5 -5
  466. package/platform.d.ts +1 -0
  467. package/platform.js +1 -0
  468. package/utils.d.ts +1 -0
  469. package/utils.js +1 -0
  470. package/worker.d.ts +1 -0
  471. package/worker.js +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/user.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MessageEntity } from '../messages/message-entity.js'\nimport { EmojiStatus } from '../reactions/emoji-status.js'\nimport { ChatColors } from './chat-colors.js'\nimport { ChatPhoto } from './chat-photo.js'\n\n/**\n * User's Last Seen & Online status.\n * Can be one of the following:\n * - `online`, user is online right now.\n * - `offline`, user is currently offline.\n * - `recently`, user with hidden last seen time who was online between 1 second and 72 hours ago.\n * - `within_week`, user with hidden last seen time who was online between 72 hours and 7 days ago.\n * - `within_month`, user with hidden last seen time who was online between 7 days and a month ago.\n * - `long_time_ago`, blocked user or user with hidden last seen time who was online more than a month ago.\n * - `bot`, for bots.\n */\nexport type UserStatus = 'online' | 'offline' | 'recently' | 'within_week' | 'within_month' | 'long_time_ago' | 'bot'\n\nexport interface UserParsedStatus {\n status: UserStatus\n lastOnline: Date | null\n nextOffline: Date | null\n byMe: boolean\n}\n\nexport class User {\n readonly type = 'user' as const\n\n /**\n * Underlying raw TL object\n */\n readonly raw: tl.RawUser\n\n constructor(user: tl.TypeUser) {\n assertTypeIs('User#init', user, 'user')\n\n this.raw = user\n }\n\n /** Unique identifier for this user or bot */\n get id(): number {\n return this.raw.id\n }\n\n /**\n * Whether this user's information is incomplete.\n *\n * This usually only happens in large chats, where\n * the server sometimes sends only a part of the user's\n * information. Basic info like name and profile photo\n * are always available, but other fields may be omitted\n * despite being available.\n *\n * It was observed that these fields may be missing:\n * - `username, usernames`\n * - `status, lastOnline, nextOffline`\n * - `storiesMaxId`\n * - `photo` - in some cases when user has some some privacy settings\n * - and probably more\n *\n * This currently only ever happens for non-bot users, so if you are building\n * a normal bot, you can safely ignore this field.\n *\n * To fetch the \"complete\" user information, use one of these methods:\n * - {@link TelegramClient.getUsers}\n * - {@link TelegramClient.getChat}\n * - {@link TelegramClient.getFullChat}.\n *\n * Learn more: [Incomplete peers](https://mtcute.dev/guide/topics/peers.html#incomplete-peers)\n */\n get isMin(): boolean {\n return this.raw.min!\n }\n\n /** Whether this user is you yourself */\n get isSelf(): boolean {\n return this.raw.self!\n }\n\n /** Whether this user is in your contacts */\n get isContact(): boolean {\n return this.raw.contact!\n }\n\n /** Whether you both have each other's contact */\n get isMutualContact(): boolean {\n return this.raw.mutualContact!\n }\n\n /** Whether this user is in yout \"close friends\" list */\n get isCloseFriend(): boolean {\n return this.raw.closeFriend!\n }\n\n /** Whether this user is deleted */\n get isDeleted(): boolean {\n return this.raw.deleted!\n }\n\n /** Whether this user is a bot */\n get isBot(): boolean {\n return this.raw.bot!\n }\n\n /** Whether this user is a bot that has access to all messages */\n get isBotWithHistory(): boolean {\n return this.raw.botChatHistory!\n }\n\n /** Whether this user is a bot that can't be added to chats */\n get isBotWithoutChats(): boolean {\n return this.raw.botNochats!\n }\n\n /** Whether this bot offers an attachment menu web app */\n get isBotWithAttachmentMenu(): boolean {\n return this.raw.botAttachMenu!\n }\n\n /** Whether this bot can be edited by the current user */\n get isBotEditable(): boolean {\n return this.raw.botCanEdit!\n }\n\n /** Whether this user has been verified by Telegram */\n get isVerified(): boolean {\n return this.raw.verified!\n }\n\n /**\n * Whether this user has been restricted. Bots only.\n * See {@link restrictionReason} for details\n */\n get isRestricted(): boolean {\n return this.raw.restricted!\n }\n\n /**\n * Reason why this bot was restricted\n */\n get restrictionReason(): tl.TypeRestrictionReason[] {\n return this.raw.restrictionReason ?? []\n }\n\n /** Whether this user has been flagged for scam */\n get isScam(): boolean {\n return this.raw.scam!\n }\n\n /** Whether this user has been flagged for impersonation */\n get isFake(): boolean {\n return this.raw.fake!\n }\n\n /** Whether this user is part of the Telegram support team */\n get isSupport(): boolean {\n return this.raw.support!\n }\n\n /** Whether this user has Premium subscription */\n get isPremium(): boolean {\n return this.raw.premium!\n }\n\n /** Whether Premium is required to contact this user */\n get isPremiumRequired(): boolean {\n return this.raw.contactRequirePremium!\n }\n\n /** User's or bot's first name */\n get firstName(): string {\n return this.raw.firstName ?? 'Deleted Account'\n }\n\n /** User's or bot's last name */\n get lastName(): string | null {\n return this.raw.lastName ?? null\n }\n\n static parseStatus(status?: tl.TypeUserStatus, bot = false): UserParsedStatus {\n let ret: UserStatus\n let date: Date\n let byMe = false\n\n const us = status\n\n if (bot) {\n ret = 'bot'\n } else if (!us) {\n ret = 'long_time_ago'\n } else {\n switch (us._) {\n case 'userStatusOnline':\n ret = 'online'\n date = new Date(us.expires * 1000)\n break\n case 'userStatusOffline':\n ret = 'offline'\n date = new Date(us.wasOnline * 1000)\n break\n case 'userStatusRecently':\n ret = 'recently'\n byMe = us.byMe!\n break\n case 'userStatusLastWeek':\n ret = 'within_week'\n byMe = us.byMe!\n break\n case 'userStatusLastMonth':\n ret = 'within_month'\n byMe = us.byMe!\n break\n default:\n ret = 'long_time_ago'\n break\n }\n }\n\n return {\n status: ret,\n lastOnline: ret === 'offline' ? date! : null,\n nextOffline: ret === 'online' ? date! : null,\n byMe,\n }\n }\n\n private get _parsedStatus() {\n return User.parseStatus(this.raw.status, this.raw.bot)\n }\n\n /** User's Last Seen & Online status */\n get status(): UserStatus {\n return this._parsedStatus.status\n }\n\n /**\n * Whether user's online status is hidden because\n * we have hidden our own online status from them,\n * and we don't have Premium subscription.\n */\n get statusHiddenByMe(): boolean {\n return this._parsedStatus.byMe\n }\n\n /**\n * Last time this user was seen online.\n * Only available if {@link status} is `offline`\n */\n get lastOnline(): Date | null {\n return this._parsedStatus.lastOnline\n }\n\n /**\n * Time when this user will automatically go offline.\n * Only available if {@link status} is `online`\n */\n get nextOffline(): Date | null {\n return this._parsedStatus.nextOffline\n }\n\n /** User's or bot's username */\n get username(): string | null {\n return this.raw.username ?? this.raw.usernames?.[0]?.username ?? null\n }\n\n /** User's or bot's usernames (including collectibles) */\n get usernames(): ReadonlyArray<tl.RawUsername> | null {\n if (this.raw.username) {\n return [{ _: 'username', username: this.raw.username, active: true }]\n }\n\n if (!this.raw.usernames?.length) {\n return null\n }\n\n return this.raw.usernames\n }\n\n /**\n * IETF language tag of the user's language\n *\n * Only available in some contexts\n */\n get language(): string | null {\n return this.raw.langCode ?? null\n }\n\n /**\n * User's or bot's assigned DC (data center).\n * Available only in case the user has set a public profile photo.\n *\n * **Note**: this information is approximate; it is based on where\n * Telegram stores a user profile pictures and does not by any means tell\n * you the user location (i.e. a user might travel far away, but will still connect\n * to its assigned DC).\n * More info at [Pyrogram FAQ](https://docs.pyrogram.org/faq#what-are-the-ip-addresses-of-telegram-data-centers).\n */\n get dcId(): number | null {\n return (this.raw.photo as Exclude<typeof this.raw.photo, tl.RawUserProfilePhotoEmpty>)?.dcId ?? null\n }\n\n /** User's phone number */\n get phoneNumber(): string | null {\n return this.raw.phone ?? null\n }\n\n /**\n * Get this user's input peer for advanced use-cases.\n *\n * > **Note**: for {@link min} users, this method will return\n * > `mtcute.dummyInputPeerMinUser`, which is actually not a valid input peer.\n * > These are used to indicate that the user is incomplete, and a message\n * > reference is needed to resolve the peer.\n * >\n * > Such objects are handled by {@link TelegramClient.resolvePeer} method,\n * > so prefer using it whenever you need an input peer.\n */\n get inputPeer(): tl.TypeInputPeer {\n if (this.raw.min) {\n return {\n _: 'mtcute.dummyInputPeerMinUser',\n userId: this.raw.id,\n }\n }\n\n if (!this.raw.accessHash) {\n throw new MtArgumentError(\"user's access hash is not available!\")\n }\n\n return {\n _: 'inputPeerUser',\n userId: this.raw.id,\n accessHash: this.raw.accessHash,\n }\n }\n\n /**\n * User's or bot's current profile photo, if any.\n * Suitable for downloads only\n */\n get photo(): ChatPhoto | null {\n if (this.raw.photo?._ !== 'userProfilePhoto') return null\n\n return new ChatPhoto(this.inputPeer, this.raw.photo)\n }\n\n /**\n * The list of reasons why this bot might be unavailable to some users.\n * This field is available only in case *isRestricted* is `true`\n */\n get restrictions(): ReadonlyArray<tl.RawRestrictionReason> | null {\n return this.raw.restrictionReason ?? null\n }\n\n /**\n * User's display name.\n *\n * First name and last name if available,\n * only first name otherwise.\n */\n get displayName(): string {\n if (!this.firstName) return 'Deleted Account'\n if (this.lastName) return `${this.firstName} ${this.lastName}`\n\n return this.firstName\n }\n\n /**\n * User's emoji status, if any.\n */\n get emojiStatus(): EmojiStatus | null {\n if (!this.raw.emojiStatus || this.raw.emojiStatus._ === 'emojiStatusEmpty') return null\n\n return new EmojiStatus(this.raw.emojiStatus)\n }\n\n /** Whether you have hidden (arhived) this user's stories */\n get storiesHidden(): boolean {\n return this.raw.storiesHidden!\n }\n\n get storiesUnavailable(): boolean {\n return this.raw.storiesUnavailable!\n }\n\n /**\n * Maximum ID of stories this user has (or 0 if none)\n */\n get storiesMaxId(): number {\n return this.raw.storiesMaxId ?? 0\n }\n\n /**\n * Color that should be used when rendering replies to\n * their messages and web previews sent by them,\n * as well as to render the chat title\n */\n get color(): ChatColors {\n return new ChatColors(this.raw.id, this.raw.color)\n }\n\n /**\n * Color that should be used when rendering the header of\n * the user's profile\n *\n * If `null`, a generic header should be used instead\n */\n get profileColors(): ChatColors | null {\n return this.raw.profileColor ? new ChatColors(this.raw.id, this.raw.profileColor) : null\n }\n\n /**\n * Create a mention for the user.\n *\n * When available and `text` is omitted, this method will return `@username`.\n * Otherwise, text mention is created.\n *\n * Use `null` as `text` (first parameter) to force create a text\n * mention with display name, even if there is a username.\n *\n * > **Note**: This method doesn't format anything on its own.\n * > Instead, it returns a {@link MessageEntity} that can later\n * > be used with `html` or `md` template tags\n *\n * @param text Text of the mention.\n * @example\n * ```typescript\n * msg.replyText(html`Hello, ${msg.sender.mention()`)\n * ```\n */\n mention(text?: string | null): string | MessageEntity {\n if (text === undefined && this.username) {\n return `@${this.username}`\n }\n\n if (!text) text = this.displayName\n\n return new MessageEntity(\n {\n _: 'messageEntityMentionName',\n offset: 0,\n length: text.length,\n userId: this.raw.id,\n },\n text,\n )\n }\n\n /**\n * Create a permanent mention for this user.\n *\n * *Permanent* means that this mention will also\n * contain user's access hash, so even if the user\n * changes their username or the client forgets\n * about that user, it can still be mentioned.\n *\n * Telegram might change access hash in some cases,\n * so it may not exactly be *permanent*. The only way\n * to actually make it permanent is to send it as a message\n * somewhere and load it from there if needed.\n *\n * Note that some users (particularly, users with hidden forwards)\n * may not be mentioned like this outside the chats you have in common.\n *\n * This method is only needed when the result will be\n * stored somewhere outside current mtcute instance (e.g. saved for later use),\n * otherwise {@link mention} will be enough.\n *\n * > **Note**: This method doesn't format anything on its own.\n * > Instead, it returns a {@link MessageEntity} that can later\n * > be used with `html` or `md` template tags\n *\n * > **Note**: the resulting text can only be used by clients\n * > that support mtcute notation of permanent\n * > mention links (`tg://user?id=123&hash=abc`).\n * >\n * > Also note that these permanent mentions are only\n * > valid for current account, since peer access hashes are\n * > account-specific and can't be used on another account.\n * >\n * > Also note that for some users such mentions might not work at all\n * > due to privacy settings.\n *\n * @param text Mention text\n */\n permanentMention(text?: string | null): MessageEntity {\n if (!this.raw.accessHash) {\n throw new MtArgumentError(\"User's access hash is not available!\")\n }\n\n if (!text) text = this.displayName\n\n return new MessageEntity(\n {\n _: 'messageEntityTextUrl',\n offset: 0,\n length: text.length,\n url: `tg://user?id=${this.id}&hash=${this.raw.accessHash.toString(16)}`,\n },\n text,\n )\n }\n}\n\nmemoizeGetters(User, [\n '_parsedStatus' as keyof User,\n 'usernames',\n 'inputPeer',\n 'photo',\n 'emojiStatus',\n 'color',\n 'profileColors',\n])\nmakeInspectable(User, undefined, ['_parsedStatus' as keyof User])\n"]}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/user.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MessageEntity } from '../messages/message-entity.js'\nimport { EmojiStatus } from '../reactions/emoji-status.js'\nimport { ChatColors } from './chat-colors.js'\nimport { ChatPhoto } from './chat-photo.js'\n\n/**\n * User's Last Seen & Online status.\n * Can be one of the following:\n * - `online`, user is online right now.\n * - `offline`, user is currently offline.\n * - `recently`, user with hidden last seen time who was online between 1 second and 72 hours ago.\n * - `within_week`, user with hidden last seen time who was online between 72 hours and 7 days ago.\n * - `within_month`, user with hidden last seen time who was online between 7 days and a month ago.\n * - `long_time_ago`, blocked user or user with hidden last seen time who was online more than a month ago.\n * - `bot`, for bots.\n */\nexport type UserStatus = 'online' | 'offline' | 'recently' | 'within_week' | 'within_month' | 'long_time_ago' | 'bot'\n\nexport interface UserParsedStatus {\n status: UserStatus\n lastOnline: Date | null\n nextOffline: Date | null\n byMe: boolean\n}\n\nexport class User {\n readonly type = 'user' as const\n\n /**\n * Underlying raw TL object\n */\n readonly raw: tl.RawUser\n\n constructor(user: tl.TypeUser) {\n assertTypeIs('User#init', user, 'user')\n\n this.raw = user\n }\n\n /** Unique identifier for this user or bot */\n get id(): number {\n return this.raw.id\n }\n\n /**\n * Whether this user's information is incomplete.\n *\n * This usually only happens in large chats, where\n * the server sometimes sends only a part of the user's\n * information. Basic info like name and profile photo\n * are always available, but other fields may be omitted\n * despite being available.\n *\n * It was observed that these fields may be missing:\n * - `username, usernames`\n * - `status, lastOnline, nextOffline`\n * - `storiesMaxId`\n * - `photo` - in some cases when user has some some privacy settings\n * - and probably more\n *\n * This currently only ever happens for non-bot users, so if you are building\n * a normal bot, you can safely ignore this field.\n *\n * To fetch the \"complete\" user information, use one of these methods:\n * - {@link TelegramClient.getUsers}\n * - {@link TelegramClient.getChat}\n * - {@link TelegramClient.getFullChat}.\n *\n * Learn more: [Incomplete peers](https://mtcute.dev/guide/topics/peers.html#incomplete-peers)\n */\n get isMin(): boolean {\n return this.raw.min!\n }\n\n /** Whether this user is you yourself */\n get isSelf(): boolean {\n return this.raw.self!\n }\n\n /** Whether this user is in your contacts */\n get isContact(): boolean {\n return this.raw.contact!\n }\n\n /** Whether you both have each other's contact */\n get isMutualContact(): boolean {\n return this.raw.mutualContact!\n }\n\n /** Whether this user is in yout \"close friends\" list */\n get isCloseFriend(): boolean {\n return this.raw.closeFriend!\n }\n\n /** Whether this user is deleted */\n get isDeleted(): boolean {\n return this.raw.deleted!\n }\n\n /** Whether this user is a bot */\n get isBot(): boolean {\n return this.raw.bot!\n }\n\n /**\n * Whether this user is a bot that can be connected to a\n * Telegram Business account to receive its messages\n */\n get isBusinessBot(): boolean {\n return this.raw.botBusiness!\n }\n\n /** Whether this user is a bot that has access to all messages */\n get isBotWithHistory(): boolean {\n return this.raw.botChatHistory!\n }\n\n /** Whether this user is a bot that can't be added to chats */\n get isBotWithoutChats(): boolean {\n return this.raw.botNochats!\n }\n\n /** Whether this bot offers an attachment menu web app */\n get isBotWithAttachmentMenu(): boolean {\n return this.raw.botAttachMenu!\n }\n\n /** Whether this bot can be edited by the current user */\n get isBotEditable(): boolean {\n return this.raw.botCanEdit!\n }\n\n /** Whether this user has been verified by Telegram */\n get isVerified(): boolean {\n return this.raw.verified!\n }\n\n /**\n * Whether this user has been restricted. Bots only.\n * See {@link restrictionReason} for details\n */\n get isRestricted(): boolean {\n return this.raw.restricted!\n }\n\n /**\n * Reason why this bot was restricted\n */\n get restrictionReason(): tl.TypeRestrictionReason[] {\n return this.raw.restrictionReason ?? []\n }\n\n /** Whether this user has been flagged for scam */\n get isScam(): boolean {\n return this.raw.scam!\n }\n\n /** Whether this user has been flagged for impersonation */\n get isFake(): boolean {\n return this.raw.fake!\n }\n\n /** Whether this user is part of the Telegram support team */\n get isSupport(): boolean {\n return this.raw.support!\n }\n\n /** Whether this user has Premium subscription */\n get isPremium(): boolean {\n return this.raw.premium!\n }\n\n /** Whether Premium is required to contact this user */\n get isPremiumRequired(): boolean {\n return this.raw.contactRequirePremium!\n }\n\n /** User's or bot's first name */\n get firstName(): string {\n return this.raw.firstName ?? 'Deleted Account'\n }\n\n /** User's or bot's last name */\n get lastName(): string | null {\n return this.raw.lastName ?? null\n }\n\n static parseStatus(status?: tl.TypeUserStatus, bot = false): UserParsedStatus {\n let ret: UserStatus\n let date: Date\n let byMe = false\n\n const us = status\n\n if (bot) {\n ret = 'bot'\n } else if (!us) {\n ret = 'long_time_ago'\n } else {\n switch (us._) {\n case 'userStatusOnline':\n ret = 'online'\n date = new Date(us.expires * 1000)\n break\n case 'userStatusOffline':\n ret = 'offline'\n date = new Date(us.wasOnline * 1000)\n break\n case 'userStatusRecently':\n ret = 'recently'\n byMe = us.byMe!\n break\n case 'userStatusLastWeek':\n ret = 'within_week'\n byMe = us.byMe!\n break\n case 'userStatusLastMonth':\n ret = 'within_month'\n byMe = us.byMe!\n break\n default:\n ret = 'long_time_ago'\n break\n }\n }\n\n return {\n status: ret,\n lastOnline: ret === 'offline' ? date! : null,\n nextOffline: ret === 'online' ? date! : null,\n byMe,\n }\n }\n\n private get _parsedStatus() {\n return User.parseStatus(this.raw.status, this.raw.bot)\n }\n\n /** User's Last Seen & Online status */\n get status(): UserStatus {\n return this._parsedStatus.status\n }\n\n /**\n * Whether user's online status is hidden because\n * we have hidden our own online status from them,\n * and we don't have Premium subscription.\n */\n get statusHiddenByMe(): boolean {\n return this._parsedStatus.byMe\n }\n\n /**\n * Last time this user was seen online.\n * Only available if {@link status} is `offline`\n */\n get lastOnline(): Date | null {\n return this._parsedStatus.lastOnline\n }\n\n /**\n * Time when this user will automatically go offline.\n * Only available if {@link status} is `online`\n */\n get nextOffline(): Date | null {\n return this._parsedStatus.nextOffline\n }\n\n /** User's or bot's username */\n get username(): string | null {\n return this.raw.username ?? this.raw.usernames?.[0]?.username ?? null\n }\n\n /** User's or bot's usernames (including collectibles) */\n get usernames(): ReadonlyArray<tl.RawUsername> | null {\n if (this.raw.username) {\n return [{ _: 'username', username: this.raw.username, active: true }]\n }\n\n if (!this.raw.usernames?.length) {\n return null\n }\n\n return this.raw.usernames\n }\n\n /**\n * IETF language tag of the user's language\n *\n * Only available in some contexts\n */\n get language(): string | null {\n return this.raw.langCode ?? null\n }\n\n /**\n * User's or bot's assigned DC (data center).\n * Available only in case the user has set a public profile photo.\n *\n * **Note**: this information is approximate; it is based on where\n * Telegram stores a user profile pictures and does not by any means tell\n * you the user location (i.e. a user might travel far away, but will still connect\n * to its assigned DC).\n * More info at [Pyrogram FAQ](https://docs.pyrogram.org/faq#what-are-the-ip-addresses-of-telegram-data-centers).\n */\n get dcId(): number | null {\n return (this.raw.photo as Exclude<typeof this.raw.photo, tl.RawUserProfilePhotoEmpty>)?.dcId ?? null\n }\n\n /** User's phone number */\n get phoneNumber(): string | null {\n return this.raw.phone ?? null\n }\n\n /**\n * Get this user's input peer for advanced use-cases.\n *\n * > **Note**: for {@link min} users, this method will return\n * > `mtcute.dummyInputPeerMinUser`, which is actually not a valid input peer.\n * > These are used to indicate that the user is incomplete, and a message\n * > reference is needed to resolve the peer.\n * >\n * > Such objects are handled by {@link TelegramClient.resolvePeer} method,\n * > so prefer using it whenever you need an input peer.\n */\n get inputPeer(): tl.TypeInputPeer {\n if (this.raw.min) {\n return {\n _: 'mtcute.dummyInputPeerMinUser',\n userId: this.raw.id,\n }\n }\n\n if (!this.raw.accessHash) {\n throw new MtArgumentError(\"user's access hash is not available!\")\n }\n\n return {\n _: 'inputPeerUser',\n userId: this.raw.id,\n accessHash: this.raw.accessHash,\n }\n }\n\n /**\n * User's or bot's current profile photo, if any.\n * Suitable for downloads only\n */\n get photo(): ChatPhoto | null {\n if (this.raw.photo?._ !== 'userProfilePhoto') return null\n\n return new ChatPhoto(this.inputPeer, this.raw.photo)\n }\n\n /**\n * The list of reasons why this bot might be unavailable to some users.\n * This field is available only in case *isRestricted* is `true`\n */\n get restrictions(): ReadonlyArray<tl.RawRestrictionReason> | null {\n return this.raw.restrictionReason ?? null\n }\n\n /**\n * User's display name.\n *\n * First name and last name if available,\n * only first name otherwise.\n */\n get displayName(): string {\n if (!this.firstName) return 'Deleted Account'\n if (this.lastName) return `${this.firstName} ${this.lastName}`\n\n return this.firstName\n }\n\n /**\n * User's emoji status, if any.\n */\n get emojiStatus(): EmojiStatus | null {\n if (!this.raw.emojiStatus || this.raw.emojiStatus._ === 'emojiStatusEmpty') return null\n\n return new EmojiStatus(this.raw.emojiStatus)\n }\n\n /** Whether you have hidden (arhived) this user's stories */\n get storiesHidden(): boolean {\n return this.raw.storiesHidden!\n }\n\n get storiesUnavailable(): boolean {\n return this.raw.storiesUnavailable!\n }\n\n /**\n * Maximum ID of stories this user has (or 0 if none)\n */\n get storiesMaxId(): number {\n return this.raw.storiesMaxId ?? 0\n }\n\n /**\n * Color that should be used when rendering replies to\n * their messages and web previews sent by them,\n * as well as to render the chat title\n */\n get color(): ChatColors {\n return new ChatColors(this.raw.id, this.raw.color)\n }\n\n /**\n * Color that should be used when rendering the header of\n * the user's profile\n *\n * If `null`, a generic header should be used instead\n */\n get profileColors(): ChatColors | null {\n return this.raw.profileColor ? new ChatColors(this.raw.id, this.raw.profileColor) : null\n }\n\n /**\n * Create a mention for the user.\n *\n * When available and `text` is omitted, this method will return `@username`.\n * Otherwise, text mention is created.\n *\n * Use `null` as `text` (first parameter) to force create a text\n * mention with display name, even if there is a username.\n *\n * > **Note**: This method doesn't format anything on its own.\n * > Instead, it returns a {@link MessageEntity} that can later\n * > be used with `html` or `md` template tags\n *\n * @param text Text of the mention.\n * @example\n * ```typescript\n * msg.replyText(html`Hello, ${msg.sender.mention()`)\n * ```\n */\n mention(text?: string | null): string | MessageEntity {\n if (text === undefined && this.username) {\n return `@${this.username}`\n }\n\n if (!text) text = this.displayName\n\n return new MessageEntity(\n {\n _: 'messageEntityMentionName',\n offset: 0,\n length: text.length,\n userId: this.raw.id,\n },\n text,\n )\n }\n\n /**\n * Create a permanent mention for this user.\n *\n * *Permanent* means that this mention will also\n * contain user's access hash, so even if the user\n * changes their username or the client forgets\n * about that user, it can still be mentioned.\n *\n * Telegram might change access hash in some cases,\n * so it may not exactly be *permanent*. The only way\n * to actually make it permanent is to send it as a message\n * somewhere and load it from there if needed.\n *\n * Note that some users (particularly, users with hidden forwards)\n * may not be mentioned like this outside the chats you have in common.\n *\n * This method is only needed when the result will be\n * stored somewhere outside current mtcute instance (e.g. saved for later use),\n * otherwise {@link mention} will be enough.\n *\n * > **Note**: This method doesn't format anything on its own.\n * > Instead, it returns a {@link MessageEntity} that can later\n * > be used with `html` or `md` template tags\n *\n * > **Note**: the resulting text can only be used by clients\n * > that support mtcute notation of permanent\n * > mention links (`tg://user?id=123&hash=abc`).\n * >\n * > Also note that these permanent mentions are only\n * > valid for current account, since peer access hashes are\n * > account-specific and can't be used on another account.\n * >\n * > Also note that for some users such mentions might not work at all\n * > due to privacy settings.\n *\n * @param text Mention text\n */\n permanentMention(text?: string | null): MessageEntity {\n if (!this.raw.accessHash) {\n throw new MtArgumentError(\"User's access hash is not available!\")\n }\n\n if (!text) text = this.displayName\n\n return new MessageEntity(\n {\n _: 'messageEntityTextUrl',\n offset: 0,\n length: text.length,\n url: `tg://user?id=${this.id}&hash=${this.raw.accessHash.toString(16)}`,\n },\n text,\n )\n }\n}\n\nmemoizeGetters(User, [\n '_parsedStatus' as keyof User,\n 'usernames',\n 'inputPeer',\n 'photo',\n 'emojiStatus',\n 'color',\n 'profileColors',\n])\nmakeInspectable(User, undefined, ['_parsedStatus' as keyof User])\n"]}
@@ -0,0 +1,19 @@
1
+ import { tl } from '@mtcute/tl';
2
+ import { BusinessIntro } from './business-intro.js';
3
+ import { BusinessLocation } from './business-location.js';
4
+ import { BusinessWorkHours } from './business-work-hours.js';
5
+ /** Information about a business account */
6
+ export declare class BusinessAccount {
7
+ readonly info: tl.RawUserFull;
8
+ constructor(info: tl.RawUserFull);
9
+ /** Introduction of the business account */
10
+ get intro(): BusinessIntro | null;
11
+ /** Work hours of the business */
12
+ get workHours(): BusinessWorkHours | null;
13
+ /** Location of the business */
14
+ get location(): BusinessLocation | null;
15
+ /** Information about a greeting message */
16
+ get greetingMessage(): tl.TypeBusinessGreetingMessage | null;
17
+ /** Information about an "away" message */
18
+ get awayMessage(): tl.TypeBusinessAwayMessage | null;
19
+ }
@@ -0,0 +1,42 @@
1
+ import { makeInspectable } from '../../utils/inspectable.js';
2
+ import { memoizeGetters } from '../../utils/memoize.js';
3
+ import { BusinessIntro } from './business-intro.js';
4
+ import { BusinessLocation } from './business-location.js';
5
+ import { BusinessWorkHours } from './business-work-hours.js';
6
+ /** Information about a business account */
7
+ class BusinessAccount {
8
+ info;
9
+ constructor(info) {
10
+ this.info = info;
11
+ }
12
+ /** Introduction of the business account */
13
+ get intro() {
14
+ if (!this.info.businessIntro)
15
+ return null;
16
+ return new BusinessIntro(this.info.businessIntro);
17
+ }
18
+ /** Work hours of the business */
19
+ get workHours() {
20
+ if (!this.info.businessWorkHours)
21
+ return null;
22
+ return new BusinessWorkHours(this.info.businessWorkHours);
23
+ }
24
+ /** Location of the business */
25
+ get location() {
26
+ if (!this.info.businessLocation)
27
+ return null;
28
+ return new BusinessLocation(this.info.businessLocation);
29
+ }
30
+ /** Information about a greeting message */
31
+ get greetingMessage() {
32
+ return this.info.businessGreetingMessage ?? null;
33
+ }
34
+ /** Information about an "away" message */
35
+ get awayMessage() {
36
+ return this.info.businessAwayMessage ?? null;
37
+ }
38
+ }
39
+ const BusinessAccount$1 = /*#__PURE__*/memoizeGetters(BusinessAccount, ['intro', 'workHours', 'location']);
40
+ const BusinessAccount$2 = /*#__PURE__*/makeInspectable(BusinessAccount$1, );
41
+ //# sourceMappingURL=business-account.js.map
42
+ export { BusinessAccount$2 as BusinessAccount }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business-account.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/premium/business-account.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D,2CAA2C;AAC3C,MAAM,OAAO,eAAe;IACH;IAArB,YAAqB,IAAoB;QAApB,SAAI,GAAJ,IAAI,CAAgB;IAAG,CAAC;IAE7C,2CAA2C;IAC3C,IAAI,KAAK;QACL,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAA;QAEzC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACrD,CAAC;IAED,iCAAiC;IACjC,IAAI,SAAS;QACT,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAA;QAE7C,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC7D,CAAC;IAED,+BAA+B;IAC/B,IAAI,QAAQ;QACR,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO,IAAI,CAAA;QAE5C,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC3D,CAAC;IAED,2CAA2C;IAC3C,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAA;IACpD,CAAC;IAED,0CAA0C;IAC1C,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAA;IAChD,CAAC;CACJ;AAED,cAAc,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAA;AACnE,eAAe,CAAC,eAAe,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { BusinessIntro } from './business-intro.js'\nimport { BusinessLocation } from './business-location.js'\nimport { BusinessWorkHours } from './business-work-hours.js'\n\n/** Information about a business account */\nexport class BusinessAccount {\n constructor(readonly info: tl.RawUserFull) {}\n\n /** Introduction of the business account */\n get intro(): BusinessIntro | null {\n if (!this.info.businessIntro) return null\n\n return new BusinessIntro(this.info.businessIntro)\n }\n\n /** Work hours of the business */\n get workHours(): BusinessWorkHours | null {\n if (!this.info.businessWorkHours) return null\n\n return new BusinessWorkHours(this.info.businessWorkHours)\n }\n\n /** Location of the business */\n get location(): BusinessLocation | null {\n if (!this.info.businessLocation) return null\n\n return new BusinessLocation(this.info.businessLocation)\n }\n\n /** Information about a greeting message */\n get greetingMessage(): tl.TypeBusinessGreetingMessage | null {\n return this.info.businessGreetingMessage ?? null\n }\n\n /** Information about an \"away\" message */\n get awayMessage(): tl.TypeBusinessAwayMessage | null {\n return this.info.businessAwayMessage ?? null\n }\n}\n\nmemoizeGetters(BusinessAccount, ['intro', 'workHours', 'location'])\nmakeInspectable(BusinessAccount)\n"]}
@@ -0,0 +1,19 @@
1
+ import { tl } from '@mtcute/tl';
2
+ import { MessageEntity } from '../messages/message-entity.js';
3
+ /**
4
+ * A business chat link, i.e. a link to start a chat with a pre-filled message.
5
+ */
6
+ export declare class BusinessChatLink {
7
+ readonly raw: tl.RawBusinessChatLink;
8
+ constructor(raw: tl.RawBusinessChatLink);
9
+ /** The link itself */
10
+ get link(): string;
11
+ /** Text to be inserted into the message input */
12
+ get text(): string;
13
+ /** Entities for the text */
14
+ get entities(): MessageEntity[];
15
+ /** Custom title for the link */
16
+ get title(): string | null;
17
+ /** Number of clicks on the link */
18
+ get clicks(): number;
19
+ }
@@ -0,0 +1,36 @@
1
+ import { makeInspectable } from '../../utils/inspectable.js';
2
+ import { memoizeGetters } from '../../utils/memoize.js';
3
+ import { MessageEntity } from '../messages/message-entity.js';
4
+ /**
5
+ * A business chat link, i.e. a link to start a chat with a pre-filled message.
6
+ */
7
+ class BusinessChatLink {
8
+ raw;
9
+ constructor(raw) {
10
+ this.raw = raw;
11
+ }
12
+ /** The link itself */
13
+ get link() {
14
+ return this.raw.link;
15
+ }
16
+ /** Text to be inserted into the message input */
17
+ get text() {
18
+ return this.raw.message;
19
+ }
20
+ /** Entities for the text */
21
+ get entities() {
22
+ return this.raw.entities?.map((x) => new MessageEntity(x)) ?? [];
23
+ }
24
+ /** Custom title for the link */
25
+ get title() {
26
+ return this.raw.title ?? null;
27
+ }
28
+ /** Number of clicks on the link */
29
+ get clicks() {
30
+ return this.raw.views;
31
+ }
32
+ }
33
+ const BusinessChatLink$1 = /*#__PURE__*/makeInspectable(BusinessChatLink, );
34
+ const BusinessChatLink$2 = /*#__PURE__*/memoizeGetters(BusinessChatLink$1, ['entities']);
35
+ //# sourceMappingURL=business-chat-link.js.map
36
+ export { BusinessChatLink$2 as BusinessChatLink }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business-chat-link.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/premium/business-chat-link.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAE7D;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACJ;IAArB,YAAqB,GAA2B;QAA3B,QAAG,GAAH,GAAG,CAAwB;IAAG,CAAC;IAEpD,sBAAsB;IACtB,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;IACxB,CAAC;IAED,iDAAiD;IACjD,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED,4BAA4B;IAC5B,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACpE,CAAC;IAED,gCAAgC;IAChC,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAA;IACjC,CAAC;IAED,mCAAmC;IACnC,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;CACJ;AAED,eAAe,CAAC,gBAAgB,CAAC,CAAA;AACjC,cAAc,CAAC,gBAAgB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MessageEntity } from '../messages/message-entity.js'\n\n/**\n * A business chat link, i.e. a link to start a chat with a pre-filled message.\n */\nexport class BusinessChatLink {\n constructor(readonly raw: tl.RawBusinessChatLink) {}\n\n /** The link itself */\n get link(): string {\n return this.raw.link\n }\n\n /** Text to be inserted into the message input */\n get text(): string {\n return this.raw.message\n }\n\n /** Entities for the text */\n get entities(): MessageEntity[] {\n return this.raw.entities?.map((x) => new MessageEntity(x)) ?? []\n }\n\n /** Custom title for the link */\n get title(): string | null {\n return this.raw.title ?? null\n }\n\n /** Number of clicks on the link */\n get clicks(): number {\n return this.raw.views\n }\n}\n\nmakeInspectable(BusinessChatLink)\nmemoizeGetters(BusinessChatLink, ['entities'])\n"]}
@@ -0,0 +1,23 @@
1
+ import { tl } from '@mtcute/tl';
2
+ import { PeersIndex } from '../peers/peers-index.js';
3
+ import { User } from '../peers/user.js';
4
+ /**
5
+ * Describes the connection of the bot with a business account.
6
+ */
7
+ export declare class BusinessConnection {
8
+ readonly raw: tl.TypeBotBusinessConnection;
9
+ readonly _peers: PeersIndex;
10
+ constructor(raw: tl.TypeBotBusinessConnection, _peers: PeersIndex);
11
+ /** Whether the connection was removed by the user */
12
+ get isRemoved(): boolean;
13
+ /** ID of the connection */
14
+ get id(): string;
15
+ /** Datacenter ID of the connected user */
16
+ get dcId(): number;
17
+ /** Date when the connection was created */
18
+ get date(): Date;
19
+ /** Whether the bot can reply on behalf of the user */
20
+ get canReply(): boolean;
21
+ /** Business account user that created the business connection */
22
+ get user(): User;
23
+ }
@@ -0,0 +1,42 @@
1
+ import { makeInspectable } from '../../utils/inspectable.js';
2
+ import { memoizeGetters } from '../../utils/memoize.js';
3
+ import { User } from '../peers/user.js';
4
+ /**
5
+ * Describes the connection of the bot with a business account.
6
+ */
7
+ class BusinessConnection {
8
+ raw;
9
+ _peers;
10
+ constructor(raw, _peers) {
11
+ this.raw = raw;
12
+ this._peers = _peers;
13
+ }
14
+ /** Whether the connection was removed by the user */
15
+ get isRemoved() {
16
+ return this.raw.disabled;
17
+ }
18
+ /** ID of the connection */
19
+ get id() {
20
+ return this.raw.connectionId;
21
+ }
22
+ /** Datacenter ID of the connected user */
23
+ get dcId() {
24
+ return this.raw.dcId;
25
+ }
26
+ /** Date when the connection was created */
27
+ get date() {
28
+ return new Date(this.raw.date * 1000);
29
+ }
30
+ /** Whether the bot can reply on behalf of the user */
31
+ get canReply() {
32
+ return this.raw.canReply;
33
+ }
34
+ /** Business account user that created the business connection */
35
+ get user() {
36
+ return new User(this._peers.user(this.raw.userId));
37
+ }
38
+ }
39
+ const BusinessConnection$1 = /*#__PURE__*/makeInspectable(BusinessConnection, );
40
+ const BusinessConnection$2 = /*#__PURE__*/memoizeGetters(BusinessConnection$1, ['user']);
41
+ //# sourceMappingURL=business-connection.js.map
42
+ export { BusinessConnection$2 as BusinessConnection }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business-connection.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/premium/business-connection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAEvC;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAEd;IACA;IAFb,YACa,GAAiC,EACjC,MAAkB;QADlB,QAAG,GAAH,GAAG,CAA8B;QACjC,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ,qDAAqD;IACrD,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,QAAS,CAAA;IAC7B,CAAC;IAED,2BAA2B;IAC3B,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAA;IAChC,CAAC;IAED,0CAA0C;IAC1C,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;IACxB,CAAC;IAED,2CAA2C;IAC3C,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACzC,CAAC;IAED,sDAAsD;IACtD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,QAAS,CAAA;IAC7B,CAAC;IAED,iEAAiE;IACjE,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IACtD,CAAC;CACJ;AAED,eAAe,CAAC,kBAAkB,CAAC,CAAA;AACnC,cAAc,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { PeersIndex } from '../peers/peers-index.js'\nimport { User } from '../peers/user.js'\n\n/**\n * Describes the connection of the bot with a business account.\n */\nexport class BusinessConnection {\n constructor(\n readonly raw: tl.TypeBotBusinessConnection,\n readonly _peers: PeersIndex,\n ) {}\n\n /** Whether the connection was removed by the user */\n get isRemoved(): boolean {\n return this.raw.disabled!\n }\n\n /** ID of the connection */\n get id(): string {\n return this.raw.connectionId\n }\n\n /** Datacenter ID of the connected user */\n get dcId(): number {\n return this.raw.dcId\n }\n\n /** Date when the connection was created */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /** Whether the bot can reply on behalf of the user */\n get canReply(): boolean {\n return this.raw.canReply!\n }\n\n /** Business account user that created the business connection */\n get user(): User {\n return new User(this._peers.user(this.raw.userId))\n }\n}\n\nmakeInspectable(BusinessConnection)\nmemoizeGetters(BusinessConnection, ['user'])\n"]}
@@ -0,0 +1,22 @@
1
+ import { tl } from '@mtcute/tl';
2
+ import { Sticker } from '../media/sticker.js';
3
+ /**
4
+ * Information about a "business intro" – text that is displayed
5
+ * when a user opens a chat with a business account for the first time.
6
+ */
7
+ export declare class BusinessIntro {
8
+ readonly raw: tl.RawBusinessIntro;
9
+ constructor(raw: tl.RawBusinessIntro);
10
+ /**
11
+ * Title of the intro.
12
+ */
13
+ get title(): string;
14
+ /**
15
+ * Description of the intro.
16
+ */
17
+ get description(): string;
18
+ /**
19
+ * Sticker of the intro.
20
+ */
21
+ get sticker(): Sticker | null;
22
+ }
@@ -0,0 +1,40 @@
1
+ import { makeInspectable } from '../../utils/inspectable.js';
2
+ import { memoizeGetters } from '../../utils/memoize.js';
3
+ import { parseDocument } from '../media/document-utils.js';
4
+ /**
5
+ * Information about a "business intro" – text that is displayed
6
+ * when a user opens a chat with a business account for the first time.
7
+ */
8
+ class BusinessIntro {
9
+ raw;
10
+ constructor(raw) {
11
+ this.raw = raw;
12
+ }
13
+ /**
14
+ * Title of the intro.
15
+ */
16
+ get title() {
17
+ return this.raw.title;
18
+ }
19
+ /**
20
+ * Description of the intro.
21
+ */
22
+ get description() {
23
+ return this.raw.description;
24
+ }
25
+ /**
26
+ * Sticker of the intro.
27
+ */
28
+ get sticker() {
29
+ if (!this.raw.sticker || this.raw.sticker._ === 'documentEmpty')
30
+ return null;
31
+ const doc = parseDocument(this.raw.sticker);
32
+ if (doc.type !== 'sticker')
33
+ return null;
34
+ return doc;
35
+ }
36
+ }
37
+ const BusinessIntro$1 = /*#__PURE__*/makeInspectable(BusinessIntro, );
38
+ const BusinessIntro$2 = /*#__PURE__*/memoizeGetters(BusinessIntro$1, ['sticker']);
39
+ //# sourceMappingURL=business-intro.js.map
40
+ export { BusinessIntro$2 as BusinessIntro }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business-intro.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/premium/business-intro.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG1D;;;GAGG;AACH,MAAM,OAAO,aAAa;IACD;IAArB,YAAqB,GAAwB;QAAxB,QAAG,GAAH,GAAG,CAAqB;IAAG,CAAC;IAEjD;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,eAAe;YAAE,OAAO,IAAI,CAAA;QAE5E,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAA;QAEvC,OAAO,GAAG,CAAA;IACd,CAAC;CACJ;AAED,eAAe,CAAC,aAAa,CAAC,CAAA;AAC9B,cAAc,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { parseDocument } from '../media/document-utils.js'\nimport { Sticker } from '../media/sticker.js'\n\n/**\n * Information about a \"business intro\" – text that is displayed\n * when a user opens a chat with a business account for the first time.\n */\nexport class BusinessIntro {\n constructor(readonly raw: tl.RawBusinessIntro) {}\n\n /**\n * Title of the intro.\n */\n get title(): string {\n return this.raw.title\n }\n\n /**\n * Description of the intro.\n */\n get description(): string {\n return this.raw.description\n }\n\n /**\n * Sticker of the intro.\n */\n get sticker(): Sticker | null {\n if (!this.raw.sticker || this.raw.sticker._ === 'documentEmpty') return null\n\n const doc = parseDocument(this.raw.sticker)\n if (doc.type !== 'sticker') return null\n\n return doc\n }\n}\n\nmakeInspectable(BusinessIntro)\nmemoizeGetters(BusinessIntro, ['sticker'])\n"]}
@@ -0,0 +1,10 @@
1
+ import { tl } from '@mtcute/tl';
2
+ import { Location } from '../media/location.js';
3
+ /** Location of a business */
4
+ export declare class BusinessLocation {
5
+ readonly raw: tl.RawBusinessLocation;
6
+ constructor(raw: tl.RawBusinessLocation);
7
+ /** Address of the business */
8
+ get address(): string;
9
+ get location(): Location | null;
10
+ }
@@ -0,0 +1,23 @@
1
+ import { makeInspectable } from '../../utils/inspectable.js';
2
+ import { memoizeGetters } from '../../utils/memoize.js';
3
+ import { Location } from '../media/location.js';
4
+ /** Location of a business */
5
+ class BusinessLocation {
6
+ raw;
7
+ constructor(raw) {
8
+ this.raw = raw;
9
+ }
10
+ /** Address of the business */
11
+ get address() {
12
+ return this.raw.address;
13
+ }
14
+ get location() {
15
+ if (!this.raw.geoPoint || this.raw.geoPoint._ === 'geoPointEmpty')
16
+ return null;
17
+ return new Location(this.raw.geoPoint);
18
+ }
19
+ }
20
+ const BusinessLocation$1 = /*#__PURE__*/makeInspectable(BusinessLocation, );
21
+ const BusinessLocation$2 = /*#__PURE__*/memoizeGetters(BusinessLocation$1, ['location']);
22
+ //# sourceMappingURL=business-location.js.map
23
+ export { BusinessLocation$2 as BusinessLocation }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business-location.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/premium/business-location.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C,6BAA6B;AAC7B,MAAM,OAAO,gBAAgB;IACJ;IAArB,YAAqB,GAA2B;QAA3B,QAAG,GAAH,GAAG,CAAwB;IAAG,CAAC;IAEpD,8BAA8B;IAC9B,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED,IAAI,QAAQ;QACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,eAAe;YAAE,OAAO,IAAI,CAAA;QAE9E,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC1C,CAAC;CACJ;AAED,eAAe,CAAC,gBAAgB,CAAC,CAAA;AACjC,cAAc,CAAC,gBAAgB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { Location } from '../media/location.js'\n\n/** Location of a business */\nexport class BusinessLocation {\n constructor(readonly raw: tl.RawBusinessLocation) {}\n\n /** Address of the business */\n get address(): string {\n return this.raw.address\n }\n\n get location(): Location | null {\n if (!this.raw.geoPoint || this.raw.geoPoint._ === 'geoPointEmpty') return null\n\n return new Location(this.raw.geoPoint)\n }\n}\n\nmakeInspectable(BusinessLocation)\nmemoizeGetters(BusinessLocation, ['location'])\n"]}
@@ -0,0 +1,42 @@
1
+ import { tl } from '@mtcute/tl';
2
+ export interface BusinessWorkHoursInterval {
3
+ /** Start hour of the interval (0-23) */
4
+ readonly startHour: number;
5
+ /** Start minute of the interval (0-59) */
6
+ readonly startMinute: number;
7
+ /** End hour of the interval (0-23) */
8
+ readonly endHour: number;
9
+ /** End minute of the interval (0-59) */
10
+ readonly endMinute: number;
11
+ }
12
+ export interface BusinessWorkHoursDay {
13
+ /** Day of the week, 0-6, where 0 is Monday and 6 is Sunday */
14
+ readonly day: number;
15
+ /** Whether this day is open 24 hours */
16
+ readonly is24h: boolean;
17
+ /** Open intervals for this day */
18
+ readonly intervals: BusinessWorkHoursInterval[];
19
+ }
20
+ export declare function businessWorkHoursDaysToRaw(day: ReadonlyArray<BusinessWorkHoursDay>): tl.TypeBusinessWeeklyOpen[];
21
+ /**
22
+ * Information about business work hours.
23
+ */
24
+ export declare class BusinessWorkHours {
25
+ readonly raw: tl.RawBusinessWorkHours;
26
+ constructor(raw: tl.RawBusinessWorkHours);
27
+ /** Whether the business is open right now */
28
+ get isOpenNow(): boolean;
29
+ /**
30
+ * Identifier of the time zone in which the {@link hours} are defined,
31
+ * in the IANA format.
32
+ */
33
+ get timezoneId(): string;
34
+ /** Raw "open" intervals */
35
+ get intervals(): tl.TypeBusinessWeeklyOpen[];
36
+ /**
37
+ * Parsed business hours intervals per week day.
38
+ *
39
+ * @returns Array of 7 elements, each representing a day of the week (starting from Monday = 0)
40
+ */
41
+ get days(): ReadonlyArray<BusinessWorkHoursDay>;
42
+ }
@@ -0,0 +1,137 @@
1
+ import { MtArgumentError } from '../../../types/errors.js';
2
+ import { makeInspectable } from '../../utils/inspectable.js';
3
+ import { memoizeGetters } from '../../utils/memoize.js';
4
+ const DAYS_IN_WEEK = 7;
5
+ const MINUTES_IN_DAY = 24 * 60;
6
+ export function businessWorkHoursDaysToRaw(day) {
7
+ const res = [];
8
+ for (const d of day) {
9
+ const dayStart = d.day * MINUTES_IN_DAY;
10
+ if (d.is24h) {
11
+ res.push({
12
+ _: 'businessWeeklyOpen',
13
+ startMinute: dayStart,
14
+ endMinute: dayStart + MINUTES_IN_DAY,
15
+ });
16
+ continue;
17
+ }
18
+ for (const interval of d.intervals) {
19
+ const start = dayStart + interval.startHour * 60 + interval.startMinute;
20
+ const end = dayStart + interval.endHour * 60 + interval.endMinute;
21
+ if (start >= end) {
22
+ throw new MtArgumentError('startMinute >= endMinute');
23
+ }
24
+ res.push({
25
+ _: 'businessWeeklyOpen',
26
+ startMinute: start,
27
+ endMinute: end,
28
+ });
29
+ }
30
+ }
31
+ return res;
32
+ }
33
+ /**
34
+ * Information about business work hours.
35
+ */
36
+ class BusinessWorkHours {
37
+ raw;
38
+ constructor(raw) {
39
+ this.raw = raw;
40
+ }
41
+ /** Whether the business is open right now */
42
+ get isOpenNow() {
43
+ return this.raw.openNow;
44
+ }
45
+ /**
46
+ * Identifier of the time zone in which the {@link hours} are defined,
47
+ * in the IANA format.
48
+ */
49
+ get timezoneId() {
50
+ return this.raw.timezoneId;
51
+ }
52
+ /** Raw "open" intervals */
53
+ get intervals() {
54
+ return this.raw.weeklyOpen;
55
+ }
56
+ /**
57
+ * Parsed business hours intervals per week day.
58
+ *
59
+ * @returns Array of 7 elements, each representing a day of the week (starting from Monday = 0)
60
+ */
61
+ get days() {
62
+ const days = Array.from({ length: DAYS_IN_WEEK }, (_, i) => ({
63
+ day: i,
64
+ is24h: false,
65
+ intervals: [],
66
+ }));
67
+ // sort intervals by start time
68
+ const sorted = [...this.raw.weeklyOpen].sort((a, b) => a.startMinute - b.startMinute);
69
+ // merge overlapping/consecutive intervals
70
+ for (let i = 1; i < sorted.length; i++) {
71
+ const prev = sorted[i - 1];
72
+ const cur = sorted[i];
73
+ if (prev.endMinute >= cur.startMinute) {
74
+ prev.endMinute = cur.endMinute;
75
+ sorted.splice(i, 1);
76
+ i--;
77
+ }
78
+ }
79
+ const mondayPrepend = [];
80
+ // process intervals
81
+ for (const interval of sorted) {
82
+ if (interval.startMinute > interval.endMinute) {
83
+ throw new MtArgumentError('startMinute is greater than endMinute');
84
+ }
85
+ const startDay = Math.floor(interval.startMinute / MINUTES_IN_DAY);
86
+ const endDay = Math.floor(interval.endMinute / MINUTES_IN_DAY);
87
+ if (endDay > DAYS_IN_WEEK + 1) {
88
+ throw new MtArgumentError('interval spans more than a week');
89
+ }
90
+ for (let day = startDay, dayStart = startDay * MINUTES_IN_DAY; day <= endDay; day++, dayStart += MINUTES_IN_DAY) {
91
+ const startWithin = Math.max(interval.startMinute, dayStart) - dayStart;
92
+ const endWithin = Math.min(interval.endMinute, dayStart + MINUTES_IN_DAY) - dayStart;
93
+ const startHour = Math.floor(startWithin / 60);
94
+ const startMinute = startWithin % 60;
95
+ const endHour = Math.floor(endWithin / 60);
96
+ const endMinute = endWithin % 60;
97
+ if (startHour === 0 && startMinute === 0 && endHour === 0 && endMinute === 0) {
98
+ continue;
99
+ }
100
+ const obj = {
101
+ startHour,
102
+ startMinute,
103
+ endHour,
104
+ endMinute,
105
+ };
106
+ if (day === DAYS_IN_WEEK) {
107
+ // prepend to Monday
108
+ mondayPrepend.push(obj);
109
+ }
110
+ else {
111
+ days[day].intervals.push(obj);
112
+ }
113
+ }
114
+ }
115
+ if (mondayPrepend.length > 0) {
116
+ // we do this like this to keep everything sorted
117
+ days[0].intervals.unshift(...mondayPrepend);
118
+ }
119
+ // set up 24h days
120
+ for (const day of days) {
121
+ if (day.intervals.length !== 1)
122
+ continue;
123
+ const interval = day.intervals[0];
124
+ if (interval.startHour === 0 &&
125
+ interval.startMinute === 0 &&
126
+ ((interval.endHour === 24 && interval.endMinute === 0) ||
127
+ (interval.endHour === 23 && interval.endMinute === 59))) {
128
+ day.is24h = true;
129
+ }
130
+ }
131
+ return days;
132
+ }
133
+ }
134
+ const BusinessWorkHours$1 = /*#__PURE__*/makeInspectable(BusinessWorkHours, undefined, ['intervals']);
135
+ const BusinessWorkHours$2 = /*#__PURE__*/memoizeGetters(BusinessWorkHours$1, ['days']);
136
+ //# sourceMappingURL=business-work-hours.js.map
137
+ export { BusinessWorkHours$2 as BusinessWorkHours }