@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,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EncryptedRoomEvent = void 0;
4
+ const RoomEvent_1 = require("./RoomEvent");
5
+ /**
6
+ * Represents an m.room.encrypted room event
7
+ * @category Matrix events
8
+ */
9
+ class EncryptedRoomEvent extends RoomEvent_1.RoomEvent {
10
+ constructor(event) {
11
+ super(event);
12
+ }
13
+ /**
14
+ * The encryption algorithm used on the event. Should match the m.room.encryption
15
+ * state config.
16
+ */
17
+ get algorithm() {
18
+ return this.content.algorithm;
19
+ }
20
+ /**
21
+ * The Megolm encrypted payload information.
22
+ */
23
+ get megolmProperties() {
24
+ return this.content;
25
+ }
26
+ }
27
+ exports.EncryptedRoomEvent = EncryptedRoomEvent;
28
+ //# sourceMappingURL=EncryptedRoomEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EncryptedRoomEvent.js","sourceRoot":"","sources":["../../../src/models/events/EncryptedRoomEvent.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAkCxC;;;GAGG;AACH,MAAa,kBAAmB,SAAQ,qBAAoC;IACxE,YAAY,KAAU;QAClB,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,OAA2B,CAAC;IAC5C,CAAC;CACJ;AAnBD,gDAmBC"}
@@ -0,0 +1,47 @@
1
+ import { StateEvent } from "./RoomEvent";
2
+ /**
3
+ * The kinds of room encryption algorithms allowed by the spec.
4
+ * @category Models
5
+ * @see EncryptionEvent
6
+ */
7
+ export declare enum RoomEncryptionAlgorithm {
8
+ MegolmV1AesSha2 = "m.megolm.v1.aes-sha2"
9
+ }
10
+ /**
11
+ * The content definition for m.room.encryption events
12
+ * @category Matrix event contents
13
+ * @see EncryptionEvent
14
+ */
15
+ export interface EncryptionEventContent {
16
+ /**
17
+ * The encryption algorithm for the room.
18
+ */
19
+ algorithm: string | RoomEncryptionAlgorithm;
20
+ /**
21
+ * How long a session should be used before changing it.
22
+ */
23
+ rotation_period_ms?: number;
24
+ /**
25
+ * How many messages should be sent before changing the session.
26
+ */
27
+ rotation_period_msgs?: number;
28
+ }
29
+ /**
30
+ * Represents an m.room.encryption state event
31
+ * @category Matrix events
32
+ */
33
+ export declare class EncryptionEvent extends StateEvent<EncryptionEventContent> {
34
+ constructor(event: any);
35
+ /**
36
+ * The encryption algorithm for the room.
37
+ */
38
+ get algorithm(): string | RoomEncryptionAlgorithm;
39
+ /**
40
+ * How long a session should be used before changing it. Defaults to a week.
41
+ */
42
+ get rotationPeriodMs(): number;
43
+ /**
44
+ * How many messages should be sent before a session changes. Defaults to 100.
45
+ */
46
+ get rotationPeriodMessages(): number;
47
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EncryptionEvent = exports.RoomEncryptionAlgorithm = void 0;
4
+ const RoomEvent_1 = require("./RoomEvent");
5
+ /**
6
+ * The kinds of room encryption algorithms allowed by the spec.
7
+ * @category Models
8
+ * @see EncryptionEvent
9
+ */
10
+ var RoomEncryptionAlgorithm;
11
+ (function (RoomEncryptionAlgorithm) {
12
+ RoomEncryptionAlgorithm["MegolmV1AesSha2"] = "m.megolm.v1.aes-sha2";
13
+ })(RoomEncryptionAlgorithm || (exports.RoomEncryptionAlgorithm = RoomEncryptionAlgorithm = {}));
14
+ /**
15
+ * Represents an m.room.encryption state event
16
+ * @category Matrix events
17
+ */
18
+ class EncryptionEvent extends RoomEvent_1.StateEvent {
19
+ constructor(event) {
20
+ super(event);
21
+ }
22
+ /**
23
+ * The encryption algorithm for the room.
24
+ */
25
+ get algorithm() {
26
+ return this.content.algorithm;
27
+ }
28
+ /**
29
+ * How long a session should be used before changing it. Defaults to a week.
30
+ */
31
+ get rotationPeriodMs() {
32
+ return this.content.rotation_period_ms ?? 604800000; // 1 week
33
+ }
34
+ /**
35
+ * How many messages should be sent before a session changes. Defaults to 100.
36
+ */
37
+ get rotationPeriodMessages() {
38
+ return this.content.rotation_period_msgs ?? 100;
39
+ }
40
+ }
41
+ exports.EncryptionEvent = EncryptionEvent;
42
+ //# sourceMappingURL=EncryptionEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EncryptionEvent.js","sourceRoot":"","sources":["../../../src/models/events/EncryptionEvent.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAEzC;;;;GAIG;AACH,IAAY,uBAEX;AAFD,WAAY,uBAAuB;IAC/B,mEAAwC,CAAA;AAC5C,CAAC,EAFW,uBAAuB,uCAAvB,uBAAuB,QAElC;AAwBD;;;GAGG;AACH,MAAa,eAAgB,SAAQ,sBAAkC;IACnE,YAAY,KAAU;QAClB,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,SAAS,CAAC,CAAC,SAAS;IAClE,CAAC;IAED;;OAEG;IACH,IAAW,sBAAsB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,IAAI,GAAG,CAAC;IACpD,CAAC;CACJ;AAzBD,0CAyBC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * A Matrix event.
3
+ * @category Matrix events
4
+ */
5
+ export declare class MatrixEvent<T extends (Object | unknown) = unknown> {
6
+ protected event: any;
7
+ constructor(event: any);
8
+ /**
9
+ * The user ID who sent this event.
10
+ */
11
+ get sender(): string;
12
+ /**
13
+ * The type of this event.
14
+ */
15
+ get type(): string;
16
+ /**
17
+ * The content for this event. May have no properties.
18
+ */
19
+ get content(): T;
20
+ /**
21
+ * Gets the raw event that this MatrixEvent is using.
22
+ * Note that there's no guarantees on formats here - it is the exact
23
+ * same input to the constructor.
24
+ */
25
+ get raw(): any;
26
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MatrixEvent = void 0;
4
+ /**
5
+ * A Matrix event.
6
+ * @category Matrix events
7
+ */
8
+ class MatrixEvent {
9
+ constructor(event) {
10
+ this.event = event;
11
+ }
12
+ /**
13
+ * The user ID who sent this event.
14
+ */
15
+ get sender() {
16
+ return this.event['sender'];
17
+ }
18
+ /**
19
+ * The type of this event.
20
+ */
21
+ get type() {
22
+ return this.event['type'];
23
+ }
24
+ /**
25
+ * The content for this event. May have no properties.
26
+ */
27
+ get content() {
28
+ return this.event['content'] || {};
29
+ }
30
+ /**
31
+ * Gets the raw event that this MatrixEvent is using.
32
+ * Note that there's no guarantees on formats here - it is the exact
33
+ * same input to the constructor.
34
+ */
35
+ get raw() {
36
+ return this.event;
37
+ }
38
+ }
39
+ exports.MatrixEvent = MatrixEvent;
40
+ //# sourceMappingURL=Event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Event.js","sourceRoot":"","sources":["../../../src/models/events/Event.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,WAAW;IACpB,YAAsB,KAAU;QAAV,UAAK,GAAL,KAAK,CAAK;IAChC,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,IAAW,GAAG;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;CACJ;AAjCD,kCAiCC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Represents the different kinds of events a bot/appservice might see.
3
+ * @category Matrix events
4
+ */
5
+ export declare enum EventKind {
6
+ /**
7
+ * A room event. This could be a message event or a state event, and is associated with
8
+ * a room.
9
+ */
10
+ RoomEvent = "room",
11
+ /**
12
+ * An ephemeral event, such as typing notifications or presence.
13
+ */
14
+ EphemeralEvent = "ephemeral"
15
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventKind = void 0;
4
+ /**
5
+ * Represents the different kinds of events a bot/appservice might see.
6
+ * @category Matrix events
7
+ */
8
+ var EventKind;
9
+ (function (EventKind) {
10
+ /**
11
+ * A room event. This could be a message event or a state event, and is associated with
12
+ * a room.
13
+ */
14
+ EventKind["RoomEvent"] = "room";
15
+ /**
16
+ * An ephemeral event, such as typing notifications or presence.
17
+ */
18
+ EventKind["EphemeralEvent"] = "ephemeral";
19
+ })(EventKind || (exports.EventKind = EventKind = {}));
20
+ //# sourceMappingURL=EventKind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventKind.js","sourceRoot":"","sources":["../../../src/models/events/EventKind.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,SAWX;AAXD,WAAY,SAAS;IACjB;;;OAGG;IACH,+BAAkB,CAAA;IAElB;;OAEG;IACH,yCAA4B,CAAA;AAChC,CAAC,EAXW,SAAS,yBAAT,SAAS,QAWpB"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Thrown when an event is invalid.
3
+ * @category Matrix events
4
+ */
5
+ export declare class InvalidEventError extends Error {
6
+ constructor(message?: string);
7
+ }
8
+ /**
9
+ * Thrown when an event is redacted.
10
+ * @category Matrix events
11
+ */
12
+ export declare class EventRedactedError extends InvalidEventError {
13
+ constructor(message?: string);
14
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventRedactedError = exports.InvalidEventError = void 0;
4
+ /**
5
+ * Thrown when an event is invalid.
6
+ * @category Matrix events
7
+ */
8
+ class InvalidEventError extends Error {
9
+ constructor(message = null) {
10
+ super(message);
11
+ }
12
+ }
13
+ exports.InvalidEventError = InvalidEventError;
14
+ /**
15
+ * Thrown when an event is redacted.
16
+ * @category Matrix events
17
+ */
18
+ class EventRedactedError extends InvalidEventError {
19
+ constructor(message = null) {
20
+ super(message);
21
+ }
22
+ }
23
+ exports.EventRedactedError = EventRedactedError;
24
+ //# sourceMappingURL=InvalidEventError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvalidEventError.js","sourceRoot":"","sources":["../../../src/models/events/InvalidEventError.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,iBAAkB,SAAQ,KAAK;IACxC,YAAY,UAAkB,IAAI;QAC9B,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACJ;AAJD,8CAIC;AAED;;;GAGG;AACH,MAAa,kBAAmB,SAAQ,iBAAiB;IACrD,YAAY,UAAkB,IAAI;QAC9B,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACJ;AAJD,gDAIC"}
@@ -0,0 +1,29 @@
1
+ import { StateEvent } from "./RoomEvent";
2
+ /**
3
+ * The types of join rules that are valid in Matrix.
4
+ * @category Matrix event info
5
+ * @see JoinRulesEventContent
6
+ */
7
+ export type JoinRule = "public" | "knock" | "invite" | "private";
8
+ /**
9
+ * The content definition for m.room.join_rules events
10
+ * @category Matrix event contents
11
+ * @see JoinRulesEvent
12
+ */
13
+ export interface JoinRulesEventContent {
14
+ /**
15
+ * The join rule for the room.
16
+ */
17
+ join_rule: JoinRule;
18
+ }
19
+ /**
20
+ * Represents an m.room.join_rules state event
21
+ * @category Matrix events
22
+ */
23
+ export declare class JoinRulesEvent extends StateEvent<JoinRulesEventContent> {
24
+ constructor(event: any);
25
+ /**
26
+ * The join rule for the room.
27
+ */
28
+ get rule(): JoinRule;
29
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JoinRulesEvent = void 0;
4
+ const RoomEvent_1 = require("./RoomEvent");
5
+ /**
6
+ * Represents an m.room.join_rules state event
7
+ * @category Matrix events
8
+ */
9
+ class JoinRulesEvent extends RoomEvent_1.StateEvent {
10
+ constructor(event) {
11
+ super(event);
12
+ }
13
+ /**
14
+ * The join rule for the room.
15
+ */
16
+ get rule() {
17
+ return this.content.join_rule;
18
+ }
19
+ }
20
+ exports.JoinRulesEvent = JoinRulesEvent;
21
+ //# sourceMappingURL=JoinRulesEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JoinRulesEvent.js","sourceRoot":"","sources":["../../../src/models/events/JoinRulesEvent.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAqBzC;;;GAGG;AACH,MAAa,cAAe,SAAQ,sBAAiC;IACjE,YAAY,KAAU;QAClB,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAClC,CAAC;CACJ;AAXD,wCAWC"}
@@ -0,0 +1,54 @@
1
+ import { StateEvent } from "./RoomEvent";
2
+ /**
3
+ * The types of membership that are valid in Matrix.
4
+ * @category Matrix event info
5
+ * @see MembershipEventContent
6
+ */
7
+ export type Membership = "join" | "leave" | "ban" | "invite";
8
+ /**
9
+ * The effective membership states a user can be in.
10
+ * @category Matrix event info
11
+ * @see MembershipEventContent
12
+ */
13
+ export type EffectiveMembership = "join" | "leave" | "invite";
14
+ /**
15
+ * The content definition for m.room.member events
16
+ * @category Matrix event contents
17
+ * @see MembershipEvent
18
+ */
19
+ export interface MembershipEventContent {
20
+ avatar_url?: string;
21
+ displayname?: string;
22
+ membership: Membership;
23
+ is_direct?: boolean;
24
+ unsigned?: any;
25
+ third_party_invite?: {
26
+ display_name: string;
27
+ signed: any;
28
+ };
29
+ }
30
+ /**
31
+ * Represents an m.room.member state event
32
+ * @category Matrix events
33
+ */
34
+ export declare class MembershipEvent extends StateEvent<MembershipEventContent> {
35
+ constructor(event: any);
36
+ /**
37
+ * True if the membership event targets the sender. False otherwise.
38
+ *
39
+ * This will typically by false for kicks and bans.
40
+ */
41
+ get ownMembership(): boolean;
42
+ /**
43
+ * The user ID the membership affects.
44
+ */
45
+ get membershipFor(): string;
46
+ /**
47
+ * The user's membership.
48
+ */
49
+ get membership(): Membership;
50
+ /**
51
+ * The user's effective membership.
52
+ */
53
+ get effectiveMembership(): EffectiveMembership;
54
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MembershipEvent = void 0;
4
+ const RoomEvent_1 = require("./RoomEvent");
5
+ const InvalidEventError_1 = require("./InvalidEventError");
6
+ /**
7
+ * Represents an m.room.member state event
8
+ * @category Matrix events
9
+ */
10
+ class MembershipEvent extends RoomEvent_1.StateEvent {
11
+ constructor(event) {
12
+ super(event);
13
+ }
14
+ /**
15
+ * True if the membership event targets the sender. False otherwise.
16
+ *
17
+ * This will typically by false for kicks and bans.
18
+ */
19
+ get ownMembership() {
20
+ return this.membershipFor === this.sender;
21
+ }
22
+ /**
23
+ * The user ID the membership affects.
24
+ */
25
+ get membershipFor() {
26
+ return this.stateKey;
27
+ }
28
+ /**
29
+ * The user's membership.
30
+ */
31
+ get membership() {
32
+ const membership = this.content.membership;
33
+ if (!membership)
34
+ throw new InvalidEventError_1.InvalidEventError("no membership field in content");
35
+ return membership;
36
+ }
37
+ /**
38
+ * The user's effective membership.
39
+ */
40
+ get effectiveMembership() {
41
+ if (this.membership === "join")
42
+ return "join";
43
+ if (this.membership === "invite")
44
+ return "invite";
45
+ return "leave";
46
+ }
47
+ }
48
+ exports.MembershipEvent = MembershipEvent;
49
+ //# sourceMappingURL=MembershipEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MembershipEvent.js","sourceRoot":"","sources":["../../../src/models/events/MembershipEvent.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AACzC,2DAAwD;AAiCxD;;;GAGG;AACH,MAAa,eAAgB,SAAQ,sBAAkC;IACnE,YAAY,KAAU;QAClB,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,MAAM,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACjB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAC3C,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,qCAAiB,CAAC,gCAAgC,CAAC,CAAC;QAC/E,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAW,mBAAmB;QAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC;QAC9C,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAClD,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAtCD,0CAsCC"}
@@ -0,0 +1,233 @@
1
+ import { RoomEvent } from "./RoomEvent";
2
+ /**
3
+ * The types of messages that are valid in Matrix.
4
+ * @category Matrix event info
5
+ * @see MessageEventContent
6
+ */
7
+ export type MessageType = "m.text" | "m.emote" | "m.notice" | "m.image" | "m.file" | "m.audio" | "m.location" | "m.video" | string;
8
+ /**
9
+ * Information about a file in Matrix
10
+ * @category Matrix event info
11
+ * @see MessageEventContent
12
+ */
13
+ export interface FileInfo {
14
+ /**
15
+ * The size of the file in bytes.
16
+ */
17
+ size?: number;
18
+ /**
19
+ * The type of file.
20
+ */
21
+ mimetype?: string;
22
+ }
23
+ /**
24
+ * Information about a thumbnail in Matrix
25
+ * @category Matrix event info
26
+ * @see MessageEventContent
27
+ */
28
+ export interface ThumbnailInfo {
29
+ /**
30
+ * The size of the thumbnail in bytes.
31
+ */
32
+ size?: number;
33
+ /**
34
+ * The type of thumbnail.
35
+ */
36
+ mimetype?: string;
37
+ /**
38
+ * The intended height of the thumbnail in pixels.
39
+ */
40
+ h: number;
41
+ /**
42
+ * The intended width of the thumbnail in pixels.
43
+ */
44
+ w: number;
45
+ }
46
+ /**
47
+ * Information about a file's thumbnail.
48
+ * @category Matrix event info
49
+ * @see MessageEventContent
50
+ */
51
+ export interface ThumbnailedFileInfo {
52
+ /**
53
+ * A URL to a thumbnail for the file, if unencrypted.
54
+ */
55
+ thumbnail_url?: string;
56
+ /**
57
+ * The encrypted thumbnail file information, if encrypted.
58
+ */
59
+ thumbnail_file?: EncryptedFile;
60
+ /**
61
+ * Information about the thumbnail. Optionally included if a thumbnail_url is specified.
62
+ */
63
+ thumbnail_info?: ThumbnailInfo;
64
+ }
65
+ /**
66
+ * Information about a file that has a thumbnail
67
+ * @category Matrix event info
68
+ * @see MessageEventContent
69
+ */
70
+ export interface FileWithThumbnailInfo extends FileInfo, ThumbnailedFileInfo {
71
+ }
72
+ /**
73
+ * Information about a file that has a width and height.
74
+ * @category Matrix event info
75
+ * @see MessageEventContent
76
+ */
77
+ export interface DimensionalFileInfo extends FileWithThumbnailInfo {
78
+ /**
79
+ * The intended height of the media in pixels.
80
+ */
81
+ h: number;
82
+ /**
83
+ * The intended width of the media in pixels.
84
+ */
85
+ w: number;
86
+ }
87
+ /**
88
+ * Information about a file that has a time dimension.
89
+ * @category Matrix event info
90
+ * @see MessageEventContent
91
+ */
92
+ export interface TimedFileInfo extends FileInfo {
93
+ /**
94
+ * The duration of the media in milliseconds.
95
+ */
96
+ duration: number;
97
+ }
98
+ /**
99
+ * Information about a video file.
100
+ * @category Matrix event info
101
+ * @see MessageEventContent
102
+ */
103
+ export interface VideoFileInfo extends DimensionalFileInfo, TimedFileInfo {
104
+ }
105
+ /**
106
+ * The content definition for m.room.message events with a type of m.audio
107
+ * @category Matrix event contents
108
+ * @see MessageEvent
109
+ */
110
+ export interface AudioMessageEventContent extends FileMessageEventContent {
111
+ /**
112
+ * Information about the file.
113
+ */
114
+ info?: TimedFileInfo;
115
+ }
116
+ /**
117
+ * The content definition for m.room.message events with a type of m.video
118
+ * @category Matrix event contents
119
+ * @see MessageEvent
120
+ */
121
+ export interface VideoMessageEventContent extends FileMessageEventContent {
122
+ /**
123
+ * Information about the file.
124
+ */
125
+ info?: VideoFileInfo;
126
+ }
127
+ /**
128
+ * The content definition for m.room.message events with a type of m.image
129
+ * @category Matrix event contents
130
+ * @see MessageEvent
131
+ */
132
+ export interface ImageMessageEventContent extends FileMessageEventContent {
133
+ /**
134
+ * Information about the file.
135
+ */
136
+ info?: DimensionalFileInfo;
137
+ }
138
+ /**
139
+ * The content definition for m.room.message events with a type of m.file
140
+ * @category Matrix event contents
141
+ * @see MessageEvent
142
+ */
143
+ export interface FileMessageEventContent extends MessageEventContent {
144
+ /**
145
+ * Information about the file.
146
+ */
147
+ info?: FileWithThumbnailInfo;
148
+ /**
149
+ * URL to the file, if unencrypted.
150
+ */
151
+ url: string;
152
+ /**
153
+ * The encrypted file, if encrypted.
154
+ */
155
+ file: EncryptedFile;
156
+ }
157
+ /**
158
+ * An encrypted file.
159
+ * @category Matrix event contents
160
+ * @see MessageEvent
161
+ */
162
+ export interface EncryptedFile {
163
+ url: string;
164
+ key: {
165
+ kty: "oct";
166
+ key_ops: string[];
167
+ alg: "A256CTR";
168
+ k: string;
169
+ ext: true;
170
+ };
171
+ iv: string;
172
+ hashes: {
173
+ sha256: string;
174
+ };
175
+ v: "v2";
176
+ }
177
+ /**
178
+ * The content definition for m.room.message events with a type of m.location
179
+ * @category Matrix event contents
180
+ * @see MessageEvent
181
+ */
182
+ export interface LocationMessageEventContent extends MessageEventContent {
183
+ /**
184
+ * Information about the location.
185
+ */
186
+ info?: ThumbnailedFileInfo;
187
+ /**
188
+ * A geo URI of the location.
189
+ */
190
+ geo_uri?: string;
191
+ }
192
+ /**
193
+ * The content definition for m.room.message events with types of m.text, m.emote, and m.notice
194
+ * @category Matrix event contents
195
+ * @see MessageEvent
196
+ */
197
+ export interface TextualMessageEventContent extends MessageEventContent {
198
+ format?: string;
199
+ formatted_body?: string;
200
+ }
201
+ /**
202
+ * The content definition for m.room.message events
203
+ * @category Matrix event contents
204
+ * @see MessageEvent
205
+ */
206
+ export interface MessageEventContent {
207
+ body: string;
208
+ msgtype: MessageType;
209
+ external_url?: string;
210
+ }
211
+ /**
212
+ * Represents an m.room.message room event
213
+ * @category Matrix events
214
+ */
215
+ export declare class MessageEvent<T extends MessageEventContent> extends RoomEvent<T> {
216
+ constructor(event: any);
217
+ /**
218
+ * Whether or not the event is redacted (or looked redacted).
219
+ */
220
+ get isRedacted(): boolean;
221
+ /**
222
+ * The message's type.
223
+ */
224
+ get messageType(): MessageType;
225
+ /**
226
+ * The `body` of the message.
227
+ */
228
+ get textBody(): string;
229
+ /**
230
+ * The `external_url` of the message, if it exists
231
+ */
232
+ get externalUrl(): string | undefined;
233
+ }