matrix-js-sdk 41.0.0 → 41.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.
Files changed (93) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/lib/@types/event.d.ts +1 -1
  3. package/lib/@types/event.d.ts.map +1 -1
  4. package/lib/@types/event.js +1 -1
  5. package/lib/@types/event.js.map +1 -1
  6. package/lib/client.d.ts.map +1 -1
  7. package/lib/client.js +250 -246
  8. package/lib/client.js.map +1 -1
  9. package/lib/crypto-api/index.d.ts +13 -2
  10. package/lib/crypto-api/index.d.ts.map +1 -1
  11. package/lib/crypto-api/index.js +11 -0
  12. package/lib/crypto-api/index.js.map +1 -1
  13. package/lib/logger.d.ts +5 -5
  14. package/lib/logger.d.ts.map +1 -1
  15. package/lib/logger.js.map +1 -1
  16. package/lib/matrixrtc/CallMembership.d.ts +49 -145
  17. package/lib/matrixrtc/CallMembership.d.ts.map +1 -1
  18. package/lib/matrixrtc/CallMembership.js +157 -265
  19. package/lib/matrixrtc/CallMembership.js.map +1 -1
  20. package/lib/matrixrtc/EncryptionManager.d.ts +1 -85
  21. package/lib/matrixrtc/EncryptionManager.d.ts.map +1 -1
  22. package/lib/matrixrtc/EncryptionManager.js +0 -317
  23. package/lib/matrixrtc/EncryptionManager.js.map +1 -1
  24. package/lib/matrixrtc/MatrixRTCSession.d.ts +18 -22
  25. package/lib/matrixrtc/MatrixRTCSession.d.ts.map +1 -1
  26. package/lib/matrixrtc/MatrixRTCSession.js +48 -76
  27. package/lib/matrixrtc/MatrixRTCSession.js.map +1 -1
  28. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts +2 -1
  29. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts.map +1 -1
  30. package/lib/matrixrtc/MatrixRTCSessionManager.js +3 -2
  31. package/lib/matrixrtc/MatrixRTCSessionManager.js.map +1 -1
  32. package/lib/matrixrtc/MembershipManager.d.ts +10 -4
  33. package/lib/matrixrtc/MembershipManager.d.ts.map +1 -1
  34. package/lib/matrixrtc/MembershipManager.js +10 -4
  35. package/lib/matrixrtc/MembershipManager.js.map +1 -1
  36. package/lib/matrixrtc/RTCEncryptionManager.d.ts +6 -7
  37. package/lib/matrixrtc/RTCEncryptionManager.d.ts.map +1 -1
  38. package/lib/matrixrtc/RTCEncryptionManager.js +4 -7
  39. package/lib/matrixrtc/RTCEncryptionManager.js.map +1 -1
  40. package/lib/matrixrtc/index.d.ts +1 -0
  41. package/lib/matrixrtc/index.d.ts.map +1 -1
  42. package/lib/matrixrtc/index.js.map +1 -1
  43. package/lib/matrixrtc/membershipData/common.d.ts +8 -0
  44. package/lib/matrixrtc/membershipData/common.d.ts.map +1 -0
  45. package/lib/matrixrtc/membershipData/common.js +26 -0
  46. package/lib/matrixrtc/membershipData/common.js.map +1 -0
  47. package/lib/matrixrtc/membershipData/index.d.ts +4 -0
  48. package/lib/matrixrtc/membershipData/index.d.ts.map +1 -0
  49. package/lib/matrixrtc/membershipData/index.js +20 -0
  50. package/lib/matrixrtc/membershipData/index.js.map +1 -0
  51. package/lib/matrixrtc/membershipData/rtc.d.ts +33 -0
  52. package/lib/matrixrtc/membershipData/rtc.d.ts.map +1 -0
  53. package/lib/matrixrtc/membershipData/rtc.js +137 -0
  54. package/lib/matrixrtc/membershipData/rtc.js.map +1 -0
  55. package/lib/matrixrtc/membershipData/session.d.ts +77 -0
  56. package/lib/matrixrtc/membershipData/session.d.ts.map +1 -0
  57. package/lib/matrixrtc/membershipData/session.js +62 -0
  58. package/lib/matrixrtc/membershipData/session.js.map +1 -0
  59. package/lib/matrixrtc/types.d.ts +23 -0
  60. package/lib/matrixrtc/types.d.ts.map +1 -1
  61. package/lib/matrixrtc/types.js +9 -1
  62. package/lib/matrixrtc/types.js.map +1 -1
  63. package/lib/matrixrtc/utils.d.ts +11 -1
  64. package/lib/matrixrtc/utils.d.ts.map +1 -1
  65. package/lib/matrixrtc/utils.js +24 -1
  66. package/lib/matrixrtc/utils.js.map +1 -1
  67. package/lib/rust-crypto/rust-crypto.d.ts.map +1 -1
  68. package/lib/rust-crypto/rust-crypto.js +2 -2
  69. package/lib/rust-crypto/rust-crypto.js.map +1 -1
  70. package/package.json +5 -7
  71. package/src/@types/event.ts +2 -2
  72. package/src/client.ts +5 -3
  73. package/src/crypto-api/index.ts +17 -2
  74. package/src/logger.ts +5 -5
  75. package/src/matrixrtc/CallMembership.ts +159 -373
  76. package/src/matrixrtc/EncryptionManager.ts +1 -417
  77. package/src/matrixrtc/MatrixRTCSession.ts +82 -122
  78. package/src/matrixrtc/MatrixRTCSessionManager.ts +5 -3
  79. package/src/matrixrtc/MembershipManager.ts +14 -17
  80. package/src/matrixrtc/RTCEncryptionManager.ts +7 -10
  81. package/src/matrixrtc/index.ts +1 -0
  82. package/src/matrixrtc/membershipData/common.ts +27 -0
  83. package/src/matrixrtc/membershipData/index.ts +19 -0
  84. package/src/matrixrtc/membershipData/rtc.ts +156 -0
  85. package/src/matrixrtc/membershipData/session.ts +146 -0
  86. package/src/matrixrtc/types.ts +27 -1
  87. package/src/matrixrtc/utils.ts +24 -2
  88. package/src/rust-crypto/rust-crypto.ts +4 -1
  89. package/lib/matrixrtc/RoomKeyTransport.d.ts +0 -25
  90. package/lib/matrixrtc/RoomKeyTransport.d.ts.map +0 -1
  91. package/lib/matrixrtc/RoomKeyTransport.js +0 -152
  92. package/lib/matrixrtc/RoomKeyTransport.js.map +0 -1
  93. package/src/matrixrtc/RoomKeyTransport.ts +0 -189
