@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.
- package/LICENSE +21 -0
- package/README.md +50 -2
- package/lib/AdminApis.d.ts +52 -0
- package/lib/AdminApis.js +29 -0
- package/lib/AdminApis.js.map +1 -0
- package/lib/DMs.d.ts +48 -0
- package/lib/DMs.js +160 -0
- package/lib/DMs.js.map +1 -0
- package/lib/IFilter.d.ts +7 -0
- package/lib/IFilter.js +3 -0
- package/lib/IFilter.js.map +1 -0
- package/lib/MatrixAuth.d.ts +45 -0
- package/lib/MatrixAuth.js +125 -0
- package/lib/MatrixAuth.js.map +1 -0
- package/lib/MatrixClient.d.ts +834 -0
- package/lib/MatrixClient.js +2268 -0
- package/lib/MatrixClient.js.map +1 -0
- package/lib/PantalaimonClient.d.ts +42 -0
- package/lib/PantalaimonClient.js +44 -0
- package/lib/PantalaimonClient.js.map +1 -0
- package/lib/SynapseAdminApis.d.ts +350 -0
- package/lib/SynapseAdminApis.js +244 -0
- package/lib/SynapseAdminApis.js.map +1 -0
- package/lib/SynchronousMatrixClient.d.ts +82 -0
- package/lib/SynchronousMatrixClient.js +130 -0
- package/lib/SynchronousMatrixClient.js.map +1 -0
- package/lib/UnstableApis.d.ts +43 -0
- package/lib/UnstableApis.js +74 -0
- package/lib/UnstableApis.js.map +1 -0
- package/lib/appservice/Appservice.d.ts +328 -0
- package/lib/appservice/Appservice.js +803 -0
- package/lib/appservice/Appservice.js.map +1 -0
- package/lib/appservice/Intent.d.ts +113 -0
- package/lib/appservice/Intent.js +363 -0
- package/lib/appservice/Intent.js.map +1 -0
- package/lib/appservice/MatrixBridge.d.ts +85 -0
- package/lib/appservice/MatrixBridge.js +111 -0
- package/lib/appservice/MatrixBridge.js.map +1 -0
- package/lib/appservice/UnstableAppserviceApis.d.ts +41 -0
- package/lib/appservice/UnstableAppserviceApis.js +62 -0
- package/lib/appservice/UnstableAppserviceApis.js.map +1 -0
- package/lib/appservice/http_responses.d.ts +77 -0
- package/lib/appservice/http_responses.js +3 -0
- package/lib/appservice/http_responses.js.map +1 -0
- package/lib/b64.d.ts +42 -0
- package/lib/b64.js +68 -0
- package/lib/b64.js.map +1 -0
- package/lib/e2ee/CrossSigningBootstrap.d.ts +73 -0
- package/lib/e2ee/CrossSigningBootstrap.js +86 -0
- package/lib/e2ee/CrossSigningBootstrap.js.map +1 -0
- package/lib/e2ee/CryptoClient.d.ts +163 -0
- package/lib/e2ee/CryptoClient.js +382 -0
- package/lib/e2ee/CryptoClient.js.map +1 -0
- package/lib/e2ee/ICryptoRoomInformation.d.ts +8 -0
- package/lib/e2ee/ICryptoRoomInformation.js +3 -0
- package/lib/e2ee/ICryptoRoomInformation.js.map +1 -0
- package/lib/e2ee/RoomTracker.d.ts +41 -0
- package/lib/e2ee/RoomTracker.js +96 -0
- package/lib/e2ee/RoomTracker.js.map +1 -0
- package/lib/e2ee/RustEngine.d.ts +149 -0
- package/lib/e2ee/RustEngine.js +467 -0
- package/lib/e2ee/RustEngine.js.map +1 -0
- package/lib/e2ee/decorators.d.ts +10 -0
- package/lib/e2ee/decorators.js +37 -0
- package/lib/e2ee/decorators.js.map +1 -0
- package/lib/helpers/MatrixEntity.d.ts +37 -0
- package/lib/helpers/MatrixEntity.js +67 -0
- package/lib/helpers/MatrixEntity.js.map +1 -0
- package/lib/helpers/MatrixGlob.d.ts +22 -0
- package/lib/helpers/MatrixGlob.js +35 -0
- package/lib/helpers/MatrixGlob.js.map +1 -0
- package/lib/helpers/MentionPill.d.ts +40 -0
- package/lib/helpers/MentionPill.js +91 -0
- package/lib/helpers/MentionPill.js.map +1 -0
- package/lib/helpers/Permalinks.d.ts +58 -0
- package/lib/helpers/Permalinks.js +73 -0
- package/lib/helpers/Permalinks.js.map +1 -0
- package/lib/helpers/ProfileCache.d.ts +48 -0
- package/lib/helpers/ProfileCache.js +114 -0
- package/lib/helpers/ProfileCache.js.map +1 -0
- package/lib/helpers/RichReply.d.ts +17 -0
- package/lib/helpers/RichReply.js +47 -0
- package/lib/helpers/RichReply.js.map +1 -0
- package/lib/helpers/UnpaddedBase64.d.ts +31 -0
- package/lib/helpers/UnpaddedBase64.js +45 -0
- package/lib/helpers/UnpaddedBase64.js.map +1 -0
- package/lib/http.d.ts +17 -0
- package/lib/http.js +147 -0
- package/lib/http.js.map +1 -0
- package/lib/identity/IdentityClient.d.ts +93 -0
- package/lib/identity/IdentityClient.js +248 -0
- package/lib/identity/IdentityClient.js.map +1 -0
- package/lib/index.d.ts +91 -0
- package/lib/index.js +125 -0
- package/lib/index.js.map +1 -0
- package/lib/logging/ConsoleLogger.d.ts +12 -0
- package/lib/logging/ConsoleLogger.js +28 -0
- package/lib/logging/ConsoleLogger.js.map +1 -0
- package/lib/logging/ILogger.d.ts +36 -0
- package/lib/logging/ILogger.js +3 -0
- package/lib/logging/ILogger.js.map +1 -0
- package/lib/logging/LogService.d.ts +100 -0
- package/lib/logging/LogService.js +169 -0
- package/lib/logging/LogService.js.map +1 -0
- package/lib/logging/RichConsoleLogger.d.ts +20 -0
- package/lib/logging/RichConsoleLogger.js +41 -0
- package/lib/logging/RichConsoleLogger.js.map +1 -0
- package/lib/metrics/IMetricListener.d.ts +52 -0
- package/lib/metrics/IMetricListener.js +3 -0
- package/lib/metrics/IMetricListener.js.map +1 -0
- package/lib/metrics/Metrics.d.ts +66 -0
- package/lib/metrics/Metrics.js +128 -0
- package/lib/metrics/Metrics.js.map +1 -0
- package/lib/metrics/contexts.d.ts +51 -0
- package/lib/metrics/contexts.js +3 -0
- package/lib/metrics/contexts.js.map +1 -0
- package/lib/metrics/decorators.d.ts +15 -0
- package/lib/metrics/decorators.js +92 -0
- package/lib/metrics/decorators.js.map +1 -0
- package/lib/metrics/names.d.ts +45 -0
- package/lib/metrics/names.js +49 -0
- package/lib/metrics/names.js.map +1 -0
- package/lib/mixins/AutojoinRoomsMixin.d.ts +10 -0
- package/lib/mixins/AutojoinRoomsMixin.js +25 -0
- package/lib/mixins/AutojoinRoomsMixin.js.map +1 -0
- package/lib/mixins/AutojoinUpgradedRoomsMixin.d.ts +10 -0
- package/lib/mixins/AutojoinUpgradedRoomsMixin.js +40 -0
- package/lib/mixins/AutojoinUpgradedRoomsMixin.js.map +1 -0
- package/lib/models/Account.d.ts +8 -0
- package/lib/models/Account.js +3 -0
- package/lib/models/Account.js.map +1 -0
- package/lib/models/CreateRoom.d.ts +125 -0
- package/lib/models/CreateRoom.js +3 -0
- package/lib/models/CreateRoom.js.map +1 -0
- package/lib/models/Crypto.d.ts +167 -0
- package/lib/models/Crypto.js +31 -0
- package/lib/models/Crypto.js.map +1 -0
- package/lib/models/EventContext.d.ts +19 -0
- package/lib/models/EventContext.js +3 -0
- package/lib/models/EventContext.js.map +1 -0
- package/lib/models/IdentityServerModels.d.ts +20 -0
- package/lib/models/IdentityServerModels.js +3 -0
- package/lib/models/IdentityServerModels.js.map +1 -0
- package/lib/models/MSC2176.d.ts +42 -0
- package/lib/models/MSC2176.js +3 -0
- package/lib/models/MSC2176.js.map +1 -0
- package/lib/models/MatrixError.d.ts +38 -0
- package/lib/models/MatrixError.js +30 -0
- package/lib/models/MatrixError.js.map +1 -0
- package/lib/models/MatrixProfile.d.ts +43 -0
- package/lib/models/MatrixProfile.js +43 -0
- package/lib/models/MatrixProfile.js.map +1 -0
- package/lib/models/OpenIDConnect.d.ts +10 -0
- package/lib/models/OpenIDConnect.js +3 -0
- package/lib/models/OpenIDConnect.js.map +1 -0
- package/lib/models/Policies.d.ts +25 -0
- package/lib/models/Policies.js +3 -0
- package/lib/models/Policies.js.map +1 -0
- package/lib/models/PowerLevelAction.d.ts +27 -0
- package/lib/models/PowerLevelAction.js +32 -0
- package/lib/models/PowerLevelAction.js.map +1 -0
- package/lib/models/PowerLevelBounds.d.ts +15 -0
- package/lib/models/PowerLevelBounds.js +3 -0
- package/lib/models/PowerLevelBounds.js.map +1 -0
- package/lib/models/Presence.d.ts +25 -0
- package/lib/models/Presence.js +38 -0
- package/lib/models/Presence.js.map +1 -0
- package/lib/models/ServerVersions.d.ts +8 -0
- package/lib/models/ServerVersions.js +3 -0
- package/lib/models/ServerVersions.js.map +1 -0
- package/lib/models/Spaces.d.ts +116 -0
- package/lib/models/Spaces.js +91 -0
- package/lib/models/Spaces.js.map +1 -0
- package/lib/models/Threepid.d.ts +8 -0
- package/lib/models/Threepid.js +3 -0
- package/lib/models/Threepid.js.map +1 -0
- package/lib/models/events/AliasesEvent.d.ts +27 -0
- package/lib/models/events/AliasesEvent.js +27 -0
- package/lib/models/events/AliasesEvent.js.map +1 -0
- package/lib/models/events/CanonicalAliasEvent.d.ts +23 -0
- package/lib/models/events/CanonicalAliasEvent.js +21 -0
- package/lib/models/events/CanonicalAliasEvent.js.map +1 -0
- package/lib/models/events/CreateEvent.d.ts +63 -0
- package/lib/models/events/CreateEvent.js +33 -0
- package/lib/models/events/CreateEvent.js.map +1 -0
- package/lib/models/events/EncryptedRoomEvent.d.ts +42 -0
- package/lib/models/events/EncryptedRoomEvent.js +28 -0
- package/lib/models/events/EncryptedRoomEvent.js.map +1 -0
- package/lib/models/events/EncryptionEvent.d.ts +47 -0
- package/lib/models/events/EncryptionEvent.js +42 -0
- package/lib/models/events/EncryptionEvent.js.map +1 -0
- package/lib/models/events/Event.d.ts +26 -0
- package/lib/models/events/Event.js +40 -0
- package/lib/models/events/Event.js.map +1 -0
- package/lib/models/events/EventKind.d.ts +15 -0
- package/lib/models/events/EventKind.js +20 -0
- package/lib/models/events/EventKind.js.map +1 -0
- package/lib/models/events/InvalidEventError.d.ts +14 -0
- package/lib/models/events/InvalidEventError.js +24 -0
- package/lib/models/events/InvalidEventError.js.map +1 -0
- package/lib/models/events/JoinRulesEvent.d.ts +29 -0
- package/lib/models/events/JoinRulesEvent.js +21 -0
- package/lib/models/events/JoinRulesEvent.js.map +1 -0
- package/lib/models/events/MembershipEvent.d.ts +54 -0
- package/lib/models/events/MembershipEvent.js +49 -0
- package/lib/models/events/MembershipEvent.js.map +1 -0
- package/lib/models/events/MessageEvent.d.ts +233 -0
- package/lib/models/events/MessageEvent.js +49 -0
- package/lib/models/events/MessageEvent.js.map +1 -0
- package/lib/models/events/PinnedEventsEvent.d.ts +23 -0
- package/lib/models/events/PinnedEventsEvent.js +21 -0
- package/lib/models/events/PinnedEventsEvent.js.map +1 -0
- package/lib/models/events/PowerLevelsEvent.d.ts +96 -0
- package/lib/models/events/PowerLevelsEvent.js +70 -0
- package/lib/models/events/PowerLevelsEvent.js.map +1 -0
- package/lib/models/events/PresenceEvent.d.ts +56 -0
- package/lib/models/events/PresenceEvent.js +21 -0
- package/lib/models/events/PresenceEvent.js.map +1 -0
- package/lib/models/events/RedactionEvent.d.ts +28 -0
- package/lib/models/events/RedactionEvent.js +36 -0
- package/lib/models/events/RedactionEvent.js.map +1 -0
- package/lib/models/events/RoomAvatarEvent.d.ts +28 -0
- package/lib/models/events/RoomAvatarEvent.js +21 -0
- package/lib/models/events/RoomAvatarEvent.js.map +1 -0
- package/lib/models/events/RoomEvent.d.ts +58 -0
- package/lib/models/events/RoomEvent.js +57 -0
- package/lib/models/events/RoomEvent.js.map +1 -0
- package/lib/models/events/RoomNameEvent.d.ts +20 -0
- package/lib/models/events/RoomNameEvent.js +21 -0
- package/lib/models/events/RoomNameEvent.js.map +1 -0
- package/lib/models/events/RoomTopicEvent.d.ts +20 -0
- package/lib/models/events/RoomTopicEvent.js +21 -0
- package/lib/models/events/RoomTopicEvent.js.map +1 -0
- package/lib/models/events/SpaceChildEvent.d.ts +53 -0
- package/lib/models/events/SpaceChildEvent.js +49 -0
- package/lib/models/events/SpaceChildEvent.js.map +1 -0
- package/lib/models/events/converter.d.ts +8 -0
- package/lib/models/events/converter.js +50 -0
- package/lib/models/events/converter.js.map +1 -0
- package/lib/models/unstable/MediaInfo.d.ts +16 -0
- package/lib/models/unstable/MediaInfo.js +3 -0
- package/lib/models/unstable/MediaInfo.js.map +1 -0
- package/lib/preprocessors/IPreprocessor.d.ts +22 -0
- package/lib/preprocessors/IPreprocessor.js +3 -0
- package/lib/preprocessors/IPreprocessor.js.map +1 -0
- package/lib/preprocessors/RichRepliesPreprocessor.d.ts +67 -0
- package/lib/preprocessors/RichRepliesPreprocessor.js +112 -0
- package/lib/preprocessors/RichRepliesPreprocessor.js.map +1 -0
- package/lib/request.d.ts +13 -0
- package/lib/request.js +23 -0
- package/lib/request.js.map +1 -0
- package/lib/simple-validation.d.ts +10 -0
- package/lib/simple-validation.js +30 -0
- package/lib/simple-validation.js.map +1 -0
- package/lib/storage/IAppserviceStorageProvider.d.ts +48 -0
- package/lib/storage/IAppserviceStorageProvider.js +3 -0
- package/lib/storage/IAppserviceStorageProvider.js.map +1 -0
- package/lib/storage/ICryptoStorageProvider.d.ts +32 -0
- package/lib/storage/ICryptoStorageProvider.js +3 -0
- package/lib/storage/ICryptoStorageProvider.js.map +1 -0
- package/lib/storage/IStorageProvider.d.ts +47 -0
- package/lib/storage/IStorageProvider.js +3 -0
- package/lib/storage/IStorageProvider.js.map +1 -0
- package/lib/storage/MemoryStorageProvider.d.ts +26 -0
- package/lib/storage/MemoryStorageProvider.js +55 -0
- package/lib/storage/MemoryStorageProvider.js.map +1 -0
- package/lib/storage/RustSdkCryptoStorageProvider.d.ts +38 -0
- package/lib/storage/RustSdkCryptoStorageProvider.js +69 -0
- package/lib/storage/RustSdkCryptoStorageProvider.js.map +1 -0
- package/lib/storage/SimpleFsStorageProvider.d.ts +31 -0
- package/lib/storage/SimpleFsStorageProvider.js +122 -0
- package/lib/storage/SimpleFsStorageProvider.js.map +1 -0
- package/lib/storage/SimplePostgresStorageProvider.d.ts +32 -0
- package/lib/storage/SimplePostgresStorageProvider.js +148 -0
- package/lib/storage/SimplePostgresStorageProvider.js.map +1 -0
- package/lib/strategies/AppserviceJoinRoomStrategy.d.ts +14 -0
- package/lib/strategies/AppserviceJoinRoomStrategy.js +54 -0
- package/lib/strategies/AppserviceJoinRoomStrategy.js.map +1 -0
- package/lib/strategies/JoinRoomStrategy.d.ts +11 -0
- package/lib/strategies/JoinRoomStrategy.js +44 -0
- package/lib/strategies/JoinRoomStrategy.js.map +1 -0
- package/package.json +136 -4
- package/src/AdminApis.ts +60 -0
- package/src/DMs.ts +164 -0
- package/src/IFilter.ts +7 -0
- package/src/MatrixAuth.ts +129 -0
- package/src/MatrixClient.ts +2046 -0
- package/src/PantalaimonClient.ts +62 -0
- package/src/SynapseAdminApis.ts +482 -0
- package/src/SynchronousMatrixClient.ts +129 -0
- package/src/UnstableApis.ts +75 -0
- package/src/appservice/Appservice.ts +1089 -0
- package/src/appservice/Intent.ts +342 -0
- package/src/appservice/MatrixBridge.ts +139 -0
- package/src/appservice/UnstableAppserviceApis.ts +63 -0
- package/src/appservice/http_responses.ts +77 -0
- package/src/b64.ts +63 -0
- package/src/e2ee/CrossSigningBootstrap.ts +141 -0
- package/src/e2ee/CryptoClient.ts +378 -0
- package/src/e2ee/ICryptoRoomInformation.ts +9 -0
- package/src/e2ee/RoomTracker.ts +99 -0
- package/src/e2ee/RustEngine.ts +580 -0
- package/src/e2ee/decorators.ts +38 -0
- package/src/helpers/MatrixEntity.ts +65 -0
- package/src/helpers/MatrixGlob.ts +38 -0
- package/src/helpers/MentionPill.ts +95 -0
- package/src/helpers/Permalinks.ts +101 -0
- package/src/helpers/ProfileCache.ts +119 -0
- package/src/helpers/RichReply.ts +46 -0
- package/src/helpers/UnpaddedBase64.ts +44 -0
- package/src/http.ts +166 -0
- package/src/identity/IdentityClient.ts +225 -0
- package/src/index.ts +125 -0
- package/src/logging/ConsoleLogger.ts +31 -0
- package/src/logging/ILogger.ts +40 -0
- package/src/logging/LogService.ts +167 -0
- package/src/logging/RichConsoleLogger.ts +70 -0
- package/src/metrics/IMetricListener.ts +57 -0
- package/src/metrics/Metrics.ts +134 -0
- package/src/metrics/contexts.ts +56 -0
- package/src/metrics/decorators.ts +94 -0
- package/src/metrics/names.ts +53 -0
- package/src/mixins/AutojoinRoomsMixin.ts +24 -0
- package/src/mixins/AutojoinUpgradedRoomsMixin.ts +37 -0
- package/src/models/Account.ts +8 -0
- package/src/models/CreateRoom.ts +144 -0
- package/src/models/Crypto.ts +188 -0
- package/src/models/EventContext.ts +23 -0
- package/src/models/IdentityServerModels.ts +18 -0
- package/src/models/MSC2176.ts +47 -0
- package/src/models/MatrixError.ts +39 -0
- package/src/models/MatrixProfile.ts +55 -0
- package/src/models/OpenIDConnect.ts +10 -0
- package/src/models/Policies.ts +28 -0
- package/src/models/PowerLevelAction.ts +31 -0
- package/src/models/PowerLevelBounds.ts +16 -0
- package/src/models/Presence.ts +38 -0
- package/src/models/ServerVersions.ts +8 -0
- package/src/models/Spaces.ts +167 -0
- package/src/models/Threepid.ts +8 -0
- package/src/models/events/AliasesEvent.ts +37 -0
- package/src/models/events/CanonicalAliasEvent.ts +30 -0
- package/src/models/events/CreateEvent.ts +82 -0
- package/src/models/events/EncryptedRoomEvent.ts +58 -0
- package/src/models/events/EncryptionEvent.ts +63 -0
- package/src/models/events/Event.ts +38 -0
- package/src/models/events/EventKind.ts +16 -0
- package/src/models/events/InvalidEventError.ts +19 -0
- package/src/models/events/JoinRulesEvent.ts +37 -0
- package/src/models/events/MembershipEvent.ts +77 -0
- package/src/models/events/MessageEvent.ts +292 -0
- package/src/models/events/PinnedEventsEvent.ts +30 -0
- package/src/models/events/PowerLevelsEvent.ts +135 -0
- package/src/models/events/PresenceEvent.ts +69 -0
- package/src/models/events/RedactionEvent.ts +44 -0
- package/src/models/events/RoomAvatarEvent.ts +36 -0
- package/src/models/events/RoomEvent.ts +83 -0
- package/src/models/events/RoomNameEvent.ts +27 -0
- package/src/models/events/RoomTopicEvent.ts +27 -0
- package/src/models/events/SpaceChildEvent.ts +74 -0
- package/src/models/events/_MissingEvents.md +35 -0
- package/src/models/events/converter.ts +47 -0
- package/src/models/unstable/MediaInfo.ts +16 -0
- package/src/preprocessors/IPreprocessor.ts +24 -0
- package/src/preprocessors/RichRepliesPreprocessor.ts +159 -0
- package/src/request.ts +21 -0
- package/src/simple-validation.ts +30 -0
- package/src/storage/IAppserviceStorageProvider.ts +54 -0
- package/src/storage/ICryptoStorageProvider.ts +36 -0
- package/src/storage/IStorageProvider.ts +53 -0
- package/src/storage/MemoryStorageProvider.ts +65 -0
- package/src/storage/RustSdkCryptoStorageProvider.ts +81 -0
- package/src/storage/SimpleFsStorageProvider.ts +142 -0
- package/src/storage/SimplePostgresStorageProvider.ts +168 -0
- package/src/strategies/AppserviceJoinRoomStrategy.ts +47 -0
- package/src/strategies/JoinRoomStrategy.ts +45 -0
- 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":";;;;;;;;;;;;AAAA,0BASY;AAEZ,2CAA2C;AAC3C,sDAAgE;AAChE,qEAAkE;AAClE,uDAAoD;AAEpD;;;;;;GAMG;AACH,MAAa,MAAM;IAgBf;;;;;OAKG;IACH,YAAoB,OAA2B,EAAU,iBAAyB,EAAU,UAAsB;QAA9F,YAAO,GAAP,OAAO,CAAoB;QAAU,sBAAiB,GAAjB,iBAAiB,CAAQ;QAAU,eAAU,GAAV,UAAU,CAAY;QAT1G,qBAAgB,GAAa,EAAE,CAAC;QAUpC,IAAI,CAAC,OAAO,GAAG,IAAI,WAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAEO,UAAU,CAAC,UAAmB,EAAE,WAAoB;QACxD,IAAI,WAAmC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,UAAU,EAAE,CAAC;YACb,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;YAC7E,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;YACrF,CAAC;QACL,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACpI,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,WAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAmC;QAC/F,IAAI,CAAC,oBAAoB,GAAG,IAAI,+CAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IAED;;;OAGG;IAEU,AAAN,KAAK,CAAC,gBAAgB;QACzB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC3B,qDAAqD;YACrD,IAAI,CAAC,kBAAkB,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC5D,IAAI,CAAC;oBACD,yBAAyB;oBACzB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC5D,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,mCAAmC;oBAE/E,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACpE,IAAI,CAAC,WAAW,EAAE,CAAC;wBACf,wCAAwC;wBACxC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;oBACrD,CAAC;oBAED,iCAAiC;oBACjC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;oBACrD,IAAI,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;oBAC/C,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,EAAE,CAAC;wBAC/D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;wBACnE,MAAM,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBAC3D,IAAI,cAAc,EAAE,CAAC;4BACjB,6EAA6E;4BAC7E,4EAA4E;4BAC5E,0DAA0D;4BAC1D,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;iCAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,sBAAkB,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;iCAC3G,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B;4BACjD,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC;wBACvF,CAAC;oBACL,CAAC;oBACD,IAAI,QAAQ,GAAG,KAAK,CAAC;oBACrB,IAAI,QAAQ,EAAE,CAAC;wBACX,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;wBACtB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;wBAErD,2DAA2D;wBAC3D,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC;wBAC/D,QAAQ,GAAG,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC;oBAC3C,CAAC;oBAED,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACZ,yEAAyE;wBACzE,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;wBAC7E,IAAI,CAAC,WAAW,EAAE,CAAC;4BACf,MAAM,SAAS,GAAG;gCACd,IAAI,EAAE,6BAA6B;gCACnC,UAAU,EAAE;oCACR,IAAI,EAAE,WAAW;oCACjB,IAAI,EAAE,IAAI,CAAC,MAAM;iCACpB;6BACJ,CAAC;4BACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,0BAA0B,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;4BAC3F,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;4BAC3C,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;4BAC3D,QAAQ,GAAG,IAAI,CAAC;wBACpB,CAAC;6BAAM,CAAC;4BACJ,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;4BACnC,QAAQ,GAAG,IAAI,CAAC;wBACpB,CAAC;oBACL,CAAC;oBAED,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA,wCAAwC;wBACpD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;oBACvD,CAAC;oBAED,oBAAoB;oBACpB,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;oBAElE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;wBAC/C,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC;4BAAE,OAAO;wBACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBAClD,CAAC,CAAC,CAAC;oBAEH,OAAO,EAAE,CAAC;gBACd,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,MAAM,CAAC,CAAC,CAAC,CAAC;gBACd,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IAEU,AAAN,KAAK,CAAC,cAAc;QACvB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;IACtD,CAAC;IAED;;;;;OAKG;IAEU,AAAN,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,MAAe;QAClD,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACzD,sDAAsD;YACtD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IAEU,AAAN,KAAK,CAAC,QAAQ,CAAC,aAAqB;QACvC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;YAC3D,wDAAwD;YACxD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChC,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IAEU,AAAN,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,IAAY,EAAE,UAA6C,QAAQ;QACrG,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IAEU,AAAN,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,OAAY;QAC/C,MAAM,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IAEU,AAAN,KAAK,CAAC,yBAAyB,CAAC,MAAc;QACjD,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IAEU,AAAN,KAAK,CAAC,YAAY,CAAC,MAAc;QACpC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO;QACX,CAAC;QAED,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO;QACX,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IAEU,AAAN,KAAK,CAAC,kBAAkB;QAC3B,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;IACtD,CAAC;IAED;;;;OAIG;IAEU,AAAN,KAAK,CAAC,gBAAgB,CAAC,QAAiB;QAC3C,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,6BAA6B,EAAE,IAAI,EAAE;oBACpF,IAAI,EAAE,6BAA6B;oBACnC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAChD,SAAS,EAAE,QAAQ;iBACtB,CAAC,CAAC;gBAEH,kCAAkC;gBAClC,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;oBACpB,wCAAwC;oBACxC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,uCAAuC;gBACnE,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,IAAI,GAAG,YAAY,yBAAW,IAAI,GAAG,CAAC,OAAO,KAAK,eAAe,EAAE,CAAC;oBAChE,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBACnE,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;wBAC5C,OAAO,IAAI,CAAC;oBAChB,CAAC;yBAAM,CAAC;wBACJ,cAAU,CAAC,KAAK,CAAC,YAAY,EAAE,2CAA2C,CAAC,CAAC;wBAC5E,OAAO,IAAI,CAAC;oBAChB,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,cAAU,CAAC,KAAK,CAAC,YAAY,EAAE,sCAAsC,CAAC,CAAC;oBACvE,cAAU,CAAC,KAAK,CAAC,YAAY,EAAE,IAAA,uBAAmB,EAAC,GAAG,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBACD,MAAM,GAAG,CAAC;YACd,CAAC;YAED,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;CACJ;AA9TD,wBA8TC;AA9OgB;IADZ,IAAA,oCAAuB,GAAE;;;;8CAmFzB;AASY;IADZ,IAAA,oCAAuB,GAAE;;;;4CAKzB;AASY;IADZ,IAAA,oCAAuB,GAAE;;;;uCAOzB;AAQY;IADZ,IAAA,oCAAuB,GAAE;;;;sCAQzB;AAUY;IADZ,IAAA,oCAAuB,GAAE;;;;sCAGzB;AASY;IADZ,IAAA,oCAAuB,GAAE;;;;uCAIzB;AAQY;IADZ,IAAA,oCAAuB,GAAE;;;;uDAIzB;AAQY;IADZ,IAAA,oCAAuB,GAAE;;;;0CAiBzB;AAQY;IADZ,IAAA,oCAAuB,GAAE;;;;gDAIzB;AAQY;IADZ,IAAA,oCAAuB,GAAE;;;;8CAmCzB"}
|
|
@@ -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
|
+
}
|