@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,328 @@
|
|
|
1
|
+
import { EventEmitter } from "events";
|
|
2
|
+
import { Intent } from "./Intent";
|
|
3
|
+
import { IAppserviceCryptoStorageProvider, IAppserviceStorageProvider, IJoinRoomStrategy, IPreprocessor, MatrixClient, Metrics } from "..";
|
|
4
|
+
import { MatrixBridge } from "./MatrixBridge";
|
|
5
|
+
/**
|
|
6
|
+
* Represents an application service's registration file. This is expected to be
|
|
7
|
+
* loaded from another source, such as a YAML file.
|
|
8
|
+
* @category Application services
|
|
9
|
+
*/
|
|
10
|
+
export interface IAppserviceRegistration {
|
|
11
|
+
/**
|
|
12
|
+
* Optional ID for the appplication service. Used by homeservers to track which application
|
|
13
|
+
* service registers what.
|
|
14
|
+
*/
|
|
15
|
+
id?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Optional URL at which the application service can be contacted.
|
|
18
|
+
*/
|
|
19
|
+
url?: string;
|
|
20
|
+
/**
|
|
21
|
+
* The token the application service uses to communicate with the homeserver.
|
|
22
|
+
*/
|
|
23
|
+
as_token: string;
|
|
24
|
+
/**
|
|
25
|
+
* The token the homeserver uses to communicate with the application service.
|
|
26
|
+
*/
|
|
27
|
+
hs_token: string;
|
|
28
|
+
/**
|
|
29
|
+
* The application service's own localpart (eg: "_irc_bot" in the user ID "@_irc_bot:domain.com")
|
|
30
|
+
*/
|
|
31
|
+
sender_localpart: string;
|
|
32
|
+
/**
|
|
33
|
+
* The various namespaces the application service can support.
|
|
34
|
+
*/
|
|
35
|
+
namespaces: {
|
|
36
|
+
/**
|
|
37
|
+
* The user namespaces the application service is requesting.
|
|
38
|
+
*/
|
|
39
|
+
users: {
|
|
40
|
+
/**
|
|
41
|
+
* Whether or not the application service holds an exclusive lock on the namespace. This
|
|
42
|
+
* means that no other user on the homeserver may register users that match this namespace.
|
|
43
|
+
*/
|
|
44
|
+
exclusive: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* The regular expression that the homeserver uses to determine if a user is in this namespace.
|
|
47
|
+
*/
|
|
48
|
+
regex: string;
|
|
49
|
+
}[];
|
|
50
|
+
/**
|
|
51
|
+
* The room namespaces the application service is requesting. This is not for alises.
|
|
52
|
+
*/
|
|
53
|
+
rooms: {
|
|
54
|
+
/**
|
|
55
|
+
* Whether or not the application service holds an exclusive lock on the namespace.
|
|
56
|
+
*/
|
|
57
|
+
exclusive: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* The regular expression that the homeserver uses to determine if a user is in this namespace.
|
|
60
|
+
*/
|
|
61
|
+
regex: string;
|
|
62
|
+
}[];
|
|
63
|
+
/**
|
|
64
|
+
* The room alias namespaces the application service is requesting.
|
|
65
|
+
*/
|
|
66
|
+
aliases: {
|
|
67
|
+
/**
|
|
68
|
+
* Whether or not the application service holds an exclusive lock on the namespace. This means
|
|
69
|
+
* that no other user on the homeserver may register aliases that match this namespace.
|
|
70
|
+
*/
|
|
71
|
+
exclusive: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* The regular expression that the homeserver uses to determine if an alias is in this namespace.
|
|
74
|
+
*/
|
|
75
|
+
regex: string;
|
|
76
|
+
}[];
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* The protocols the application service supports. Optional.
|
|
80
|
+
*/
|
|
81
|
+
protocols?: string[];
|
|
82
|
+
/**
|
|
83
|
+
* If the application service is rate limited by the homeserver. Optional.
|
|
84
|
+
*/
|
|
85
|
+
rate_limited?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* **Experimental**
|
|
88
|
+
*
|
|
89
|
+
* Should the application service receive ephemeral events from the homeserver. Optional.
|
|
90
|
+
* @see https://github.com/matrix-org/matrix-doc/pull/2409
|
|
91
|
+
*/
|
|
92
|
+
"de.sorunome.msc2409.push_ephemeral"?: boolean;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* General options for the application service
|
|
96
|
+
* @category Application services
|
|
97
|
+
*/
|
|
98
|
+
export interface IAppserviceOptions {
|
|
99
|
+
/**
|
|
100
|
+
* The port to listen for requests from the homeserver on.
|
|
101
|
+
*/
|
|
102
|
+
port: number;
|
|
103
|
+
/**
|
|
104
|
+
* The bind address to listen for requests on.
|
|
105
|
+
*/
|
|
106
|
+
bindAddress: string;
|
|
107
|
+
/**
|
|
108
|
+
* The name of the homeserver, as presented over federation (eg: "matrix.org")
|
|
109
|
+
*/
|
|
110
|
+
homeserverName: string;
|
|
111
|
+
/**
|
|
112
|
+
* The URL to the homeserver's client server API (eg: "https://matrix.org")
|
|
113
|
+
*/
|
|
114
|
+
homeserverUrl: string;
|
|
115
|
+
/**
|
|
116
|
+
* The storage provider to use for this application service.
|
|
117
|
+
*/
|
|
118
|
+
storage?: IAppserviceStorageProvider;
|
|
119
|
+
/**
|
|
120
|
+
* The storage provider to use for setting up encryption. Encryption will be
|
|
121
|
+
* disabled for all intents and the appservice if not configured.
|
|
122
|
+
*/
|
|
123
|
+
cryptoStorage?: IAppserviceCryptoStorageProvider;
|
|
124
|
+
/**
|
|
125
|
+
* The registration for this application service.
|
|
126
|
+
*/
|
|
127
|
+
registration: IAppserviceRegistration;
|
|
128
|
+
/**
|
|
129
|
+
* The join strategy to use for all intents, if any.
|
|
130
|
+
*/
|
|
131
|
+
joinStrategy?: IJoinRoomStrategy;
|
|
132
|
+
/**
|
|
133
|
+
* Options for how Intents are handled.
|
|
134
|
+
*/
|
|
135
|
+
intentOptions?: {
|
|
136
|
+
/**
|
|
137
|
+
* The maximum number of intents to keep cached. Defaults to 10 thousand.
|
|
138
|
+
*/
|
|
139
|
+
maxCached?: number;
|
|
140
|
+
/**
|
|
141
|
+
* The maximum age in milliseconds to keep an Intent around for, provided
|
|
142
|
+
* the maximum number of intents has been reached. Defaults to 60 minutes.
|
|
143
|
+
*/
|
|
144
|
+
maxAgeMs?: number;
|
|
145
|
+
/**
|
|
146
|
+
* If false (default), crypto will not be automatically set up for all intent
|
|
147
|
+
* instances - it will need to be manually enabled with
|
|
148
|
+
* `await intent.enableEncryption()`.
|
|
149
|
+
*
|
|
150
|
+
* If true, crypto will be automatically set up.
|
|
151
|
+
*
|
|
152
|
+
* Note that the appservice bot account is considered an intent.
|
|
153
|
+
*/
|
|
154
|
+
encryption?: boolean;
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Represents an application service. This provides helper utilities such as tracking
|
|
159
|
+
* of user intents (clients that are aware of their membership in rooms).
|
|
160
|
+
* @category Application services
|
|
161
|
+
*/
|
|
162
|
+
export declare class Appservice extends EventEmitter {
|
|
163
|
+
private options;
|
|
164
|
+
/**
|
|
165
|
+
* The metrics instance for this appservice. This will raise all metrics
|
|
166
|
+
* from this appservice instance as well as any intents/MatrixClients created
|
|
167
|
+
* by the appservice.
|
|
168
|
+
*/
|
|
169
|
+
readonly metrics: Metrics;
|
|
170
|
+
private readonly userPrefix;
|
|
171
|
+
private readonly aliasPrefix;
|
|
172
|
+
private readonly registration;
|
|
173
|
+
private readonly storage;
|
|
174
|
+
private readonly cryptoStorage;
|
|
175
|
+
private readonly bridgeInstance;
|
|
176
|
+
private app;
|
|
177
|
+
private appServer;
|
|
178
|
+
private intentsCache;
|
|
179
|
+
private eventProcessors;
|
|
180
|
+
private pendingTransactions;
|
|
181
|
+
/**
|
|
182
|
+
* Creates a new application service.
|
|
183
|
+
* @param {IAppserviceOptions} options The options for the application service.
|
|
184
|
+
*/
|
|
185
|
+
constructor(options: IAppserviceOptions);
|
|
186
|
+
/**
|
|
187
|
+
* Gets the express app instance which is serving requests. Not recommended for
|
|
188
|
+
* general usage, but may be used to append routes to the web server.
|
|
189
|
+
*/
|
|
190
|
+
get expressAppInstance(): import("express-serve-static-core").Express;
|
|
191
|
+
/**
|
|
192
|
+
* Gets the bridge-specific APIs for this application service.
|
|
193
|
+
*/
|
|
194
|
+
get bridge(): MatrixBridge;
|
|
195
|
+
/**
|
|
196
|
+
* Get the application service's "bot" user ID (the sender_localpart).
|
|
197
|
+
*/
|
|
198
|
+
get botUserId(): string;
|
|
199
|
+
/**
|
|
200
|
+
* Get the application service's "bot" Intent (the sender_localpart).
|
|
201
|
+
* @returns {Intent} The intent for the application service itself.
|
|
202
|
+
*/
|
|
203
|
+
get botIntent(): Intent;
|
|
204
|
+
/**
|
|
205
|
+
* Get the application service's "bot" MatrixClient (the sender_localpart).
|
|
206
|
+
* Normally the botIntent should be used to ensure that the bot user is safely
|
|
207
|
+
* handled.
|
|
208
|
+
* @returns {MatrixClient} The client for the application service itself.
|
|
209
|
+
*/
|
|
210
|
+
get botClient(): MatrixClient;
|
|
211
|
+
/**
|
|
212
|
+
* Starts the application service, opening the bind address to begin processing requests.
|
|
213
|
+
* @returns {Promise<void>} resolves when started
|
|
214
|
+
*/
|
|
215
|
+
begin(): Promise<void>;
|
|
216
|
+
/**
|
|
217
|
+
* Stops the application service, freeing the web server.
|
|
218
|
+
*/
|
|
219
|
+
stop(): void;
|
|
220
|
+
/**
|
|
221
|
+
* Gets an intent for a given localpart. The user ID will be formed with the domain name given
|
|
222
|
+
* in the constructor.
|
|
223
|
+
* @param localpart The localpart to get an Intent for.
|
|
224
|
+
* @returns {Intent} An Intent for the user.
|
|
225
|
+
*/
|
|
226
|
+
getIntent(localpart: string): Intent;
|
|
227
|
+
/**
|
|
228
|
+
* Gets a full user ID for a given localpart. The user ID will be formed with the domain name given
|
|
229
|
+
* in the constructor.
|
|
230
|
+
* @param localpart The localpart to get a user ID for.
|
|
231
|
+
* @returns {string} The user's ID.
|
|
232
|
+
*/
|
|
233
|
+
getUserId(localpart: string): string;
|
|
234
|
+
/**
|
|
235
|
+
* Gets an Intent for a given user suffix. The prefix is automatically detected from the registration
|
|
236
|
+
* options.
|
|
237
|
+
* @param suffix The user's suffix
|
|
238
|
+
* @returns {Intent} An Intent for the user.
|
|
239
|
+
*/
|
|
240
|
+
getIntentForSuffix(suffix: string): Intent;
|
|
241
|
+
/**
|
|
242
|
+
* Gets a full user ID for a given suffix. The prefix is automatically detected from the registration
|
|
243
|
+
* options.
|
|
244
|
+
* @param suffix The user's suffix
|
|
245
|
+
* @returns {string} The user's ID.
|
|
246
|
+
*/
|
|
247
|
+
getUserIdForSuffix(suffix: string): string;
|
|
248
|
+
/**
|
|
249
|
+
* Gets an Intent for a given user ID.
|
|
250
|
+
* @param {string} userId The user ID to get an Intent for.
|
|
251
|
+
* @returns {Intent} An Intent for the user.
|
|
252
|
+
*/
|
|
253
|
+
getIntentForUserId(userId: string): Intent;
|
|
254
|
+
/**
|
|
255
|
+
* Gets the suffix for the provided user ID. If the user ID is not a namespaced
|
|
256
|
+
* user, this will return a falsey value.
|
|
257
|
+
* @param {string} userId The user ID to parse
|
|
258
|
+
* @returns {string} The suffix from the user ID.
|
|
259
|
+
*/
|
|
260
|
+
getSuffixForUserId(userId: string): string;
|
|
261
|
+
/**
|
|
262
|
+
* Determines if a given user ID is namespaced by this application service.
|
|
263
|
+
* @param {string} userId The user ID to check
|
|
264
|
+
* @returns {boolean} true if the user is namespaced, false otherwise
|
|
265
|
+
*/
|
|
266
|
+
isNamespacedUser(userId: string): boolean;
|
|
267
|
+
/**
|
|
268
|
+
* Gets a full alias for a given localpart. The alias will be formed with the domain name given
|
|
269
|
+
* in the constructor.
|
|
270
|
+
* @param localpart The localpart to get an alias for.
|
|
271
|
+
* @returns {string} The alias.
|
|
272
|
+
*/
|
|
273
|
+
getAlias(localpart: string): string;
|
|
274
|
+
/**
|
|
275
|
+
* Gets a full alias for a given suffix. The prefix is automatically detected from the registration
|
|
276
|
+
* options.
|
|
277
|
+
* @param suffix The alias's suffix
|
|
278
|
+
* @returns {string} The alias.
|
|
279
|
+
*/
|
|
280
|
+
getAliasForSuffix(suffix: string): string;
|
|
281
|
+
/**
|
|
282
|
+
* Gets the localpart of an alias for a given suffix. The prefix is automatically detected from the registration
|
|
283
|
+
* options. Useful for the createRoom endpoint.
|
|
284
|
+
* @param suffix The alias's suffix
|
|
285
|
+
* @returns {string} The alias localpart.
|
|
286
|
+
*/
|
|
287
|
+
getAliasLocalpartForSuffix(suffix: string): string;
|
|
288
|
+
/**
|
|
289
|
+
* Gets the suffix for the provided alias. If the alias is not a namespaced
|
|
290
|
+
* alias, this will return a falsey value.
|
|
291
|
+
* @param {string} alias The alias to parse
|
|
292
|
+
* @returns {string} The suffix from the alias.
|
|
293
|
+
*/
|
|
294
|
+
getSuffixForAlias(alias: string): string;
|
|
295
|
+
/**
|
|
296
|
+
* Determines if a given alias is namespaced by this application service.
|
|
297
|
+
* @param {string} alias The alias to check
|
|
298
|
+
* @returns {boolean} true if the alias is namespaced, false otherwise
|
|
299
|
+
*/
|
|
300
|
+
isNamespacedAlias(alias: string): boolean;
|
|
301
|
+
/**
|
|
302
|
+
* Adds a preprocessor to the event pipeline. When this appservice encounters an event, it
|
|
303
|
+
* will try to run it through the preprocessors it can in the order they were added.
|
|
304
|
+
* @param {IPreprocessor} preprocessor the preprocessor to add
|
|
305
|
+
*/
|
|
306
|
+
addPreprocessor(preprocessor: IPreprocessor): void;
|
|
307
|
+
/**
|
|
308
|
+
* Sets the visibility of a room in the appservice's room directory.
|
|
309
|
+
* @param {string} networkId The network ID to group the room under.
|
|
310
|
+
* @param {string} roomId The room ID to manipulate the visibility of.
|
|
311
|
+
* @param {"public" | "private"} visibility The visibility to set for the room.
|
|
312
|
+
* @return {Promise<any>} resolves when the visibility has been updated.
|
|
313
|
+
*/
|
|
314
|
+
setRoomDirectoryVisibility(networkId: string, roomId: string, visibility: "public" | "private"): Promise<any>;
|
|
315
|
+
private processEphemeralEvent;
|
|
316
|
+
private processEvent;
|
|
317
|
+
private processMembershipEvent;
|
|
318
|
+
private isAuthed;
|
|
319
|
+
private onTransaction;
|
|
320
|
+
private onUser;
|
|
321
|
+
private onRoomAlias;
|
|
322
|
+
private onKeysClaim;
|
|
323
|
+
private onKeysQuery;
|
|
324
|
+
private onThirdpartyProtocol;
|
|
325
|
+
private handleThirdpartyObject;
|
|
326
|
+
private onThirdpartyUser;
|
|
327
|
+
private onThirdpartyLocation;
|
|
328
|
+
}
|