@jeongsu816/matrix-bot-sdk 0.0.0-stage → 0.8.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 (377) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +50 -2
  3. package/lib/AdminApis.d.ts +52 -0
  4. package/lib/AdminApis.js +29 -0
  5. package/lib/AdminApis.js.map +1 -0
  6. package/lib/DMs.d.ts +48 -0
  7. package/lib/DMs.js +160 -0
  8. package/lib/DMs.js.map +1 -0
  9. package/lib/IFilter.d.ts +7 -0
  10. package/lib/IFilter.js +3 -0
  11. package/lib/IFilter.js.map +1 -0
  12. package/lib/MatrixAuth.d.ts +45 -0
  13. package/lib/MatrixAuth.js +125 -0
  14. package/lib/MatrixAuth.js.map +1 -0
  15. package/lib/MatrixClient.d.ts +834 -0
  16. package/lib/MatrixClient.js +2268 -0
  17. package/lib/MatrixClient.js.map +1 -0
  18. package/lib/PantalaimonClient.d.ts +42 -0
  19. package/lib/PantalaimonClient.js +44 -0
  20. package/lib/PantalaimonClient.js.map +1 -0
  21. package/lib/SynapseAdminApis.d.ts +350 -0
  22. package/lib/SynapseAdminApis.js +244 -0
  23. package/lib/SynapseAdminApis.js.map +1 -0
  24. package/lib/SynchronousMatrixClient.d.ts +82 -0
  25. package/lib/SynchronousMatrixClient.js +130 -0
  26. package/lib/SynchronousMatrixClient.js.map +1 -0
  27. package/lib/UnstableApis.d.ts +43 -0
  28. package/lib/UnstableApis.js +74 -0
  29. package/lib/UnstableApis.js.map +1 -0
  30. package/lib/appservice/Appservice.d.ts +328 -0
  31. package/lib/appservice/Appservice.js +803 -0
  32. package/lib/appservice/Appservice.js.map +1 -0
  33. package/lib/appservice/Intent.d.ts +113 -0
  34. package/lib/appservice/Intent.js +363 -0
  35. package/lib/appservice/Intent.js.map +1 -0
  36. package/lib/appservice/MatrixBridge.d.ts +85 -0
  37. package/lib/appservice/MatrixBridge.js +111 -0
  38. package/lib/appservice/MatrixBridge.js.map +1 -0
  39. package/lib/appservice/UnstableAppserviceApis.d.ts +41 -0
  40. package/lib/appservice/UnstableAppserviceApis.js +62 -0
  41. package/lib/appservice/UnstableAppserviceApis.js.map +1 -0
  42. package/lib/appservice/http_responses.d.ts +77 -0
  43. package/lib/appservice/http_responses.js +3 -0
  44. package/lib/appservice/http_responses.js.map +1 -0
  45. package/lib/b64.d.ts +42 -0
  46. package/lib/b64.js +68 -0
  47. package/lib/b64.js.map +1 -0
  48. package/lib/e2ee/CrossSigningBootstrap.d.ts +73 -0
  49. package/lib/e2ee/CrossSigningBootstrap.js +86 -0
  50. package/lib/e2ee/CrossSigningBootstrap.js.map +1 -0
  51. package/lib/e2ee/CryptoClient.d.ts +163 -0
  52. package/lib/e2ee/CryptoClient.js +382 -0
  53. package/lib/e2ee/CryptoClient.js.map +1 -0
  54. package/lib/e2ee/ICryptoRoomInformation.d.ts +8 -0
  55. package/lib/e2ee/ICryptoRoomInformation.js +3 -0
  56. package/lib/e2ee/ICryptoRoomInformation.js.map +1 -0
  57. package/lib/e2ee/RoomTracker.d.ts +41 -0
  58. package/lib/e2ee/RoomTracker.js +96 -0
  59. package/lib/e2ee/RoomTracker.js.map +1 -0
  60. package/lib/e2ee/RustEngine.d.ts +149 -0
  61. package/lib/e2ee/RustEngine.js +467 -0
  62. package/lib/e2ee/RustEngine.js.map +1 -0
  63. package/lib/e2ee/decorators.d.ts +10 -0
  64. package/lib/e2ee/decorators.js +37 -0
  65. package/lib/e2ee/decorators.js.map +1 -0
  66. package/lib/helpers/MatrixEntity.d.ts +37 -0
  67. package/lib/helpers/MatrixEntity.js +67 -0
  68. package/lib/helpers/MatrixEntity.js.map +1 -0
  69. package/lib/helpers/MatrixGlob.d.ts +22 -0
  70. package/lib/helpers/MatrixGlob.js +35 -0
  71. package/lib/helpers/MatrixGlob.js.map +1 -0
  72. package/lib/helpers/MentionPill.d.ts +40 -0
  73. package/lib/helpers/MentionPill.js +91 -0
  74. package/lib/helpers/MentionPill.js.map +1 -0
  75. package/lib/helpers/Permalinks.d.ts +58 -0
  76. package/lib/helpers/Permalinks.js +73 -0
  77. package/lib/helpers/Permalinks.js.map +1 -0
  78. package/lib/helpers/ProfileCache.d.ts +48 -0
  79. package/lib/helpers/ProfileCache.js +114 -0
  80. package/lib/helpers/ProfileCache.js.map +1 -0
  81. package/lib/helpers/RichReply.d.ts +17 -0
  82. package/lib/helpers/RichReply.js +47 -0
  83. package/lib/helpers/RichReply.js.map +1 -0
  84. package/lib/helpers/UnpaddedBase64.d.ts +31 -0
  85. package/lib/helpers/UnpaddedBase64.js +45 -0
  86. package/lib/helpers/UnpaddedBase64.js.map +1 -0
  87. package/lib/http.d.ts +17 -0
  88. package/lib/http.js +147 -0
  89. package/lib/http.js.map +1 -0
  90. package/lib/identity/IdentityClient.d.ts +93 -0
  91. package/lib/identity/IdentityClient.js +248 -0
  92. package/lib/identity/IdentityClient.js.map +1 -0
  93. package/lib/index.d.ts +91 -0
  94. package/lib/index.js +125 -0
  95. package/lib/index.js.map +1 -0
  96. package/lib/logging/ConsoleLogger.d.ts +12 -0
  97. package/lib/logging/ConsoleLogger.js +28 -0
  98. package/lib/logging/ConsoleLogger.js.map +1 -0
  99. package/lib/logging/ILogger.d.ts +36 -0
  100. package/lib/logging/ILogger.js +3 -0
  101. package/lib/logging/ILogger.js.map +1 -0
  102. package/lib/logging/LogService.d.ts +100 -0
  103. package/lib/logging/LogService.js +169 -0
  104. package/lib/logging/LogService.js.map +1 -0
  105. package/lib/logging/RichConsoleLogger.d.ts +20 -0
  106. package/lib/logging/RichConsoleLogger.js +41 -0
  107. package/lib/logging/RichConsoleLogger.js.map +1 -0
  108. package/lib/metrics/IMetricListener.d.ts +52 -0
  109. package/lib/metrics/IMetricListener.js +3 -0
  110. package/lib/metrics/IMetricListener.js.map +1 -0
  111. package/lib/metrics/Metrics.d.ts +66 -0
  112. package/lib/metrics/Metrics.js +128 -0
  113. package/lib/metrics/Metrics.js.map +1 -0
  114. package/lib/metrics/contexts.d.ts +51 -0
  115. package/lib/metrics/contexts.js +3 -0
  116. package/lib/metrics/contexts.js.map +1 -0
  117. package/lib/metrics/decorators.d.ts +15 -0
  118. package/lib/metrics/decorators.js +92 -0
  119. package/lib/metrics/decorators.js.map +1 -0
  120. package/lib/metrics/names.d.ts +45 -0
  121. package/lib/metrics/names.js +49 -0
  122. package/lib/metrics/names.js.map +1 -0
  123. package/lib/mixins/AutojoinRoomsMixin.d.ts +10 -0
  124. package/lib/mixins/AutojoinRoomsMixin.js +25 -0
  125. package/lib/mixins/AutojoinRoomsMixin.js.map +1 -0
  126. package/lib/mixins/AutojoinUpgradedRoomsMixin.d.ts +10 -0
  127. package/lib/mixins/AutojoinUpgradedRoomsMixin.js +40 -0
  128. package/lib/mixins/AutojoinUpgradedRoomsMixin.js.map +1 -0
  129. package/lib/models/Account.d.ts +8 -0
  130. package/lib/models/Account.js +3 -0
  131. package/lib/models/Account.js.map +1 -0
  132. package/lib/models/CreateRoom.d.ts +125 -0
  133. package/lib/models/CreateRoom.js +3 -0
  134. package/lib/models/CreateRoom.js.map +1 -0
  135. package/lib/models/Crypto.d.ts +167 -0
  136. package/lib/models/Crypto.js +31 -0
  137. package/lib/models/Crypto.js.map +1 -0
  138. package/lib/models/EventContext.d.ts +19 -0
  139. package/lib/models/EventContext.js +3 -0
  140. package/lib/models/EventContext.js.map +1 -0
  141. package/lib/models/IdentityServerModels.d.ts +20 -0
  142. package/lib/models/IdentityServerModels.js +3 -0
  143. package/lib/models/IdentityServerModels.js.map +1 -0
  144. package/lib/models/MSC2176.d.ts +42 -0
  145. package/lib/models/MSC2176.js +3 -0
  146. package/lib/models/MSC2176.js.map +1 -0
  147. package/lib/models/MatrixError.d.ts +38 -0
  148. package/lib/models/MatrixError.js +30 -0
  149. package/lib/models/MatrixError.js.map +1 -0
  150. package/lib/models/MatrixProfile.d.ts +43 -0
  151. package/lib/models/MatrixProfile.js +43 -0
  152. package/lib/models/MatrixProfile.js.map +1 -0
  153. package/lib/models/OpenIDConnect.d.ts +10 -0
  154. package/lib/models/OpenIDConnect.js +3 -0
  155. package/lib/models/OpenIDConnect.js.map +1 -0
  156. package/lib/models/Policies.d.ts +25 -0
  157. package/lib/models/Policies.js +3 -0
  158. package/lib/models/Policies.js.map +1 -0
  159. package/lib/models/PowerLevelAction.d.ts +27 -0
  160. package/lib/models/PowerLevelAction.js +32 -0
  161. package/lib/models/PowerLevelAction.js.map +1 -0
  162. package/lib/models/PowerLevelBounds.d.ts +15 -0
  163. package/lib/models/PowerLevelBounds.js +3 -0
  164. package/lib/models/PowerLevelBounds.js.map +1 -0
  165. package/lib/models/Presence.d.ts +25 -0
  166. package/lib/models/Presence.js +38 -0
  167. package/lib/models/Presence.js.map +1 -0
  168. package/lib/models/ServerVersions.d.ts +8 -0
  169. package/lib/models/ServerVersions.js +3 -0
  170. package/lib/models/ServerVersions.js.map +1 -0
  171. package/lib/models/Spaces.d.ts +116 -0
  172. package/lib/models/Spaces.js +91 -0
  173. package/lib/models/Spaces.js.map +1 -0
  174. package/lib/models/Threepid.d.ts +8 -0
  175. package/lib/models/Threepid.js +3 -0
  176. package/lib/models/Threepid.js.map +1 -0
  177. package/lib/models/events/AliasesEvent.d.ts +27 -0
  178. package/lib/models/events/AliasesEvent.js +27 -0
  179. package/lib/models/events/AliasesEvent.js.map +1 -0
  180. package/lib/models/events/CanonicalAliasEvent.d.ts +23 -0
  181. package/lib/models/events/CanonicalAliasEvent.js +21 -0
  182. package/lib/models/events/CanonicalAliasEvent.js.map +1 -0
  183. package/lib/models/events/CreateEvent.d.ts +63 -0
  184. package/lib/models/events/CreateEvent.js +33 -0
  185. package/lib/models/events/CreateEvent.js.map +1 -0
  186. package/lib/models/events/EncryptedRoomEvent.d.ts +42 -0
  187. package/lib/models/events/EncryptedRoomEvent.js +28 -0
  188. package/lib/models/events/EncryptedRoomEvent.js.map +1 -0
  189. package/lib/models/events/EncryptionEvent.d.ts +47 -0
  190. package/lib/models/events/EncryptionEvent.js +42 -0
  191. package/lib/models/events/EncryptionEvent.js.map +1 -0
  192. package/lib/models/events/Event.d.ts +26 -0
  193. package/lib/models/events/Event.js +40 -0
  194. package/lib/models/events/Event.js.map +1 -0
  195. package/lib/models/events/EventKind.d.ts +15 -0
  196. package/lib/models/events/EventKind.js +20 -0
  197. package/lib/models/events/EventKind.js.map +1 -0
  198. package/lib/models/events/InvalidEventError.d.ts +14 -0
  199. package/lib/models/events/InvalidEventError.js +24 -0
  200. package/lib/models/events/InvalidEventError.js.map +1 -0
  201. package/lib/models/events/JoinRulesEvent.d.ts +29 -0
  202. package/lib/models/events/JoinRulesEvent.js +21 -0
  203. package/lib/models/events/JoinRulesEvent.js.map +1 -0
  204. package/lib/models/events/MembershipEvent.d.ts +54 -0
  205. package/lib/models/events/MembershipEvent.js +49 -0
  206. package/lib/models/events/MembershipEvent.js.map +1 -0
  207. package/lib/models/events/MessageEvent.d.ts +233 -0
  208. package/lib/models/events/MessageEvent.js +49 -0
  209. package/lib/models/events/MessageEvent.js.map +1 -0
  210. package/lib/models/events/PinnedEventsEvent.d.ts +23 -0
  211. package/lib/models/events/PinnedEventsEvent.js +21 -0
  212. package/lib/models/events/PinnedEventsEvent.js.map +1 -0
  213. package/lib/models/events/PowerLevelsEvent.d.ts +96 -0
  214. package/lib/models/events/PowerLevelsEvent.js +70 -0
  215. package/lib/models/events/PowerLevelsEvent.js.map +1 -0
  216. package/lib/models/events/PresenceEvent.d.ts +56 -0
  217. package/lib/models/events/PresenceEvent.js +21 -0
  218. package/lib/models/events/PresenceEvent.js.map +1 -0
  219. package/lib/models/events/RedactionEvent.d.ts +28 -0
  220. package/lib/models/events/RedactionEvent.js +36 -0
  221. package/lib/models/events/RedactionEvent.js.map +1 -0
  222. package/lib/models/events/RoomAvatarEvent.d.ts +28 -0
  223. package/lib/models/events/RoomAvatarEvent.js +21 -0
  224. package/lib/models/events/RoomAvatarEvent.js.map +1 -0
  225. package/lib/models/events/RoomEvent.d.ts +58 -0
  226. package/lib/models/events/RoomEvent.js +57 -0
  227. package/lib/models/events/RoomEvent.js.map +1 -0
  228. package/lib/models/events/RoomNameEvent.d.ts +20 -0
  229. package/lib/models/events/RoomNameEvent.js +21 -0
  230. package/lib/models/events/RoomNameEvent.js.map +1 -0
  231. package/lib/models/events/RoomTopicEvent.d.ts +20 -0
  232. package/lib/models/events/RoomTopicEvent.js +21 -0
  233. package/lib/models/events/RoomTopicEvent.js.map +1 -0
  234. package/lib/models/events/SpaceChildEvent.d.ts +53 -0
  235. package/lib/models/events/SpaceChildEvent.js +49 -0
  236. package/lib/models/events/SpaceChildEvent.js.map +1 -0
  237. package/lib/models/events/converter.d.ts +8 -0
  238. package/lib/models/events/converter.js +50 -0
  239. package/lib/models/events/converter.js.map +1 -0
  240. package/lib/models/unstable/MediaInfo.d.ts +16 -0
  241. package/lib/models/unstable/MediaInfo.js +3 -0
  242. package/lib/models/unstable/MediaInfo.js.map +1 -0
  243. package/lib/preprocessors/IPreprocessor.d.ts +22 -0
  244. package/lib/preprocessors/IPreprocessor.js +3 -0
  245. package/lib/preprocessors/IPreprocessor.js.map +1 -0
  246. package/lib/preprocessors/RichRepliesPreprocessor.d.ts +67 -0
  247. package/lib/preprocessors/RichRepliesPreprocessor.js +112 -0
  248. package/lib/preprocessors/RichRepliesPreprocessor.js.map +1 -0
  249. package/lib/request.d.ts +13 -0
  250. package/lib/request.js +23 -0
  251. package/lib/request.js.map +1 -0
  252. package/lib/simple-validation.d.ts +10 -0
  253. package/lib/simple-validation.js +30 -0
  254. package/lib/simple-validation.js.map +1 -0
  255. package/lib/storage/IAppserviceStorageProvider.d.ts +48 -0
  256. package/lib/storage/IAppserviceStorageProvider.js +3 -0
  257. package/lib/storage/IAppserviceStorageProvider.js.map +1 -0
  258. package/lib/storage/ICryptoStorageProvider.d.ts +32 -0
  259. package/lib/storage/ICryptoStorageProvider.js +3 -0
  260. package/lib/storage/ICryptoStorageProvider.js.map +1 -0
  261. package/lib/storage/IStorageProvider.d.ts +47 -0
  262. package/lib/storage/IStorageProvider.js +3 -0
  263. package/lib/storage/IStorageProvider.js.map +1 -0
  264. package/lib/storage/MemoryStorageProvider.d.ts +26 -0
  265. package/lib/storage/MemoryStorageProvider.js +55 -0
  266. package/lib/storage/MemoryStorageProvider.js.map +1 -0
  267. package/lib/storage/RustSdkCryptoStorageProvider.d.ts +38 -0
  268. package/lib/storage/RustSdkCryptoStorageProvider.js +69 -0
  269. package/lib/storage/RustSdkCryptoStorageProvider.js.map +1 -0
  270. package/lib/storage/SimpleFsStorageProvider.d.ts +31 -0
  271. package/lib/storage/SimpleFsStorageProvider.js +122 -0
  272. package/lib/storage/SimpleFsStorageProvider.js.map +1 -0
  273. package/lib/storage/SimplePostgresStorageProvider.d.ts +32 -0
  274. package/lib/storage/SimplePostgresStorageProvider.js +148 -0
  275. package/lib/storage/SimplePostgresStorageProvider.js.map +1 -0
  276. package/lib/strategies/AppserviceJoinRoomStrategy.d.ts +14 -0
  277. package/lib/strategies/AppserviceJoinRoomStrategy.js +54 -0
  278. package/lib/strategies/AppserviceJoinRoomStrategy.js.map +1 -0
  279. package/lib/strategies/JoinRoomStrategy.d.ts +11 -0
  280. package/lib/strategies/JoinRoomStrategy.js +44 -0
  281. package/lib/strategies/JoinRoomStrategy.js.map +1 -0
  282. package/package.json +136 -4
  283. package/src/AdminApis.ts +60 -0
  284. package/src/DMs.ts +164 -0
  285. package/src/IFilter.ts +7 -0
  286. package/src/MatrixAuth.ts +129 -0
  287. package/src/MatrixClient.ts +2046 -0
  288. package/src/PantalaimonClient.ts +62 -0
  289. package/src/SynapseAdminApis.ts +482 -0
  290. package/src/SynchronousMatrixClient.ts +129 -0
  291. package/src/UnstableApis.ts +75 -0
  292. package/src/appservice/Appservice.ts +1089 -0
  293. package/src/appservice/Intent.ts +342 -0
  294. package/src/appservice/MatrixBridge.ts +139 -0
  295. package/src/appservice/UnstableAppserviceApis.ts +63 -0
  296. package/src/appservice/http_responses.ts +77 -0
  297. package/src/b64.ts +63 -0
  298. package/src/e2ee/CrossSigningBootstrap.ts +141 -0
  299. package/src/e2ee/CryptoClient.ts +378 -0
  300. package/src/e2ee/ICryptoRoomInformation.ts +9 -0
  301. package/src/e2ee/RoomTracker.ts +99 -0
  302. package/src/e2ee/RustEngine.ts +580 -0
  303. package/src/e2ee/decorators.ts +38 -0
  304. package/src/helpers/MatrixEntity.ts +65 -0
  305. package/src/helpers/MatrixGlob.ts +38 -0
  306. package/src/helpers/MentionPill.ts +95 -0
  307. package/src/helpers/Permalinks.ts +101 -0
  308. package/src/helpers/ProfileCache.ts +119 -0
  309. package/src/helpers/RichReply.ts +46 -0
  310. package/src/helpers/UnpaddedBase64.ts +44 -0
  311. package/src/http.ts +166 -0
  312. package/src/identity/IdentityClient.ts +225 -0
  313. package/src/index.ts +125 -0
  314. package/src/logging/ConsoleLogger.ts +31 -0
  315. package/src/logging/ILogger.ts +40 -0
  316. package/src/logging/LogService.ts +167 -0
  317. package/src/logging/RichConsoleLogger.ts +70 -0
  318. package/src/metrics/IMetricListener.ts +57 -0
  319. package/src/metrics/Metrics.ts +134 -0
  320. package/src/metrics/contexts.ts +56 -0
  321. package/src/metrics/decorators.ts +94 -0
  322. package/src/metrics/names.ts +53 -0
  323. package/src/mixins/AutojoinRoomsMixin.ts +24 -0
  324. package/src/mixins/AutojoinUpgradedRoomsMixin.ts +37 -0
  325. package/src/models/Account.ts +8 -0
  326. package/src/models/CreateRoom.ts +144 -0
  327. package/src/models/Crypto.ts +188 -0
  328. package/src/models/EventContext.ts +23 -0
  329. package/src/models/IdentityServerModels.ts +18 -0
  330. package/src/models/MSC2176.ts +47 -0
  331. package/src/models/MatrixError.ts +39 -0
  332. package/src/models/MatrixProfile.ts +55 -0
  333. package/src/models/OpenIDConnect.ts +10 -0
  334. package/src/models/Policies.ts +28 -0
  335. package/src/models/PowerLevelAction.ts +31 -0
  336. package/src/models/PowerLevelBounds.ts +16 -0
  337. package/src/models/Presence.ts +38 -0
  338. package/src/models/ServerVersions.ts +8 -0
  339. package/src/models/Spaces.ts +167 -0
  340. package/src/models/Threepid.ts +8 -0
  341. package/src/models/events/AliasesEvent.ts +37 -0
  342. package/src/models/events/CanonicalAliasEvent.ts +30 -0
  343. package/src/models/events/CreateEvent.ts +82 -0
  344. package/src/models/events/EncryptedRoomEvent.ts +58 -0
  345. package/src/models/events/EncryptionEvent.ts +63 -0
  346. package/src/models/events/Event.ts +38 -0
  347. package/src/models/events/EventKind.ts +16 -0
  348. package/src/models/events/InvalidEventError.ts +19 -0
  349. package/src/models/events/JoinRulesEvent.ts +37 -0
  350. package/src/models/events/MembershipEvent.ts +77 -0
  351. package/src/models/events/MessageEvent.ts +292 -0
  352. package/src/models/events/PinnedEventsEvent.ts +30 -0
  353. package/src/models/events/PowerLevelsEvent.ts +135 -0
  354. package/src/models/events/PresenceEvent.ts +69 -0
  355. package/src/models/events/RedactionEvent.ts +44 -0
  356. package/src/models/events/RoomAvatarEvent.ts +36 -0
  357. package/src/models/events/RoomEvent.ts +83 -0
  358. package/src/models/events/RoomNameEvent.ts +27 -0
  359. package/src/models/events/RoomTopicEvent.ts +27 -0
  360. package/src/models/events/SpaceChildEvent.ts +74 -0
  361. package/src/models/events/_MissingEvents.md +35 -0
  362. package/src/models/events/converter.ts +47 -0
  363. package/src/models/unstable/MediaInfo.ts +16 -0
  364. package/src/preprocessors/IPreprocessor.ts +24 -0
  365. package/src/preprocessors/RichRepliesPreprocessor.ts +159 -0
  366. package/src/request.ts +21 -0
  367. package/src/simple-validation.ts +30 -0
  368. package/src/storage/IAppserviceStorageProvider.ts +54 -0
  369. package/src/storage/ICryptoStorageProvider.ts +36 -0
  370. package/src/storage/IStorageProvider.ts +53 -0
  371. package/src/storage/MemoryStorageProvider.ts +65 -0
  372. package/src/storage/RustSdkCryptoStorageProvider.ts +81 -0
  373. package/src/storage/SimpleFsStorageProvider.ts +142 -0
  374. package/src/storage/SimplePostgresStorageProvider.ts +168 -0
  375. package/src/strategies/AppserviceJoinRoomStrategy.ts +47 -0
  376. package/src/strategies/JoinRoomStrategy.ts +45 -0
  377. package/tsconfig.json +22 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Appservice.js","sourceRoot":"","sources":["../../src/appservice/Appservice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ import { MatrixClient, Metrics } from "..";
