@ixo/matrix 1.1.0
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/README.md +396 -0
- package/dist/src/checkpointer/checkpointer.d.ts +56 -0
- package/dist/src/checkpointer/checkpointer.d.ts.map +1 -0
- package/dist/src/checkpointer/checkpointer.js +669 -0
- package/dist/src/checkpointer/checkpointer.js.map +1 -0
- package/dist/src/checkpointer/index.d.ts +3 -0
- package/dist/src/checkpointer/index.d.ts.map +1 -0
- package/dist/src/checkpointer/index.js +3 -0
- package/dist/src/checkpointer/index.js.map +1 -0
- package/dist/src/checkpointer/types.d.ts +66 -0
- package/dist/src/checkpointer/types.d.ts.map +1 -0
- package/dist/src/checkpointer/types.js +2 -0
- package/dist/src/checkpointer/types.js.map +1 -0
- package/dist/src/checkpointer/utils.d.ts +2 -0
- package/dist/src/checkpointer/utils.d.ts.map +1 -0
- package/dist/src/checkpointer/utils.js +15 -0
- package/dist/src/checkpointer/utils.js.map +1 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +5 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/matrix-manager.d.ts +61 -0
- package/dist/src/matrix-manager.d.ts.map +1 -0
- package/dist/src/matrix-manager.js +337 -0
- package/dist/src/matrix-manager.js.map +1 -0
- package/dist/src/matrix-state-manager/index.d.ts +2 -0
- package/dist/src/matrix-state-manager/index.d.ts.map +1 -0
- package/dist/src/matrix-state-manager/index.js +2 -0
- package/dist/src/matrix-state-manager/index.js.map +1 -0
- package/dist/src/matrix-state-manager/matrix-state-manager.d.ts +22 -0
- package/dist/src/matrix-state-manager/matrix-state-manager.d.ts.map +1 -0
- package/dist/src/matrix-state-manager/matrix-state-manager.js +172 -0
- package/dist/src/matrix-state-manager/matrix-state-manager.js.map +1 -0
- package/dist/src/types/matrix.d.ts +27 -0
- package/dist/src/types/matrix.d.ts.map +1 -0
- package/dist/src/types/matrix.js +2 -0
- package/dist/src/types/matrix.js.map +1 -0
- package/dist/src/types.d.ts +64 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +55 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils/cache.d.ts +13 -0
- package/dist/src/utils/cache.d.ts.map +1 -0
- package/dist/src/utils/cache.js +44 -0
- package/dist/src/utils/cache.js.map +1 -0
- package/dist/src/utils/create-simple-matrix-client.d.ts +45 -0
- package/dist/src/utils/create-simple-matrix-client.d.ts.map +1 -0
- package/dist/src/utils/create-simple-matrix-client.js +269 -0
- package/dist/src/utils/create-simple-matrix-client.js.map +1 -0
- package/dist/src/utils/format-msg.d.ts +13 -0
- package/dist/src/utils/format-msg.d.ts.map +1 -0
- package/dist/src/utils/format-msg.js +14 -0
- package/dist/src/utils/format-msg.js.map +1 -0
- package/dist/src/utils/login.d.ts +3 -0
- package/dist/src/utils/login.d.ts.map +1 -0
- package/dist/src/utils/login.js +10 -0
- package/dist/src/utils/login.js.map +1 -0
- package/dist/src/utils/mx.d.ts +7 -0
- package/dist/src/utils/mx.d.ts.map +1 -0
- package/dist/src/utils/mx.js +58 -0
- package/dist/src/utils/mx.js.map +1 -0
- package/dist/src/utils/secretStorageKeys.d.ts +10 -0
- package/dist/src/utils/secretStorageKeys.d.ts.map +1 -0
- package/dist/src/utils/secretStorageKeys.js +33 -0
- package/dist/src/utils/secretStorageKeys.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { Logger } from '@ixo/logger';
|
|
2
|
+
import { AutojoinRoomsMixin, LogService, MatrixClient, MessageEvent, RustSdkCryptoStorageProvider, SimpleFsStorageProvider, UserID, } from 'matrix-bot-sdk';
|
|
3
|
+
import * as path from 'node:path';
|
|
4
|
+
import { createMatrixClient } from './mx.js';
|
|
5
|
+
export class SimpleMatrixClient {
|
|
6
|
+
mxClient;
|
|
7
|
+
userId;
|
|
8
|
+
displayName;
|
|
9
|
+
localpart;
|
|
10
|
+
homeServerName;
|
|
11
|
+
storage;
|
|
12
|
+
cryptoStore;
|
|
13
|
+
config;
|
|
14
|
+
isStarted = false;
|
|
15
|
+
constructor(config) {
|
|
16
|
+
this.config = config;
|
|
17
|
+
this.prepareStorage();
|
|
18
|
+
this.prepareCryptoStorage();
|
|
19
|
+
this.createClient();
|
|
20
|
+
this.extraConfig(config.autoJoin ?? true);
|
|
21
|
+
}
|
|
22
|
+
async prepareProfile() {
|
|
23
|
+
this.userId = await this.mxClient.getUserId();
|
|
24
|
+
const userId = new UserID(this.userId);
|
|
25
|
+
this.localpart = userId.localpart;
|
|
26
|
+
this.homeServerName = userId.domain;
|
|
27
|
+
try {
|
|
28
|
+
const profile = await this.mxClient.getUserProfile(this.userId);
|
|
29
|
+
if (profile?.displayname) {
|
|
30
|
+
this.displayName = profile.displayname;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch (e) {
|
|
34
|
+
LogService.warn('Matrix Client prepareProfile', e);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
prepareStorage() {
|
|
38
|
+
const storagePath = this.config.storagePath || './matrix-storage';
|
|
39
|
+
this.storage = new SimpleFsStorageProvider(path.join(storagePath, 'bot.json'));
|
|
40
|
+
}
|
|
41
|
+
prepareCryptoStorage() {
|
|
42
|
+
const storagePath = this.config.storagePath || './matrix-storage';
|
|
43
|
+
this.cryptoStore = new RustSdkCryptoStorageProvider(path.join(storagePath, 'encrypted'));
|
|
44
|
+
}
|
|
45
|
+
createClient() {
|
|
46
|
+
if (!this.storage)
|
|
47
|
+
throw new Error('Storage not prepared');
|
|
48
|
+
this.mxClient = new MatrixClient(this.config.baseUrl, this.config.accessToken, this.storage, this.cryptoStore);
|
|
49
|
+
}
|
|
50
|
+
extraConfig(autoJoin) {
|
|
51
|
+
if (autoJoin) {
|
|
52
|
+
AutojoinRoomsMixin.setupOnClient(this.mxClient);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async start() {
|
|
56
|
+
if (this.isStarted) {
|
|
57
|
+
Logger.warn('Matrix client already started');
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
Logger.info('🚀 Starting matrix-bot-sdk client...');
|
|
62
|
+
await this.prepareProfile();
|
|
63
|
+
await this.mxClient.start();
|
|
64
|
+
await this.setupCrossSigning({
|
|
65
|
+
mxUserId: await this.mxClient.getUserId(),
|
|
66
|
+
deviceId: this.mxClient.crypto.clientDeviceId,
|
|
67
|
+
});
|
|
68
|
+
this.isStarted = true;
|
|
69
|
+
Logger.info('✅ Matrix client started successfully!');
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
Logger.error('❌ Failed to start matrix client:', error);
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async stop() {
|
|
77
|
+
if (!this.isStarted)
|
|
78
|
+
return;
|
|
79
|
+
try {
|
|
80
|
+
await this.mxClient.stop();
|
|
81
|
+
this.isStarted = false;
|
|
82
|
+
Logger.info('✅ Matrix client stopped');
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
Logger.error('❌ Failed to stop matrix client:', error);
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async sendMessage(options) {
|
|
90
|
+
if (!this.isStarted) {
|
|
91
|
+
throw new Error('Matrix client not started');
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
Logger.info(`📤 Sending message to room ${options.roomId}`);
|
|
95
|
+
const eventId = await this.mxClient.sendMessage(options.roomId, {
|
|
96
|
+
body: options.message,
|
|
97
|
+
'm.mentions': {},
|
|
98
|
+
msgtype: 'm.text',
|
|
99
|
+
...(options.threadId
|
|
100
|
+
? {
|
|
101
|
+
'm.relates_to': {
|
|
102
|
+
event_id: options.threadId,
|
|
103
|
+
is_falling_back: true,
|
|
104
|
+
'm.in_reply_to': {
|
|
105
|
+
event_id: options.threadId,
|
|
106
|
+
},
|
|
107
|
+
rel_type: 'm.thread',
|
|
108
|
+
},
|
|
109
|
+
}
|
|
110
|
+
: {}),
|
|
111
|
+
...(options.type === 'html'
|
|
112
|
+
? {
|
|
113
|
+
format: 'org.matrix.custom.html',
|
|
114
|
+
formatted_body: options.formattedBody,
|
|
115
|
+
}
|
|
116
|
+
: {}),
|
|
117
|
+
});
|
|
118
|
+
Logger.info(`✅ Message sent successfully: ${eventId}`);
|
|
119
|
+
return eventId;
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
Logger.error(`❌ Failed to send message to ${options.roomId}:`, error);
|
|
123
|
+
throw error;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
async sendStateEvent(roomId, eventType, content, stateKey = '') {
|
|
127
|
+
if (!this.isStarted) {
|
|
128
|
+
throw new Error('Matrix client not started');
|
|
129
|
+
}
|
|
130
|
+
try {
|
|
131
|
+
Logger.info(`📤 Sending state event ${eventType} to room ${roomId}`);
|
|
132
|
+
const eventId = await this.mxClient.sendStateEvent(roomId, eventType, stateKey, content);
|
|
133
|
+
Logger.info(`✅ State event sent successfully: ${eventId}`);
|
|
134
|
+
return eventId;
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
Logger.error(`❌ Failed to send state event to ${roomId}:`, error);
|
|
138
|
+
throw error;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
async joinRoom(roomIdOrAlias) {
|
|
142
|
+
if (!this.isStarted) {
|
|
143
|
+
throw new Error('Matrix client not started');
|
|
144
|
+
}
|
|
145
|
+
try {
|
|
146
|
+
Logger.info(`🚪 Joining room ${roomIdOrAlias}`);
|
|
147
|
+
const roomId = await this.mxClient.joinRoom(roomIdOrAlias);
|
|
148
|
+
Logger.info(`✅ Joined room successfully: ${roomId}`);
|
|
149
|
+
return roomId;
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
Logger.error(`❌ Failed to join room ${roomIdOrAlias}:`, error);
|
|
153
|
+
throw error;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
async resolveRoomAlias(alias) {
|
|
157
|
+
if (!this.isStarted) {
|
|
158
|
+
throw new Error('Matrix client not started');
|
|
159
|
+
}
|
|
160
|
+
try {
|
|
161
|
+
Logger.info(`🔍 Resolving room alias ${alias}`);
|
|
162
|
+
const resolved = await this.mxClient.resolveRoom(alias);
|
|
163
|
+
Logger.info(`✅ Room alias resolved: ${resolved}`);
|
|
164
|
+
return resolved;
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
Logger.error(`❌ Failed to resolve room alias ${alias}:`, error);
|
|
168
|
+
throw error;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
onMessage(callback) {
|
|
172
|
+
const fn = (roomId, event) => {
|
|
173
|
+
const message = new MessageEvent(event);
|
|
174
|
+
if (!message)
|
|
175
|
+
return;
|
|
176
|
+
callback(roomId, message);
|
|
177
|
+
};
|
|
178
|
+
this.mxClient.on('room.message', fn);
|
|
179
|
+
return () => {
|
|
180
|
+
this.mxClient.removeListener('room.message', fn);
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
removeListener(event, callback) {
|
|
184
|
+
this.mxClient.removeListener(event, callback);
|
|
185
|
+
}
|
|
186
|
+
async setupCrossSigning({ mxUserId, deviceId, }) {
|
|
187
|
+
try {
|
|
188
|
+
Logger.info('🔐 Setting up cross-signing for device verification...');
|
|
189
|
+
const jsClient = await createMatrixClient({
|
|
190
|
+
homeServerUrl: this.config.baseUrl,
|
|
191
|
+
accessToken: this.config.accessToken,
|
|
192
|
+
userId: mxUserId,
|
|
193
|
+
deviceId,
|
|
194
|
+
});
|
|
195
|
+
const mxCrypto = jsClient.getCrypto();
|
|
196
|
+
if (!mxCrypto) {
|
|
197
|
+
Logger.warn('❌ Crypto not available in matrix-js-sdk client');
|
|
198
|
+
jsClient.stopClient();
|
|
199
|
+
jsClient.removeAllListeners();
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
const hasCrossSigning = this.hasCrossSigningAccountData(jsClient);
|
|
203
|
+
if (hasCrossSigning) {
|
|
204
|
+
Logger.info('✅ Cross-signing already configured');
|
|
205
|
+
jsClient.stopClient();
|
|
206
|
+
jsClient.removeAllListeners();
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
Logger.info('🔑 Setting up cross-signing from scratch...');
|
|
210
|
+
const securityPhrase = process.env.MATRIX_RECOVERY_PHRASE ?? 'secret';
|
|
211
|
+
const password = process.env.MATRIX_ORACLE_ADMIN_PASSWORD;
|
|
212
|
+
if (!password) {
|
|
213
|
+
throw new Error('MATRIX_ORACLE_ADMIN_PASSWORD required for cross-signing setup');
|
|
214
|
+
}
|
|
215
|
+
Logger.info('🔐 Setting up secret storage...');
|
|
216
|
+
const recoveryKey = await mxCrypto.createRecoveryKeyFromPassphrase(securityPhrase);
|
|
217
|
+
await mxCrypto.bootstrapSecretStorage({
|
|
218
|
+
createSecretStorageKey: async () => recoveryKey,
|
|
219
|
+
setupNewSecretStorage: true,
|
|
220
|
+
});
|
|
221
|
+
Logger.info('🔑 Bootstrapping cross-signing keys...');
|
|
222
|
+
const userId = jsClient.getUserId();
|
|
223
|
+
await mxCrypto.bootstrapCrossSigning({
|
|
224
|
+
authUploadDeviceSigningKeys: async (makeRequest) => {
|
|
225
|
+
return await makeRequest(this.getAuthId({ userId, password }));
|
|
226
|
+
},
|
|
227
|
+
setupNewCrossSigning: true,
|
|
228
|
+
});
|
|
229
|
+
Logger.info('🔄 Resetting key backup...');
|
|
230
|
+
await mxCrypto.resetKeyBackup();
|
|
231
|
+
await new Promise((resolve) => setTimeout(resolve, 300));
|
|
232
|
+
const success = !!jsClient.getAccountData('m.cross_signing.master');
|
|
233
|
+
if (success) {
|
|
234
|
+
Logger.info('✅ Cross-signing setup completed successfully!');
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
Logger.warn('⚠️ Cross-signing setup may not have completed properly');
|
|
238
|
+
}
|
|
239
|
+
jsClient.stopClient();
|
|
240
|
+
jsClient.removeAllListeners();
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
Logger.warn('⚠️ Cross-signing setup failed (bot will still work):', error);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
hasCrossSigningAccountData(client) {
|
|
247
|
+
try {
|
|
248
|
+
return !!client.getAccountData('m.cross_signing.master');
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
Logger.warn('⚠️ Could not check cross-signing account data:', error);
|
|
252
|
+
return false;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
getAuthId({ userId, password, }) {
|
|
256
|
+
return {
|
|
257
|
+
type: 'm.login.password',
|
|
258
|
+
identifier: {
|
|
259
|
+
type: 'm.id.user',
|
|
260
|
+
user: userId,
|
|
261
|
+
},
|
|
262
|
+
password: password,
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
export function createSimpleMatrixClient(config) {
|
|
267
|
+
return new SimpleMatrixClient(config);
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=create-simple-matrix-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-simple-matrix-client.js","sourceRoot":"","sources":["../../../src/utils/create-simple-matrix-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface FormatMsgParams {
|
|
2
|
+
message: string;
|
|
3
|
+
isOracleAdmin: boolean;
|
|
4
|
+
oracleName?: string;
|
|
5
|
+
disablePrefix?: boolean;
|
|
6
|
+
}
|
|
7
|
+
interface FormatMsgResult {
|
|
8
|
+
content: string;
|
|
9
|
+
htmlContent: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const formatMsg: ({ message, isOracleAdmin, oracleName, disablePrefix, }: FormatMsgParams) => FormatMsgResult;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=format-msg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-msg.d.ts","sourceRoot":"","sources":["../../../src/utils/format-msg.ts"],"names":[],"mappings":"AAEA,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AACD,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AACD,eAAO,MAAM,SAAS,GAAI,wDAKvB,eAAe,KAAG,eAgBpB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as marked from 'marked';
|
|
2
|
+
export const formatMsg = ({ message, isOracleAdmin, oracleName = 'Oracle', disablePrefix = false, }) => {
|
|
3
|
+
const content = disablePrefix
|
|
4
|
+
? message
|
|
5
|
+
: `**${isOracleAdmin ? oracleName : 'You'}:**\n${message}`;
|
|
6
|
+
const htmlContent = marked.parse(content, {
|
|
7
|
+
gfm: true,
|
|
8
|
+
});
|
|
9
|
+
return {
|
|
10
|
+
content,
|
|
11
|
+
htmlContent,
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=format-msg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-msg.js","sourceRoot":"","sources":["../../../src/utils/format-msg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAYjC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EACxB,OAAO,EACP,aAAa,EACb,UAAU,GAAG,QAAQ,EACrB,aAAa,GAAG,KAAK,GACL,EAAmB,EAAE;IAMrC,MAAM,OAAO,GAAG,aAAa;QAC3B,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,OAAO,EAAE,CAAC;IAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;QACxC,GAAG,EAAE,IAAI;KACV,CAAW,CAAC;IACb,OAAO;QACL,OAAO;QACP,WAAW;KACZ,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/utils/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AAErC,wBAAsB,KAAK,CACzB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,8BASjB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as sdk from 'matrix-js-sdk';
|
|
2
|
+
export async function login(baseUrl, username, password) {
|
|
3
|
+
const client = sdk.createClient({
|
|
4
|
+
baseUrl,
|
|
5
|
+
});
|
|
6
|
+
const loginResponse = await client.loginWithPassword(username, password);
|
|
7
|
+
console.log('loginResponse', loginResponse);
|
|
8
|
+
return loginResponse;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/utils/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,OAAe,EACf,QAAgB,EAChB,QAAgB;IAEhB,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC;QAC9B,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IAC5C,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function createMatrixClient({ homeServerUrl, accessToken, userId, deviceId, }: {
|
|
2
|
+
homeServerUrl: string;
|
|
3
|
+
accessToken: string;
|
|
4
|
+
userId: string;
|
|
5
|
+
deviceId: string;
|
|
6
|
+
}): Promise<import("matrix-js-sdk").MatrixClient>;
|
|
7
|
+
//# sourceMappingURL=mx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mx.d.ts","sourceRoot":"","sources":["../../../src/utils/mx.ts"],"names":[],"mappings":"AAMA,wBAAsB,kBAAkB,CAAC,EACvC,aAAa,EACb,WAAW,EACX,MAAM,EACN,QAAQ,GACT,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,iDA6DA"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ClientEvent, createClient } from 'matrix-js-sdk';
|
|
2
|
+
import { cacheSecretStorageKey, getSecretStorageKey, } from './secretStorageKeys.js';
|
|
3
|
+
export async function createMatrixClient({ homeServerUrl, accessToken, userId, deviceId, }) {
|
|
4
|
+
if (!homeServerUrl || !accessToken || !userId || !deviceId) {
|
|
5
|
+
throw new Error('Login to Matrix account before trying to instantiate Matrix client.');
|
|
6
|
+
}
|
|
7
|
+
const mxClient = createClient({
|
|
8
|
+
baseUrl: homeServerUrl,
|
|
9
|
+
accessToken,
|
|
10
|
+
userId,
|
|
11
|
+
deviceId,
|
|
12
|
+
timelineSupport: true,
|
|
13
|
+
cryptoCallbacks: {
|
|
14
|
+
getSecretStorageKey: getSecretStorageKey,
|
|
15
|
+
cacheSecretStorageKey: cacheSecretStorageKey,
|
|
16
|
+
},
|
|
17
|
+
verificationMethods: ['m.sas.v1'],
|
|
18
|
+
});
|
|
19
|
+
await mxClient.initRustCrypto({
|
|
20
|
+
useIndexedDB: false,
|
|
21
|
+
});
|
|
22
|
+
mxClient.setMaxListeners(20);
|
|
23
|
+
await mxClient.startClient({
|
|
24
|
+
lazyLoadMembers: true,
|
|
25
|
+
includeArchivedRooms: false,
|
|
26
|
+
});
|
|
27
|
+
await new Promise((resolve, reject) => {
|
|
28
|
+
const sync = {
|
|
29
|
+
NULL: () => {
|
|
30
|
+
console.info('[NULL] state');
|
|
31
|
+
},
|
|
32
|
+
SYNCING: () => {
|
|
33
|
+
void 0;
|
|
34
|
+
},
|
|
35
|
+
PREPARED: () => {
|
|
36
|
+
console.info(`[PREPARED] state: user ${userId}`);
|
|
37
|
+
resolve();
|
|
38
|
+
},
|
|
39
|
+
RECONNECTING: () => {
|
|
40
|
+
console.info('[RECONNECTING] state');
|
|
41
|
+
},
|
|
42
|
+
CATCHUP: () => {
|
|
43
|
+
console.info('[CATCHUP] state');
|
|
44
|
+
},
|
|
45
|
+
ERROR: () => {
|
|
46
|
+
reject(new Error('[ERROR] state: starting matrix client'));
|
|
47
|
+
},
|
|
48
|
+
STOPPED: () => {
|
|
49
|
+
console.info('[STOPPED] state');
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
mxClient.on(ClientEvent.Sync, (state) => {
|
|
53
|
+
sync[state]();
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
return mxClient;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=mx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mx.js","sourceRoot":"","sources":["../../../src/utils/mx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EACL,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACvC,aAAa,EACb,WAAW,EACX,MAAM,EACN,QAAQ,GAMT;IACC,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC;QAC5B,OAAO,EAAE,aAAa;QACtB,WAAW;QACX,MAAM;QACN,QAAQ;QACR,eAAe,EAAE,IAAI;QACrB,eAAe,EAAE;YACf,mBAAmB,EAAE,mBAAmB;YACxC,qBAAqB,EAAE,qBAAqB;SAC7C;QACD,mBAAmB,EAAE,CAAC,UAAU,CAAC;KAClC,CAAC,CAAC;IACH,MAAM,QAAQ,CAAC,cAAc,CAAC;QAC5B,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC7B,MAAM,QAAQ,CAAC,WAAW,CAAC;QACzB,eAAe,EAAE,IAAI;QAErB,oBAAoB,EAAE,KAAK;KAG5B,CAAC,CAAC;IACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,GAAG,EAAE;gBACT,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,EAAE,GAAG,EAAE;gBACZ,KAAK,CAAC,CAAC;YACT,CAAC;YACD,QAAQ,EAAE,GAAG,EAAE;gBACb,OAAO,CAAC,IAAI,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;gBACjD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,YAAY,EAAE,GAAG,EAAE;gBACjB,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACvC,CAAC;YACD,OAAO,EAAE,GAAG,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAClC,CAAC;YACD,KAAK,EAAE,GAAG,EAAE;gBACV,MAAM,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,EAAE,GAAG,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAClC,CAAC;SACF,CAAC;QACF,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare function storePrivateKey(keyId: string, privateKey: Uint8Array): void;
|
|
2
|
+
export declare function hasPrivateKey(keyId: string): boolean;
|
|
3
|
+
export declare function getPrivateKey(keyId: string): any;
|
|
4
|
+
export declare function deletePrivateKey(keyId: string): void;
|
|
5
|
+
export declare function clearSecretStorageKeys(): void;
|
|
6
|
+
export declare function getSecretStorageKey({ keys, }: {
|
|
7
|
+
keys: any;
|
|
8
|
+
}): Promise<[string, Uint8Array] | null>;
|
|
9
|
+
export declare function cacheSecretStorageKey(keyId: string, _keyInfo: any, privateKey: Uint8Array): void;
|
|
10
|
+
//# sourceMappingURL=secretStorageKeys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secretStorageKeys.d.ts","sourceRoot":"","sources":["../../../src/utils/secretStorageKeys.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,QAMpE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,WAE1C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,OAE1C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,QAE7C;AAED,wBAAgB,sBAAsB,SAErC;AAED,wBAAsB,mBAAmB,CAAC,EACxC,IAAI,GACL,EAAE;IACD,IAAI,EAAE,GAAG,CAAC;CACX,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,CAYvC;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,GAAG,EACb,UAAU,EAAE,UAAU,QAGvB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const secretStorageKeys = new Map();
|
|
2
|
+
export function storePrivateKey(keyId, privateKey) {
|
|
3
|
+
if (privateKey instanceof Uint8Array === false) {
|
|
4
|
+
throw new Error('Unable to store, privateKey is invalid.');
|
|
5
|
+
}
|
|
6
|
+
secretStorageKeys.set(keyId, privateKey);
|
|
7
|
+
}
|
|
8
|
+
export function hasPrivateKey(keyId) {
|
|
9
|
+
return secretStorageKeys.get(keyId) instanceof Uint8Array;
|
|
10
|
+
}
|
|
11
|
+
export function getPrivateKey(keyId) {
|
|
12
|
+
return secretStorageKeys.get(keyId);
|
|
13
|
+
}
|
|
14
|
+
export function deletePrivateKey(keyId) {
|
|
15
|
+
secretStorageKeys.delete(keyId);
|
|
16
|
+
}
|
|
17
|
+
export function clearSecretStorageKeys() {
|
|
18
|
+
secretStorageKeys.clear();
|
|
19
|
+
}
|
|
20
|
+
export async function getSecretStorageKey({ keys, }) {
|
|
21
|
+
const keyIds = Object.keys(keys);
|
|
22
|
+
const keyId = keyIds.find(hasPrivateKey);
|
|
23
|
+
console.info('[] getSecretStorageKey', keys, keyIds, keyId);
|
|
24
|
+
if (!keyId) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const privateKey = getPrivateKey(keyId);
|
|
28
|
+
return [keyId, privateKey];
|
|
29
|
+
}
|
|
30
|
+
export function cacheSecretStorageKey(keyId, _keyInfo, privateKey) {
|
|
31
|
+
secretStorageKeys.set(keyId, privateKey);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=secretStorageKeys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secretStorageKeys.js","sourceRoot":"","sources":["../../../src/utils/secretStorageKeys.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;AAEpC,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,UAAsB;IACnE,IAAI,UAAU,YAAY,UAAU,KAAK,KAAK,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,UAAU,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,iBAAiB,CAAC,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EACxC,IAAI,GAGL;IACC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACzC,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAErE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAExC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAa,EACb,QAAa,EACb,UAAsB;IAEtB,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC"}
|