package/package.json CHANGED
@@ -1,17 +1,16 @@
1
1
  {
2
2
  "name": "matrix-js-sdk",
3
- "version": "41.0.0",
3
+ "version": "41.1.0",
4
4
  "description": "Matrix Client-Server SDK for Javascript",
5
5
  "engines": {
6
6
  "node": ">=22.0.0"
7
7
  },
8
8
  "scripts": {
9
9
  "prepare": "pnpm build",
10
- "start": "echo THIS IS FOR LEGACY PURPOSES ONLY. && babel src -w -s -d lib --verbose --extensions \".ts,.js\"",
11
- "clean": "rimraf lib",
12
- "build": "pnpm clean && pnpm build:compile && pnpm build:types",
10
+ "start": "echo THIS IS FOR LEGACY PURPOSES ONLY. && babel --delete-dir-on-start src -w -s -d lib --verbose --extensions \".ts,.js\"",
11
+ "build": "pnpm build:compile && pnpm build:types",
13
12
  "build:types": "tsc -p tsconfig-build.json --emitDeclarationOnly",
14
- "build:compile": "babel -d lib --verbose --extensions \".ts,.js\" src",
13
+ "build:compile": "babel --delete-dir-on-start -d lib --verbose --extensions \".ts,.js\" src",
15
14
  "gendoc": "typedoc",
16
15
  "lint": "pnpm lint:types && pnpm lint:js && pnpm lint:workflows",
17
16
  "lint:js": "eslint --max-warnings 0 src spec && prettier --check .",
@@ -111,7 +110,6 @@
111
110
  "lint-staged": "^16.0.0",
112
111
  "matrix-mock-request": "^2.5.0",
113
112
  "prettier": "3.8.1",
114
- "rimraf": "^6.0.0",
115
113
  "typedoc": "^0.28.1",
116
114
  "typedoc-plugin-coverage": "^4.0.0",
117
115
  "typedoc-plugin-mdn-links": "^5.0.0",
@@ -133,5 +131,5 @@
133
131
  "eslint": "8"
134
132
  }
135
133
  },
136
- "packageManager": "pnpm@10.28.2+sha512.41872f037ad22f7348e3b1debbaf7e867cfd448f2726d9cf74c08f19507c31d2c8e7a11525b983febc2df640b5438dee6023ebb1f84ed43cc2d654d2bc326264"
134
+ "packageManager": "pnpm@10.29.3+sha512.498e1fb4cca5aa06c1dcf2611e6fafc50972ffe7189998c409e90de74566444298ffe43e6cd2acdc775ba1aa7cc5e092a8b7054c811ba8c5770f84693d33d2dc"
137
135
  }
@@ -1,5 +1,5 @@
1
1
  /*
2
- Copyright 2020 The Matrix.org Foundation C.I.C.
2
+ Copyright 2020-2026 The Matrix.org Foundation C.I.C.
3
3
 
4
4
  Licensed under the Apache License, Version 2.0 (the "License");
5
5
  you may not use this file except in compliance with the License.
@@ -60,7 +60,7 @@ import {
60
60
  type ICallNotifyContent,
61
61
  } from "../matrixrtc/types.ts";
62
62
  import { type M_POLL_END, type M_POLL_START, type PollEndEventContent, type PollStartEventContent } from "./polls.ts";
63
- import { type RtcMembershipData, type SessionMembershipData } from "../matrixrtc/CallMembership.ts";
63
+ import { type RtcMembershipData, type SessionMembershipData } from "../matrixrtc/membershipData/index.ts";
64
64
  import { type LocalNotificationSettings } from "./local_notifications.ts";
65
65
  import { type IPushRules } from "./PushRules.ts";
66
66
  import { type SecretInfo, type SecretStorageKeyDescription } from "../secret-storage.ts";
package/src/client.ts CHANGED
@@ -3918,7 +3918,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
3918
3918
  * @returns Rejects: with an error response.
3919
3919
  * May return synthesized attributes if the URL lacked OG meta.
3920
3920
  */