2
+ import { Appservice, IAppserviceOptions } from "./Appservice";
3
+ import { UnstableAppserviceApis } from "./UnstableAppserviceApis";
4
+ /**
5
+ * An Intent is an intelligent client that tracks things like the user's membership
6
+ * in rooms to ensure the action being performed is possible. This is very similar
7
+ * to how Intents work in the matrix-js-sdk in that the Intent will ensure that the
8
+ * user is joined to the room before posting a message, for example.
9
+ * @category Application services
10
+ */
11
+ export declare class Intent {
12
+ private options;
13
+ private impersonateUserId;
14
+ private appservice;
15
+ /**
16
+ * The metrics instance for this intent. Note that this will not raise metrics
17
+ * for the underlying client - those will be available through this instance's
18
+ * parent (the appservice).
19
+ */
20
+ readonly metrics: Metrics;
21
+ private readonly storage;
22
+ private readonly cryptoStorage;
23
+ private client;
24
+ private unstableApisInstance;
25
+ private knownJoinedRooms;
26
+ private cryptoSetupPromise;
27
+ /**
28
+ * Creates a new intent. Intended to be created by application services.
29
+ * @param {IAppserviceOptions} options The options for the application service.
30
+ * @param {string} impersonateUserId The user ID to impersonate.
31
+ * @param {Appservice} appservice The application service itself.
32
+ */
33
+ constructor(options: IAppserviceOptions, impersonateUserId: string, appservice: Appservice);
34
+ private makeClient;
35
+ /**
36
+ * Gets the user ID this intent is for.
37
+ */
38
+ get userId(): string;
39
+ /**
40
+ * Gets the underlying MatrixClient that powers this Intent.
41
+ */
42
+ get underlyingClient(): MatrixClient;
43
+ /**
44
+ * Gets the unstable API access class. This is generally not recommended to be
45
+ * used by appservices.
46
+ * @return {UnstableAppserviceApis} The unstable API access class.
47
+ */
48
+ get unstableApis(): UnstableAppserviceApis;
49
+ /**
50
+ * Sets up crypto on the client if it hasn't already been set up.
51
+ * @returns {Promise<void>} Resolves when complete.
52
+ */
53
+ enableEncryption(): Promise<void>;
54
+ /**
55
+ * Gets the joined rooms for the intent. Note that by working around
56
+ * the intent to join rooms may yield inaccurate results.
57
+ * @returns {Promise<string[]>} Resolves to an array of room IDs where
58
+ * the intent is joined.
59
+ */
60
+ getJoinedRooms(): Promise<string[]>;
61
+ /**
62
+ * Leaves the given room.
63
+ * @param {string} roomId The room ID to leave
64
+ * @param {string=} reason Optional reason to be included as the reason for leaving the room.
65
+ * @returns {Promise<any>} Resolves when the room has been left.
66
+ */
67
+ leaveRoom(roomId: string, reason?: string): Promise<any>;
68
+ /**
69
+ * Joins the given room
70
+ * @param {string} roomIdOrAlias the room ID or alias to join
71
+ * @returns {Promise<string>} resolves to the joined room ID
72
+ */
73
+ joinRoom(roomIdOrAlias: string): Promise<string>;
74
+ /**
75
+ * Sends a text message to a room.
76
+ * @param {string} roomId The room ID to send text to.
77
+ * @param {string} body The message body to send.
78
+ * @param {"m.text" | "m.emote" | "m.notice"} msgtype The message type to send.
79
+ * @returns {Promise<string>} Resolves to the event ID of the sent message.
80
+ */
81
+ sendText(roomId: string, body: string, msgtype?: "m.text" | "m.emote" | "m.notice"): Promise<string>;
82
+ /**
83
+ * Sends an event to a room.
84
+ * @param {string} roomId The room ID to send the event to.
85
+ * @param {any} content The content of the event.
86
+ * @returns {Promise<string>} Resolves to the event ID of the sent event.
87
+ */
88
+ sendEvent(roomId: string, content: any): Promise<string>;
89
+ /**
90
+ * Ensures the user is registered and joined to the given room.
91
+ * @param {string} roomId The room ID to join
92
+ * @returns {Promise<any>} Resolves when complete
93
+ */
94
+ ensureRegisteredAndJoined(roomId: string): Promise<void>;
95
+ /**
96
+ * Ensures the user is joined to the given room
97
+ * @param {string} roomId The room ID to join
98
+ * @returns {Promise<any>} Resolves when complete
99
+ */
100
+ ensureJoined(roomId: string): Promise<string>;
101
+ /**
102
+ * Refreshes which rooms the user is joined to, potentially saving time on
103
+ * calls like ensureJoined()
104
+ * @returns {Promise<string[]>} Resolves to the joined room IDs for the user.
105
+ */
106
+ refreshJoinedRooms(): Promise<string[]>;
107
+ /**
108
+ * Ensures the user is registered
109
+ * @param deviceId An optional device ID to register with.
110
+ * @returns {Promise<any>} Resolves when complete
111
+ */
112
+ ensureRegistered(deviceId?: string): Promise<any>;
113
+ }
@@ -0,0 +1,363 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Intent = void 0;
13
+ const __1 = require("..");
14
+ // noinspection TypeScriptPreferShortImport
15
+ const decorators_1 = require("../metrics/decorators");
16
+ const UnstableAppserviceApis_1 = require("./UnstableAppserviceApis");
17
+ const MatrixError_1 = require("../models/MatrixError");
18
+ /**
19
+ * An Intent is an intelligent client that tracks things like the user's membership
20
+ * in rooms to ensure the action being performed is possible. This is very similar
21
+ * to how Intents work in the matrix-js-sdk in that the Intent will ensure that the
22
+ * user is joined to the room before posting a message, for example.
23
+ * @category Application services
24
+ */
25
+ class Intent {
26
+ /**
27
+ * Creates a new intent. Intended to be created by application services.
28
+ * @param {IAppserviceOptions} options The options for the application service.
29
+ * @param {string} impersonateUserId The user ID to impersonate.
30
+ * @param {Appservice} appservice The application service itself.
31
+ */
32
+ constructor(options, impersonateUserId, appservice) {
33
+ this.options = options;
34
+ this.impersonateUserId = impersonateUserId;
35
+ this.appservice = appservice;
36
+ this.knownJoinedRooms = [];
37
+ this.metrics = new __1.Metrics(appservice.metrics);
38
+ this.storage = options.storage;
39
+ this.cryptoStorage = options.cryptoStorage;
40
+ this.makeClient(false);
41
+ }
42
+ makeClient(withCrypto, accessToken) {
43
+ let cryptoStore;
44
+ const storage = this.storage?.storageForUser?.(this.userId);
45
+ if (withCrypto) {
46
+ cryptoStore = this.cryptoStorage?.storageForUser(this.userId);
47
+ if (!cryptoStore) {
48
+ throw new Error("Tried to set up client with crypto when not available");
49
+ }
50
+ if (!storage) {
51
+ throw new Error("Tried to set up client with crypto, but no persistent storage");
52
+ }
53
+ }
54
+ this.client = new __1.MatrixClient(this.options.homeserverUrl, accessToken ?? this.options.registration.as_token, storage, cryptoStore);
55
+ this.client.metrics = new __1.Metrics(this.appservice.metrics); // Metrics only go up by one parent
56
+ this.unstableApisInstance = new UnstableAppserviceApis_1.UnstableAppserviceApis(this.client);
57
+ if (this.impersonateUserId !== this.appservice.botUserId) {
58
+ this.client.impersonateUserId(this.impersonateUserId);
59
+ }
60
+ if (this.options.joinStrategy) {
61
+ this.client.setJoinStrategy(this.options.joinStrategy);
62
+ }
63
+ }
64
+ /**
65
+ * Gets the user ID this intent is for.
66
+ */
67
+ get userId() {
68
+ return this.impersonateUserId;
69
+ }
70
+ /**
71
+ * Gets the underlying MatrixClient that powers this Intent.
72
+ */
73
+ get underlyingClient() {
74
+ return this.client;
75
+ }
76
+ /**
77
+ * Gets the unstable API access class. This is generally not recommended to be
78
+ * used by appservices.
79
+ * @return {UnstableAppserviceApis} The unstable API access class.
80
+ */
81
+ get unstableApis() {
82
+ return this.unstableApisInstance;
83
+ }
84
+ /**
85
+ * Sets up crypto on the client if it hasn't already been set up.
86
+ * @returns {Promise<void>} Resolves when complete.
87
+ */
88
+ async enableEncryption() {
89
+ if (!this.cryptoSetupPromise) {
90
+ // eslint-disable-next-line no-async-promise-executor
91
+ this.cryptoSetupPromise = new Promise(async (resolve, reject) => {
92
+ try {
93
+ // Prepare a client first
94
+ await this.ensureRegistered();
95
+ const storage = this.storage?.storageForUser?.(this.userId);
96
+ this.client.impersonateUserId(this.userId); // make sure the devices call works
97
+ const cryptoStore = this.cryptoStorage?.storageForUser(this.userId);
98
+ if (!cryptoStore) {
99
+ // noinspection ExceptionCaughtLocallyJS
100
+ throw new Error("Failed to create crypto store");
101
+ }
102
+ // Try to impersonate a device ID
103
+ const ownDevices = await this.client.getOwnDevices();
104
+ let deviceId = await cryptoStore.getDeviceId();
105
+ if (!deviceId || !ownDevices.some(d => d.device_id === deviceId)) {
106
+ const deviceKeys = await this.client.getUserDevices([this.userId]);
107
+ const userDeviceKeys = deviceKeys.device_keys[this.userId];
108
+ if (userDeviceKeys) {
109
+ // We really should be validating signatures here, but we're actively looking
110
+ // for devices without keys to impersonate, so it should be fine. In theory,
111
+ // those devices won't even be present but we're cautious.
112
+ const devicesWithKeys = Array.from(Object.entries(userDeviceKeys))
113
+ .filter(d => d[0] === d[1].device_id && !!d[1].keys?.[`${__1.DeviceKeyAlgorithm.Curve25519}:${d[1].device_id}`])
114
+ .map(t => t[0]); // grab device ID from tuple
115
+ deviceId = ownDevices.find(d => !devicesWithKeys.includes(d.device_id))?.device_id;
116
+ }
117
+ }
118
+ let prepared = false;
119
+ if (deviceId) {
120
+ this.makeClient(true);
121
+ this.client.impersonateUserId(this.userId, deviceId);
122
+ // verify that the server supports impersonating the device
123
+ const respDeviceId = (await this.client.getWhoAmI()).device_id;
124
+ prepared = (respDeviceId === deviceId);
125
+ }
126
+ if (!prepared) {
127
+ // XXX: We work around servers that don't support device_id impersonation
128
+ const accessToken = await Promise.resolve(storage?.readValue("accessToken"));
129
+ if (!accessToken) {
130
+ const loginBody = {
131
+ type: "m.login.application_service",
132
+ identifier: {
133
+ type: "m.id.user",
134
+ user: this.userId,
135
+ },
136
+ };
137
+ const res = await this.client.doRequest("POST", "/_matrix/client/v3/login", {}, loginBody);
138
+ this.makeClient(true, res['access_token']);
139
+ storage.storeValue("accessToken", this.client.accessToken);
140
+ prepared = true;
141
+ }
142
+ else {
143
+ this.makeClient(true, accessToken);
144
+ prepared = true;
145
+ }
146
+ }
147
+ if (!prepared) { // noinspection ExceptionCaughtLocallyJS
148
+ throw new Error("Unable to establish a device ID");
149
+ }
150
+ // Now set up crypto
151
+ await this.client.crypto.prepare(await this.refreshJoinedRooms());
152
+ this.appservice.on("room.event", (roomId, event) => {
153
+ if (!this.knownJoinedRooms.includes(roomId))
154
+ return;
155
+ this.client.crypto.onRoomEvent(roomId, event);
156
+ });
157
+ resolve();
158
+ }
159
+ catch (e) {
160
+ reject(e);
161
+ }
162
+ });
163
+ }
164
+ return this.cryptoSetupPromise;
165
+ }
166
+ /**
167
+ * Gets the joined rooms for the intent. Note that by working around
168
+ * the intent to join rooms may yield inaccurate results.
169
+ * @returns {Promise<string[]>} Resolves to an array of room IDs where
170
+ * the intent is joined.
171
+ */
172
+ async getJoinedRooms() {
173
+ await this.ensureRegistered();
174
+ if (this.knownJoinedRooms.length === 0)
175
+ await this.refreshJoinedRooms();
176
+ return this.knownJoinedRooms.map(r => r); // clone
177
+ }
178
+ /**
179
+ * Leaves the given room.
180
+ * @param {string} roomId The room ID to leave
181
+ * @param {string=} reason Optional reason to be included as the reason for leaving the room.
182
+ * @returns {Promise<any>} Resolves when the room has been left.
183
+ */
184
+ async leaveRoom(roomId, reason) {
185
+ await this.ensureRegistered();
186
+ return this.client.leaveRoom(roomId, reason).then(async () => {
187
+ // Recalculate joined rooms now that we've left a room
188
+ await this.refreshJoinedRooms();
189
+ });
190
+ }
191
+ /**
192
+ * Joins the given room
193
+ * @param {string} roomIdOrAlias the room ID or alias to join
194
+ * @returns {Promise<string>} resolves to the joined room ID
195
+ */
196
+ async joinRoom(roomIdOrAlias) {
197
+ await this.ensureRegistered();
198
+ return this.client.joinRoom(roomIdOrAlias).then(async (roomId) => {
199
+ // Recalculate joined rooms now that we've joined a room
200
+ await this.refreshJoinedRooms();
201
+ return roomId;
202
+ });
203
+ }
204
+ /**
205
+ * Sends a text message to a room.
206
+ * @param {string} roomId The room ID to send text to.
207
+ * @param {string} body The message body to send.
208
+ * @param {"m.text" | "m.emote" | "m.notice"} msgtype The message type to send.
209
+ * @returns {Promise<string>} Resolves to the event ID of the sent message.
210
+ */
211
+ async sendText(roomId, body, msgtype = "m.text") {
212
+ return this.sendEvent(roomId, { body: body, msgtype: msgtype });
213
+ }
214
+ /**
215
+ * Sends an event to a room.
216
+ * @param {string} roomId The room ID to send the event to.
217
+ * @param {any} content The content of the event.
218
+ * @returns {Promise<string>} Resolves to the event ID of the sent event.
219
+ */
220
+ async sendEvent(roomId, content) {
221
+ await this.ensureRegisteredAndJoined(roomId);
222
+ return this.client.sendMessage(roomId, content);
223
+ }
224
+ /**
225
+ * Ensures the user is registered and joined to the given room.
226
+ * @param {string} roomId The room ID to join
227
+ * @returns {Promise<any>} Resolves when complete
228
+ */
229
+ async ensureRegisteredAndJoined(roomId) {
230
+ await this.ensureRegistered();
231
+ await this.ensureJoined(roomId);
232
+ }
233
+ /**
234
+ * Ensures the user is joined to the given room
235
+ * @param {string} roomId The room ID to join
236
+ * @returns {Promise<any>} Resolves when complete
237
+ */
238
+ async ensureJoined(roomId) {
239
+ if (this.knownJoinedRooms.indexOf(roomId) !== -1) {
240
+ return;
241
+ }
242
+ await this.refreshJoinedRooms();
243
+ if (this.knownJoinedRooms.indexOf(roomId) !== -1) {
244
+ return;
245
+ }
246
+ const returnedRoomId = await this.client.joinRoom(roomId);
247
+ if (!this.knownJoinedRooms.includes(returnedRoomId)) {
248
+ this.knownJoinedRooms.push(returnedRoomId);
249
+ }
250
+ return returnedRoomId;
251
+ }
252
+ /**
253
+ * Refreshes which rooms the user is joined to, potentially saving time on
254
+ * calls like ensureJoined()
255
+ * @returns {Promise<string[]>} Resolves to the joined room IDs for the user.
256
+ */
257
+ async refreshJoinedRooms() {
258
+ this.knownJoinedRooms = await this.client.getJoinedRooms();
259
+ return this.knownJoinedRooms.map(r => r); // clone
260
+ }
261
+ /**
262
+ * Ensures the user is registered
263
+ * @param deviceId An optional device ID to register with.
264
+ * @returns {Promise<any>} Resolves when complete
265
+ */
266
+ async ensureRegistered(deviceId) {
267
+ if (!(await Promise.resolve(this.storage.isUserRegistered(this.userId)))) {
268
+ try {
269
+ const result = await this.client.doRequest("POST", "/_matrix/client/v3/register", null, {
270
+ type: "m.login.application_service",
271
+ username: this.userId.substring(1).split(":")[0],
272
+ device_id: deviceId,
273
+ });
274
+ // HACK: Workaround for unit tests
275
+ if (result['errcode']) {
276
+ // noinspection ExceptionCaughtLocallyJS
277
+ throw { body: result }; // eslint-disable-line no-throw-literal
278
+ }
279
+ this.client.impersonateUserId(this.userId, result["device_id"]);
280
+ }
281
+ catch (err) {
282
+ if (err instanceof MatrixError_1.MatrixError && err.errcode === "M_USER_IN_USE") {
283
+ await Promise.resolve(this.storage.addRegisteredUser(this.userId));
284
+ if (this.userId === this.appservice.botUserId) {
285
+ return null;
286
+ }
287
+ else {
288
+ __1.LogService.error("Appservice", "Error registering user: User ID is in use");
289
+ return null;
290
+ }
291
+ }
292
+ else {
293
+ __1.LogService.error("Appservice", "Encountered error registering user: ");
294
+ __1.LogService.error("Appservice", (0, __1.extractRequestError)(err));
295
+ }
296
+ throw err;
297
+ }
298
+ await Promise.resolve(this.storage.addRegisteredUser(this.userId));
299
+ }
300
+ }
301
+ }
302
+ exports.Intent = Intent;
303
+ __decorate([
304
+ (0, decorators_1.timedIntentFunctionCall)(),
305
+ __metadata("design:type", Function),
306
+ __metadata("design:paramtypes", []),
307
+ __metadata("design:returntype", Promise)
308
+ ], Intent.prototype, "enableEncryption", null);
309
+ __decorate([
310
+ (0, decorators_1.timedIntentFunctionCall)(),
311
+ __metadata("design:type", Function),
312
+ __metadata("design:paramtypes", []),
313
+ __metadata("design:returntype", Promise)
314
+ ], Intent.prototype, "getJoinedRooms", null);
315
+ __decorate([
316
+ (0, decorators_1.timedIntentFunctionCall)(),
317
+ __metadata("design:type", Function),
318
+ __metadata("design:paramtypes", [String, String]),
319
+ __metadata("design:returntype", Promise)
320
+ ], Intent.prototype, "leaveRoom", null);
321
+ __decorate([
322
+ (0, decorators_1.timedIntentFunctionCall)(),
323
+ __metadata("design:type", Function),
324
+ __metadata("design:paramtypes", [String]),
325
+ __metadata("design:returntype", Promise)
326
+ ], Intent.prototype, "joinRoom", null);
327
+ __decorate([
328
+ (0, decorators_1.timedIntentFunctionCall)(),
329
+ __metadata("design:type", Function),
330
+ __metadata("design:paramtypes", [String, String, String]),
331
+ __metadata("design:returntype", Promise)
332
+ ], Intent.prototype, "sendText", null);
333
+ __decorate([
334
+ (0, decorators_1.timedIntentFunctionCall)(),
335
+ __metadata("design:type", Function),
336
+ __metadata("design:paramtypes", [String, Object]),
337
+ __metadata("design:returntype", Promise)
338
+ ], Intent.prototype, "sendEvent", null);
339
+ __decorate([
340
+ (0, decorators_1.timedIntentFunctionCall)(),
341
+ __metadata("design:type", Function),
342
+ __metadata("design:paramtypes", [String]),
343
+ __metadata("design:returntype", Promise)
344
+ ], Intent.prototype, "ensureRegisteredAndJoined", null);
345
+ __decorate([
346
+ (0, decorators_1.timedIntentFunctionCall)(),
347
+ __metadata("design:type", Function),
348
+ __metadata("design:paramtypes", [String]),
349
+ __metadata("design:returntype", Promise)
350
+ ], Intent.prototype, "ensureJoined", null);
351
+ __decorate([
352
+ (0, decorators_1.timedIntentFunctionCall)(),
353
+ __metadata("design:type", Function),
354
+ __metadata("design:paramtypes", []),
355
+ __metadata("design:returntype", Promise)
356
+ ], Intent.prototype, "refreshJoinedRooms", null);
357
+ __decorate([
358
+ (0, decorators_1.timedIntentFunctionCall)(),
359
+ __metadata("design:type", Function),
360
+ __metadata("design:paramtypes", [String]),
361
+ __metadata("design:returntype", Promise)
362
+ ], Intent.prototype, "ensureRegistered", null);
363
+ //# sourceMappingURL=Intent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Intent.js","sourceRoot":"","sources":["../../src/appservice/Intent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import { Appservice } from "./Appservice";
2
+ import { Intent } from "./Intent";
3
+ export declare const REMOTE_USER_INFO_ACCOUNT_DATA_EVENT_TYPE = "io.t2bot.sdk.bot.remote_user_info";
4
+ export declare const REMOTE_ROOM_INFO_ACCOUNT_DATA_EVENT_TYPE = "io.t2bot.sdk.bot.remote_room_info";
5
+ export declare const REMOTE_USER_MAP_ACCOUNT_DATA_EVENT_TYPE_PREFIX = "io.t2bot.sdk.bot.remote_user_map";
6
+ export declare const REMOTE_ROOM_MAP_ACCOUNT_DATA_EVENT_TYPE_PREFIX = "io.t2bot.sdk.bot.remote_room_map";
7
+ /**
8
+ * @see MatrixBridge
9
+ * @category Application services
10
+ */
11
+ export interface IRemoteRoomInfo {
12
+ /**
13
+ * A unique identifier for the remote user.
14
+ */
15
+ id: string;
16
+ }
17
+ /**
18
+ * @see MatrixBridge
19
+ * @category Application services
20
+ */
21
+ export interface IRemoteUserInfo {
22
+ /**
23
+ * A unique identifier for the remote room (or room equivalent).
24
+ */
25
+ id: string;
26
+ }
27
+ /**
28
+ * Utility class for common operations performed by bridges (represented
29
+ * as appservices).
30
+ *
31
+ * The storage utilities are not intended for bridges which allow 1:many
32
+ * relationships with the remote network.
33
+ *
34
+ * Bridges are generally expected to create their own classes which extend
35
+ * the IRemoteRoomInfo and IRemoteUserInfo interfaces and serialize to JSON
36
+ * cleanly. The serialized version of these classes is persisted in various
37
+ * account data locations for future lookups.
38
+ * @category Application services
39
+ */
40
+ export declare class MatrixBridge {
41
+ private appservice;
42
+ constructor(appservice: Appservice);
43
+ /**
44
+ * Gets information about a remote user.
45
+ * @param {Intent} userIntent The Matrix user intent to get information on.
46
+ * @returns {Promise<IRemoteUserInfo>} Resolves to the remote user information.
47
+ */
48
+ getRemoteUserInfo<T extends IRemoteUserInfo>(userIntent: Intent): Promise<T>;
49
+ /**
50
+ * Sets information about a remote user. Calling this function will map the
51
+ * provided remote user ID to the intent's owner.
52
+ * @param {Intent} userIntent The Matrix user intent to store information on.
53
+ * @param {IRemoteUserInfo} remoteInfo The remote user information to store
54
+ * @returns {Promise<any>} Resolves when the information has been updated.
55
+ */
56
+ setRemoteUserInfo<T extends IRemoteUserInfo>(userIntent: Intent, remoteInfo: T): Promise<any>;
57
+ /**
58
+ * Gets information about a remote room.
59
+ * @param {string} matrixRoomId The Matrix room ID to get information on.
60
+ * @returns {Promise<IRemoteRoomInfo>} Resolves to the remote room information.
61
+ */
62
+ getRemoteRoomInfo<T extends IRemoteRoomInfo>(matrixRoomId: string): Promise<T>;
63
+ /**
64
+ * Sets information about a remote room. Calling this function will map the
65
+ * provided remote room ID to the matrix room ID.
66
+ * @param {string} matrixRoomId The Matrix room ID to store information on.
67
+ * @param {IRemoteRoomInfo} remoteInfo The remote room information to store
68
+ * @returns {Promise<any>} Resolves when the information has been updated.
69
+ */
70
+ setRemoteRoomInfo<T extends IRemoteRoomInfo>(matrixRoomId: string, remoteInfo: T): Promise<any>;
71
+ /**
72
+ * Gets the Matrix room ID for the provided remote room ID.
73
+ * @param {string} remoteRoomId The remote room ID to look up.
74
+ * @returns {Promise<string>} Resolves to the Matrix room ID.
75
+ */
76
+ getMatrixRoomIdForRemote(remoteRoomId: string): Promise<string>;
77
+ /**
78
+ * Gets a Matrix user intent for the provided remote user ID.
79
+ * @param {string} remoteUserId The remote user ID to look up.
80
+ * @returns {Promise<Intent>} Resolves to the Matrix user intent.
81
+ */
82
+ getIntentForRemote(remoteUserId: string): Promise<Intent>;
83
+ private updateRemoteUserMapping;
84
+ private updateRemoteRoomMapping;
85
+ }