@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,66 @@
1
+ import { IMetricListener } from "./IMetricListener";
2
+ import { IMetricContext } from "./contexts";
3
+ /**
4
+ * Tracks metrics.
5
+ * @category Metrics
6
+ */
7
+ export declare class Metrics {
8
+ private listeners;
9
+ private requestStartTimes;
10
+ private uid;
11
+ /**
12
+ * Creates a new Metrics handler with optional parent handler. When
13
+ * a parent handler is defined, metrics will be automatically published
14
+ * upwards to the parent.
15
+ * @param {Metrics} parent Optional parent for upstream metrics.
16
+ */
17
+ constructor(parent?: Metrics);
18
+ /**
19
+ * Registers a metric listener.
20
+ * @param {IMetricListener} listener The listener.
21
+ */
22
+ registerListener(listener: IMetricListener): void;
23
+ /**
24
+ * De-registers a metric listener.
25
+ * @param {IMetricListener} listener The listener.
26
+ */
27
+ unregisterListener(listener: IMetricListener): void;
28
+ /**
29
+ * Starts a timer on a metric.
30
+ * @param {string} metricName The metric name.
31
+ * @param {IMetricContext} context The metric context. Expected to have a unique ID.
32
+ */
33
+ start(metricName: string, context: IMetricContext): void;
34
+ /**
35
+ * Ends a timer on a metric.
36
+ * @param {string} metricName The metric name.
37
+ * @param {IMetricContext} context The metric context. Expected to have a unique ID.
38
+ */
39
+ end(metricName: string, context: IMetricContext): void;
40
+ /**
41
+ * Increments a metric.
42
+ * @param {string} metricName The metric name.
43
+ * @param {IMetricContext} context The metric context. Expected to have a unique ID.
44
+ * @param {number} amount The amount.
45
+ */
46
+ increment(metricName: string, context: IMetricContext, amount: number): void;
47
+ /**
48
+ * Decrements a metric.
49
+ * @param {string} metricName The metric name.
50
+ * @param {IMetricContext} context The metric context. Expected to have a unique ID.
51
+ * @param {number} amount The amount.
52
+ */
53
+ decrement(metricName: string, context: IMetricContext, amount: number): void;
54
+ /**
55
+ * Resets a metric.
56
+ * @param {string} metricName The metric name.
57
+ * @param {IMetricContext} context The metric context. Expected to have a unique ID.
58
+ */
59
+ reset(metricName: string, context: IMetricContext): void;
60
+ /**
61
+ * Assigns a unique ID to the context object, returning it back.
62
+ * @param {IMetricContext} context The context to modify.
63
+ * @returns {IMetricContext} The provided context.
64
+ */
65
+ assignUniqueContextId(context: IMetricContext): IMetricContext;
66
+ }
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Metrics = void 0;
4
+ const __1 = require("..");
5
+ /**
6
+ * Tracks metrics.
7
+ * @category Metrics
8
+ */
9
+ class Metrics {
10
+ /**
11
+ * Creates a new Metrics handler with optional parent handler. When
12
+ * a parent handler is defined, metrics will be automatically published
13
+ * upwards to the parent.
14
+ * @param {Metrics} parent Optional parent for upstream metrics.
15
+ */
16
+ constructor(parent = null) {
17
+ this.listeners = [];
18
+ this.requestStartTimes = {};
19
+ this.uid = 0;
20
+ if (parent !== null) {
21
+ this.registerListener({
22
+ onIncrement(metricName, context, amount) {
23
+ parent.listeners.forEach(h => h.onIncrement(metricName, context, amount));
24
+ },
25
+ onDecrement(metricName, context, amount) {
26
+ parent.listeners.forEach(h => h.onDecrement(metricName, context, amount));
27
+ },
28
+ onReset(metricName, context) {
29
+ parent.listeners.forEach(h => h.onReset(metricName, context));
30
+ },
31
+ onStartMetric(metricName, context) {
32
+ parent.listeners.forEach(h => h.onStartMetric(metricName, context));
33
+ },
34
+ onEndMetric(metricName, context, timeMs) {
35
+ parent.listeners.forEach(h => h.onEndMetric(metricName, context, timeMs));
36
+ },
37
+ });
38
+ }
39
+ }
40
+ /**
41
+ * Registers a metric listener.
42
+ * @param {IMetricListener} listener The listener.
43
+ */
44
+ registerListener(listener) {
45
+ this.listeners.push(listener);
46
+ }
47
+ /**
48
+ * De-registers a metric listener.
49
+ * @param {IMetricListener} listener The listener.
50
+ */
51
+ unregisterListener(listener) {
52
+ const idx = this.listeners.indexOf(listener);
53
+ if (idx !== -1)
54
+ this.listeners.splice(idx, 1);
55
+ }
56
+ /**
57
+ * Starts a timer on a metric.
58
+ * @param {string} metricName The metric name.
59
+ * @param {IMetricContext} context The metric context. Expected to have a unique ID.
60
+ */
61
+ start(metricName, context) {
62
+ this.requestStartTimes[context.uniqueId] = new Date().getTime();
63
+ this.listeners.forEach(h => h.onStartMetric(metricName, context));
64
+ }
65
+ /**
66
+ * Ends a timer on a metric.
67
+ * @param {string} metricName The metric name.
68
+ * @param {IMetricContext} context The metric context. Expected to have a unique ID.
69
+ */
70
+ end(metricName, context) {
71
+ const timeMs = (new Date().getTime()) - this.requestStartTimes[context.uniqueId];
72
+ delete this.requestStartTimes[context.uniqueId];
73
+ this.listeners.forEach(h => h.onEndMetric(metricName, context, timeMs));
74
+ // Trim the context for logging
75
+ const trimmedContext = {};
76
+ for (const key of Object.keys(context)) {
77
+ if (key === 'client') {
78
+ const client = context[key];
79
+ trimmedContext[key] = `<MatrixClient ${client['userId'] || 'NoCachedUserID'}>`;
80
+ }
81
+ else if (key === 'intent') {
82
+ const intent = context[key];
83
+ trimmedContext[key] = `<Intent ${intent['userId'] || 'NoImpersonatedUserID'}>`;
84
+ }
85
+ else {
86
+ trimmedContext[key] = context[key];
87
+ }
88
+ }
89
+ __1.LogService.trace("Metrics", metricName, trimmedContext, timeMs);
90
+ }
91
+ /**
92
+ * Increments a metric.
93
+ * @param {string} metricName The metric name.
94
+ * @param {IMetricContext} context The metric context. Expected to have a unique ID.
95
+ * @param {number} amount The amount.
96
+ */
97
+ increment(metricName, context, amount) {
98
+ this.listeners.forEach(h => h.onIncrement(metricName, context, amount));
99
+ }
100
+ /**
101
+ * Decrements a metric.
102
+ * @param {string} metricName The metric name.
103
+ * @param {IMetricContext} context The metric context. Expected to have a unique ID.
104
+ * @param {number} amount The amount.
105
+ */
106
+ decrement(metricName, context, amount) {
107
+ this.listeners.forEach(h => h.onDecrement(metricName, context, amount));
108
+ }
109
+ /**
110
+ * Resets a metric.
111
+ * @param {string} metricName The metric name.
112
+ * @param {IMetricContext} context The metric context. Expected to have a unique ID.
113
+ */
114
+ reset(metricName, context) {
115
+ this.listeners.forEach(h => h.onReset(metricName, context));
116
+ }
117
+ /**
118
+ * Assigns a unique ID to the context object, returning it back.
119
+ * @param {IMetricContext} context The context to modify.
120
+ * @returns {IMetricContext} The provided context.
121
+ */
122
+ assignUniqueContextId(context) {
123
+ context.uniqueId = `${new Date().getTime()}-${this.uid++}`;
124
+ return context;
125
+ }
126
+ }
127
+ exports.Metrics = Metrics;
128
+ //# sourceMappingURL=Metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Metrics.js","sourceRoot":"","sources":["../../src/metrics/Metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Default context for all metrics.
3
+ * @category Metrics
4
+ */
5
+ import { MatrixClient } from "../MatrixClient";
6
+ import { Intent } from "../appservice/Intent";
7
+ import { IdentityClient } from "../identity/IdentityClient";
8
+ export interface IMetricContext {
9
+ /**
10
+ * Unique identifier for the context object. Used to differentiate
11
+ * contexts over a start/end event.
12
+ */
13
+ uniqueId: string;
14
+ }
15
+ /**
16
+ * Metric context for function call metrics.
17
+ * @category Metrics
18
+ */
19
+ export interface FunctionCallContext extends IMetricContext {
20
+ /**
21
+ * The function name being called
22
+ */
23
+ functionName: string;
24
+ }
25
+ /**
26
+ * Metric context for metrics from a MatrixClient
27
+ * @category Metrics
28
+ */
29
+ export interface MatrixClientCallContext extends FunctionCallContext {
30
+ /**
31
+ * The client that raised the metric.
32
+ */
33
+ client: MatrixClient;
34
+ }
35
+ /**
36
+ * Metric context for metrics from an IdentityClient
37
+ * @category Metrics
38
+ */
39
+ export interface IdentityClientCallContext extends FunctionCallContext {
40
+ client: IdentityClient;
41
+ }
42
+ /**
43
+ * Metric context for metrics from an Intent
44
+ * @category Metrics
45
+ */
46
+ export interface IntentCallContext extends MatrixClientCallContext {
47
+ /**
48
+ * The intent that is raising the metric.
49
+ */
50
+ intent: Intent;
51
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=contexts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contexts.js","sourceRoot":"","sources":["../../src/metrics/contexts.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Times a MatrixClient function call for metrics.
3
+ * @category Metrics
4
+ */
5
+ export declare function timedMatrixClientFunctionCall(): (_target: unknown, functionName: string, descriptor: PropertyDescriptor) => void;
6
+ /**
7
+ * Times an IdentityClient function call for metrics.
8
+ * @category Metrics
9
+ */
10
+ export declare function timedIdentityClientFunctionCall(): (_target: unknown, functionName: string, descriptor: PropertyDescriptor) => void;
11
+ /**
12
+ * Times an Intent function call for metrics.
13
+ * @category Metrics
14
+ */
15
+ export declare function timedIntentFunctionCall(): (_target: unknown, functionName: string, descriptor: PropertyDescriptor) => void;
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.timedMatrixClientFunctionCall = timedMatrixClientFunctionCall;
4
+ exports.timedIdentityClientFunctionCall = timedIdentityClientFunctionCall;
5
+ exports.timedIntentFunctionCall = timedIntentFunctionCall;
6
+ const names_1 = require("./names");
7
+ /**
8
+ * Times a MatrixClient function call for metrics.
9
+ * @category Metrics
10
+ */
11
+ function timedMatrixClientFunctionCall() {
12
+ return function (_target, functionName, descriptor) {
13
+ const originalMethod = descriptor.value;
14
+ descriptor.value = async function (...args) {
15
+ const context = this.metrics.assignUniqueContextId({
16
+ functionName,
17
+ client: this,
18
+ });
19
+ this.metrics.start(names_1.METRIC_MATRIX_CLIENT_FUNCTION_CALL, context);
20
+ try {
21
+ const result = await originalMethod.apply(this, args);
22
+ this.metrics.increment(names_1.METRIC_MATRIX_CLIENT_SUCCESSFUL_FUNCTION_CALL, context, 1);
23
+ return result;
24
+ }
25
+ catch (e) {
26
+ this.metrics.increment(names_1.METRIC_MATRIX_CLIENT_FAILED_FUNCTION_CALL, context, 1);
27
+ throw e;
28
+ }
29
+ finally {
30
+ this.metrics.end(names_1.METRIC_MATRIX_CLIENT_FUNCTION_CALL, context);
31
+ }
32
+ };
33
+ };
34
+ }
35
+ /**
36
+ * Times an IdentityClient function call for metrics.
37
+ * @category Metrics
38
+ */
39
+ function timedIdentityClientFunctionCall() {
40
+ return function (_target, functionName, descriptor) {
41
+ const originalMethod = descriptor.value;
42
+ descriptor.value = async function (...args) {
43
+ const context = this.metrics.assignUniqueContextId({
44
+ functionName,
45
+ client: this,
46
+ });
47
+ this.metrics.start(names_1.METRIC_IDENTITY_CLIENT_FUNCTION_CALL, context);
48
+ try {
49
+ const result = await originalMethod.apply(this, args);
50
+ this.metrics.increment(names_1.METRIC_IDENTITY_CLIENT_SUCCESSFUL_FUNCTION_CALL, context, 1);
51
+ return result;
52
+ }
53
+ catch (e) {
54
+ this.metrics.increment(names_1.METRIC_IDENTITY_CLIENT_FAILED_FUNCTION_CALL, context, 1);
55
+ throw e;
56
+ }
57
+ finally {
58
+ this.metrics.end(names_1.METRIC_IDENTITY_CLIENT_FUNCTION_CALL, context);
59
+ }
60
+ };
61
+ };
62
+ }
63
+ /**
64
+ * Times an Intent function call for metrics.
65
+ * @category Metrics
66
+ */
67
+ function timedIntentFunctionCall() {
68
+ return function (_target, functionName, descriptor) {
69
+ const originalMethod = descriptor.value;
70
+ descriptor.value = async function (...args) {
71
+ const context = this.metrics.assignUniqueContextId({
72
+ functionName,
73
+ client: this.client,
74
+ intent: this,
75
+ });
76
+ this.metrics.start(names_1.METRIC_INTENT_FUNCTION_CALL, context);
77
+ try {
78
+ const result = await originalMethod.apply(this, args);
79
+ this.metrics.increment(names_1.METRIC_INTENT_SUCCESSFUL_FUNCTION_CALL, context, 1);
80
+ return result;
81
+ }
82
+ catch (e) {
83
+ this.metrics.increment(names_1.METRIC_INTENT_FAILED_FUNCTION_CALL, context, 1);
84
+ throw e;
85
+ }
86
+ finally {
87
+ this.metrics.end(names_1.METRIC_INTENT_FUNCTION_CALL, context);
88
+ }
89
+ };
90
+ };
91
+ }
92
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/metrics/decorators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Time-series metric for how long a function call takes on MatrixClient. Uses a MatrixClientCallContext.
3
+ * @category Metrics
4
+ */
5
+ export declare const METRIC_MATRIX_CLIENT_FUNCTION_CALL = "matrix_client_function_call";
6
+ /**
7
+ * Counter metric for failed function calls on a MatrixClient. Uses a MatrixClientCallContext.
8
+ * @category Metrics
9
+ */
10
+ export declare const METRIC_MATRIX_CLIENT_FAILED_FUNCTION_CALL = "matrix_client_failed_function_call";
11
+ /**
12
+ * Counter metric for successful function calls on a MatrixClient. Uses a MatrixClientCallContext.
13
+ * @category Metrics
14
+ */
15
+ export declare const METRIC_MATRIX_CLIENT_SUCCESSFUL_FUNCTION_CALL = "matrix_client_successful_function_call";
16
+ /**
17
+ * Time-series metric for how long a function call takes on an IdentityClient. Uses an IdentityClientCallContext.
18
+ * @category Metrics
19
+ */
20
+ export declare const METRIC_IDENTITY_CLIENT_FUNCTION_CALL = "identity_client_function_call";
21
+ /**
22
+ * Counter metric for failed function calls on an IdentityClient. Uses an IdentityClientCallContext.
23
+ * @category Metrics
24
+ */
25
+ export declare const METRIC_IDENTITY_CLIENT_FAILED_FUNCTION_CALL = "identity_client_failed_function_call";
26
+ /**
27
+ * Counter metric for successful function calls on an IdentityClient. Uses an IdentityClientCallContext.
28
+ * @category Metrics
29
+ */
30
+ export declare const METRIC_IDENTITY_CLIENT_SUCCESSFUL_FUNCTION_CALL = "identity_client_successful_function_call";
31
+ /**
32
+ * Time-series metric for how long a function call takes on an Intent. Uses a IntentCallContext.
33
+ * @category Metrics
34
+ */
35
+ export declare const METRIC_INTENT_FUNCTION_CALL = "intent_function_call";
36
+ /**
37
+ * Counter metric for failed function calls on an Intent. Uses a IntentCallContext.
38
+ * @category Metrics
39
+ */
40
+ export declare const METRIC_INTENT_FAILED_FUNCTION_CALL = "intent_failed_function_call";
41
+ /**
42
+ * Counter metric for successful function calls on an Intent. Uses a IntentCallContext.
43
+ * @category Metrics
44
+ */
45
+ export declare const METRIC_INTENT_SUCCESSFUL_FUNCTION_CALL = "intent_successful_function_call";
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.METRIC_INTENT_SUCCESSFUL_FUNCTION_CALL = exports.METRIC_INTENT_FAILED_FUNCTION_CALL = exports.METRIC_INTENT_FUNCTION_CALL = exports.METRIC_IDENTITY_CLIENT_SUCCESSFUL_FUNCTION_CALL = exports.METRIC_IDENTITY_CLIENT_FAILED_FUNCTION_CALL = exports.METRIC_IDENTITY_CLIENT_FUNCTION_CALL = exports.METRIC_MATRIX_CLIENT_SUCCESSFUL_FUNCTION_CALL = exports.METRIC_MATRIX_CLIENT_FAILED_FUNCTION_CALL = exports.METRIC_MATRIX_CLIENT_FUNCTION_CALL = void 0;
4
+ /**
5
+ * Time-series metric for how long a function call takes on MatrixClient. Uses a MatrixClientCallContext.
6
+ * @category Metrics
7
+ */
8
+ exports.METRIC_MATRIX_CLIENT_FUNCTION_CALL = "matrix_client_function_call";
9
+ /**
10
+ * Counter metric for failed function calls on a MatrixClient. Uses a MatrixClientCallContext.
11
+ * @category Metrics
12
+ */
13
+ exports.METRIC_MATRIX_CLIENT_FAILED_FUNCTION_CALL = "matrix_client_failed_function_call";
14
+ /**
15
+ * Counter metric for successful function calls on a MatrixClient. Uses a MatrixClientCallContext.
16
+ * @category Metrics
17
+ */
18
+ exports.METRIC_MATRIX_CLIENT_SUCCESSFUL_FUNCTION_CALL = "matrix_client_successful_function_call";
19
+ /**
20
+ * Time-series metric for how long a function call takes on an IdentityClient. Uses an IdentityClientCallContext.
21
+ * @category Metrics
22
+ */
23
+ exports.METRIC_IDENTITY_CLIENT_FUNCTION_CALL = "identity_client_function_call";
24
+ /**
25
+ * Counter metric for failed function calls on an IdentityClient. Uses an IdentityClientCallContext.
26
+ * @category Metrics
27
+ */
28
+ exports.METRIC_IDENTITY_CLIENT_FAILED_FUNCTION_CALL = "identity_client_failed_function_call";
29
+ /**
30
+ * Counter metric for successful function calls on an IdentityClient. Uses an IdentityClientCallContext.
31
+ * @category Metrics
32
+ */
33
+ exports.METRIC_IDENTITY_CLIENT_SUCCESSFUL_FUNCTION_CALL = "identity_client_successful_function_call";
34
+ /**
35
+ * Time-series metric for how long a function call takes on an Intent. Uses a IntentCallContext.
36
+ * @category Metrics
37
+ */
38
+ exports.METRIC_INTENT_FUNCTION_CALL = "intent_function_call";
39
+ /**
40
+ * Counter metric for failed function calls on an Intent. Uses a IntentCallContext.
41
+ * @category Metrics
42
+ */
43
+ exports.METRIC_INTENT_FAILED_FUNCTION_CALL = "intent_failed_function_call";
44
+ /**
45
+ * Counter metric for successful function calls on an Intent. Uses a IntentCallContext.
46
+ * @category Metrics
47
+ */
48
+ exports.METRIC_INTENT_SUCCESSFUL_FUNCTION_CALL = "intent_successful_function_call";
49
+ //# sourceMappingURL=names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"names.js","sourceRoot":"","sources":["../../src/metrics/names.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,kCAAkC,GAAG,6BAA6B,CAAC;AAEhF;;;GAGG;AACU,QAAA,yCAAyC,GAAG,oCAAoC,CAAC;AAE9F;;;GAGG;AACU,QAAA,6CAA6C,GAAG,wCAAwC,CAAC;AAEtG;;;GAGG;AACU,QAAA,oCAAoC,GAAG,+BAA+B,CAAC;AAEpF;;;GAGG;AACU,QAAA,2CAA2C,GAAG,sCAAsC,CAAC;AAElG;;;GAGG;AACU,QAAA,+CAA+C,GAAG,0CAA0C,CAAC;AAE1G;;;GAGG;AACU,QAAA,2BAA2B,GAAG,sBAAsB,CAAC;AAElE;;;GAGG;AACU,QAAA,kCAAkC,GAAG,6BAA6B,CAAC;AAEhF;;;GAGG;AACU,QAAA,sCAAsC,GAAG,iCAAiC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { MatrixClient } from "../MatrixClient";
2
+ import { Appservice } from "../appservice/Appservice";
3
+ /**
4
+ * Automatically accepts invites for rooms
5
+ * @category Mixins
6
+ */
7
+ export declare class AutojoinRoomsMixin {
8
+ static setupOnClient(client: MatrixClient): void;
9
+ static setupOnAppservice(appservice: Appservice, conditional?: (inviteEvent: any) => boolean): void;
10
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutojoinRoomsMixin = void 0;
4
+ /**
5
+ * Automatically accepts invites for rooms
6
+ * @category Mixins
7
+ */
8
+ class AutojoinRoomsMixin {
9
+ static setupOnClient(client) {
10
+ client.on("room.invite", (roomId, inviteEvent) => {
11
+ return client.joinRoom(roomId);
12
+ });
13
+ }
14
+ static setupOnAppservice(appservice, conditional = null) {
15
+ appservice.on("room.invite", (roomId, inviteEvent) => {
16
+ const isFromBot = appservice.botUserId === inviteEvent["sender"];
17
+ if (!isFromBot && conditional && !conditional(inviteEvent))
18
+ return;
19
+ const intent = appservice.getIntentForUserId(inviteEvent["state_key"]);
20
+ return intent.joinRoom(roomId);
21
+ });
22
+ }
23
+ }
24
+ exports.AutojoinRoomsMixin = AutojoinRoomsMixin;
25
+ //# sourceMappingURL=AutojoinRoomsMixin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutojoinRoomsMixin.js","sourceRoot":"","sources":["../../src/mixins/AutojoinRoomsMixin.ts"],"names":[],"mappings":";;;AAGA;;;GAGG;AACH,MAAa,kBAAkB;IACpB,MAAM,CAAC,aAAa,CAAC,MAAoB;QAC5C,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,MAAc,EAAE,WAAgB,EAAE,EAAE;YAC1D,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,UAAsB,EAAE,cAA6C,IAAI;QACrG,UAAU,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,MAAc,EAAE,WAAgB,EAAE,EAAE;YAC9D,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,SAAS,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;gBAAE,OAAO;YAEnE,MAAM,MAAM,GAAG,UAAU,CAAC,kBAAkB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;YACvE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAhBD,gDAgBC"}
@@ -0,0 +1,10 @@
1
+ import { MatrixClient } from "../MatrixClient";
2
+ import { Appservice } from "../appservice/Appservice";
3
+ /**
4
+ * Automatically tries to join upgraded rooms
5
+ * @category Mixins
6
+ */
7
+ export declare class AutojoinUpgradedRoomsMixin {
8
+ static setupOnClient(client: MatrixClient): void;
9
+ static setupOnAppservice(appservice: Appservice): void;
10
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutojoinUpgradedRoomsMixin = void 0;
4
+ /**
5
+ * Automatically tries to join upgraded rooms
6
+ * @category Mixins
7
+ */
8
+ class AutojoinUpgradedRoomsMixin {
9
+ static setupOnClient(client) {
10
+ client.on("room.archived", (roomId, tombstoneEvent) => {
11
+ if (!tombstoneEvent['content'])
12
+ return;
13
+ if (!tombstoneEvent['sender'])
14
+ return;
15
+ if (!tombstoneEvent['content']['replacement_room'])
16
+ return;
17
+ const serverName = tombstoneEvent['sender'].split(':').splice(1).join(':');
18
+ return client.joinRoom(tombstoneEvent['content']['replacement_room'], [serverName]);
19
+ });
20
+ }
21
+ static setupOnAppservice(appservice) {
22
+ appservice.on("room.archived", async (roomId, tombstoneEvent) => {
23
+ if (!tombstoneEvent['content'])
24
+ return;
25
+ if (!tombstoneEvent['sender'])
26
+ return;
27
+ if (!tombstoneEvent['content']['replacement_room'])
28
+ return;
29
+ const newRoomId = tombstoneEvent['content']['replacement_room'];
30
+ const serverName = tombstoneEvent['sender'].split(':').splice(1).join(':');
31
+ const botClient = appservice.botIntent.underlyingClient;
32
+ await botClient.joinRoom(newRoomId, [serverName]);
33
+ const userIds = await botClient.getJoinedRoomMembers(roomId);
34
+ const joinUserIds = userIds.filter(u => u !== appservice.botUserId && appservice.isNamespacedUser(u));
35
+ return await Promise.all(joinUserIds.map(u => appservice.getIntentForUserId(u).joinRoom(newRoomId)));
36
+ });
37
+ }
38
+ }
39
+ exports.AutojoinUpgradedRoomsMixin = AutojoinUpgradedRoomsMixin;
40
+ //# sourceMappingURL=AutojoinUpgradedRoomsMixin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutojoinUpgradedRoomsMixin.js","sourceRoot":"","sources":["../../src/mixins/AutojoinUpgradedRoomsMixin.ts"],"names":[],"mappings":";;;AAGA;;;GAGG;AACH,MAAa,0BAA0B;IAC5B,MAAM,CAAC,aAAa,CAAC,MAAoB;QAC5C,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,MAAc,EAAE,cAAmB,EAAE,EAAE;YAC/D,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;gBAAE,OAAO;YACvC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;gBAAE,OAAO;YACtC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC;gBAAE,OAAO;YAE3D,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3E,OAAO,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,UAAsB;QAClD,UAAU,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,MAAc,EAAE,cAAmB,EAAE,EAAE;YACzE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;gBAAE,OAAO;YACvC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;gBAAE,OAAO;YACtC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC;gBAAE,OAAO;YAE3D,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;YAChE,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3E,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAExD,MAAM,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtG,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACzG,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA7BD,gEA6BC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Response to a `/whoami` request.
3
+ * @category Models
4
+ */
5
+ export interface IWhoAmI {
6
+ user_id: string;
7
+ device_id?: string;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Account.js","sourceRoot":"","sources":["../../src/models/Account.ts"],"names":[],"mappings":""}