3921
- public getUrlPreview(url: string, ts: number): Promise<IPreviewUrlResponse> {
3921
+ public async getUrlPreview(url: string, ts: number): Promise<IPreviewUrlResponse> {
3922
3922
  // bucket the timestamp to the nearest minute to prevent excessive spam to the server
3923
3923
  // Surely 60-second accuracy is enough for anyone.
3924
3924
  ts = Math.floor(ts / 60000) * 60000;
@@ -3934,16 +3934,18 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
3934
3934
  return this.urlPreviewCache[key];
3935
3935
  }
3936
3936
 
3937
+ const supportsNewEndpoint = await this.isVersionSupported("v1.11");
3938
+
3937
3939
  const resp = this.http.authedRequest<IPreviewUrlResponse>(
3938
3940
  Method.Get,
3939
- "/preview_url",
3941
+ supportsNewEndpoint ? "/media/preview_url" : "/preview_url",
3940
3942
  {
3941
3943
  url,
3942
3944
  ts: ts.toString(),
3943
3945
  },
3944
3946
  undefined,
3945
3947
  {
3946
- prefix: MediaPrefix.V3,
3948
+ prefix: supportsNewEndpoint ? ClientPrefix.V1 : MediaPrefix.V3,
3947
3949
  priority: "low",
3948
3950
  },
3949
3951
  );
@@ -563,8 +563,11 @@ export interface CryptoApi {
563
563
  * if they match, stores the key in the crypto store by calling {@link storeSessionBackupPrivateKey},
564
564
  * which enables automatic restore of individual keys when an Unable-to-decrypt error is encountered.
565
565
  *
566
- * If we are unable to fetch the key from secret storage, there is no backup on the server, or the key
567
- * does not match, throws an exception.
566
+ * If the backup decryption key from secret storage does not match the
567
+ * latest backup on the server, we throw a {@link DecryptionKeyDoesNotMatchError}.
568
+ *
569
+ * If we are unable to fetch the key from secret storage or there is no backup on the server,
570
+ * we throw an exception.
568
571
  */
569
572
  loadSessionBackupPrivateKeyFromSecretStorage(): Promise<void>;
570
573
 
@@ -1339,6 +1342,18 @@ export interface OlmEncryptionInfo {
1339
1342
  senderVerified: boolean;
1340
1343
  }
1341
1344
 
1345
+ /**
1346
+ * An error thrown by loadSessionBackupPrivateKeyFromSecretStorage indicating
1347
+ * that the decryption key found in secret storage does not match the public key
1348
+ * of the latest backup.
1349
+ */
1350
+ export class DecryptionKeyDoesNotMatchError extends Error {
1351
+ public constructor(message: string) {
1352
+ super(message);
1353
+ this.name = "DecryptionKeyDoesNotMatchError";
1354
+ }
1355
+ }
1356
+
1342
1357
  export * from "./verification.ts";
1343
1358
  export type * from "./keybackup.ts";
1344
1359
  export * from "./recovery-key.ts";
package/src/logger.ts CHANGED
@@ -52,35 +52,35 @@ export interface BaseLogger {
52
52
  *
53
53
  * @param msg - Data to log.
54
54
  */
55
- trace(...msg: any[]): void;
55
+ trace(this: void, ...msg: any[]): void;
56
56
 
57
57
  /**
58
58
  * Output debug message to the logger.
59
59
  *
60
60
  * @param msg - Data to log.
61
61
  */
62
- debug(...msg: any[]): void;
62
+ debug(this: void, ...msg: any[]): void;
63
63
 
64
64
  /**
65
65
  * Output info message to the logger.
66
66
  *
67
67
  * @param msg - Data to log.
68
68
  */
69
- info(...msg: any[]): void;
69
+ info(this: void, ...msg: any[]): void;
70
70
 
71
71
  /**
72
72
  * Output warn message to the logger.
73
73
  *
74
74
  * @param msg - Data to log.
75
75
  */
76
- warn(...msg: any[]): void;
76
+ warn(this: void, ...msg: any[]): void;
77
77
 
78
78
  /**
79
79
  * Output error message to the logger.
80
80
  *
81
81
  * @param msg - Data to log.
82
82
  */
83
- error(...msg: any[]): void;
83
+ error(this: void, ...msg: any[]): void;
84
84
  }
85
85
 
86
86
  // This is to demonstrate, that you can use any namespace you want.