You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-07-30 04:23:07 +03:00
Update dependency prettier to v3 (#3983)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
@ -16,7 +16,7 @@
|
|||||||
"gendoc": "typedoc",
|
"gendoc": "typedoc",
|
||||||
"lint": "yarn lint:types && yarn lint:js && yarn lint:workflows",
|
"lint": "yarn lint:types && yarn lint:js && yarn lint:workflows",
|
||||||
"lint:js": "eslint --max-warnings 0 src spec && prettier --check .",
|
"lint:js": "eslint --max-warnings 0 src spec && prettier --check .",
|
||||||
"lint:js-fix": "prettier --loglevel=warn --write . && eslint --fix src spec",
|
"lint:js-fix": "prettier --log-level=warn --write . && eslint --fix src spec",
|
||||||
"lint:types": "tsc --noEmit",
|
"lint:types": "tsc --noEmit",
|
||||||
"lint:workflows": "find .github/workflows -type f \\( -iname '*.yaml' -o -iname '*.yml' \\) | xargs -I {} sh -c 'echo \"Linting {}\"; action-validator \"{}\"'",
|
"lint:workflows": "find .github/workflows -type f \\( -iname '*.yaml' -o -iname '*.yml' \\) | xargs -I {} sh -c 'echo \"Linting {}\"; action-validator \"{}\"'",
|
||||||
"test": "jest",
|
"test": "jest",
|
||||||
@ -117,7 +117,7 @@
|
|||||||
"jest-mock": "^29.0.0",
|
"jest-mock": "^29.0.0",
|
||||||
"lint-staged": "^15.0.2",
|
"lint-staged": "^15.0.2",
|
||||||
"matrix-mock-request": "^2.5.0",
|
"matrix-mock-request": "^2.5.0",
|
||||||
"prettier": "2.8.8",
|
"prettier": "3.1.1",
|
||||||
"rimraf": "^5.0.0",
|
"rimraf": "^5.0.0",
|
||||||
"ts-node": "^10.9.1",
|
"ts-node": "^10.9.1",
|
||||||
"typedoc": "^0.24.0",
|
"typedoc": "^0.24.0",
|
||||||
|
@ -269,7 +269,11 @@ export class MockRTCRtpTransceiver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class MockMediaStreamTrack {
|
export class MockMediaStreamTrack {
|
||||||
constructor(public readonly id: string, public readonly kind: "audio" | "video", public enabled = true) {}
|
constructor(
|
||||||
|
public readonly id: string,
|
||||||
|
public readonly kind: "audio" | "video",
|
||||||
|
public enabled = true,
|
||||||
|
) {}
|
||||||
|
|
||||||
public stop = jest.fn<void, []>();
|
public stop = jest.fn<void, []>();
|
||||||
|
|
||||||
@ -306,7 +310,10 @@ export class MockMediaStreamTrack {
|
|||||||
// XXX: Using EventTarget in jest doesn't seem to work, so we write our own
|
// XXX: Using EventTarget in jest doesn't seem to work, so we write our own
|
||||||
// implementation
|
// implementation
|
||||||
export class MockMediaStream {
|
export class MockMediaStream {
|
||||||
constructor(public id: string, private tracks: MockMediaStreamTrack[] = []) {}
|
constructor(
|
||||||
|
public id: string,
|
||||||
|
private tracks: MockMediaStreamTrack[] = [],
|
||||||
|
) {}
|
||||||
|
|
||||||
public listeners: [string, (...args: any[]) => any][] = [];
|
public listeners: [string, (...args: any[]) => any][] = [];
|
||||||
public isStopped = false;
|
public isStopped = false;
|
||||||
@ -435,7 +442,11 @@ type EmittedEventMap = CallEventHandlerEventHandlerMap &
|
|||||||
export class MockCallMatrixClient extends TypedEventEmitter<EmittedEvents, EmittedEventMap> {
|
export class MockCallMatrixClient extends TypedEventEmitter<EmittedEvents, EmittedEventMap> {
|
||||||
public mediaHandler = new MockMediaHandler();
|
public mediaHandler = new MockMediaHandler();
|
||||||
|
|
||||||
constructor(public userId: string, public deviceId: string, public sessionId: string) {
|
constructor(
|
||||||
|
public userId: string,
|
||||||
|
public deviceId: string,
|
||||||
|
public sessionId: string,
|
||||||
|
) {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -502,7 +513,10 @@ export class MockCallMatrixClient extends TypedEventEmitter<EmittedEvents, Emitt
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class MockMatrixCall extends TypedEventEmitter<CallEvent, CallEventHandlerMap> {
|
export class MockMatrixCall extends TypedEventEmitter<CallEvent, CallEventHandlerMap> {
|
||||||
constructor(public roomId: string, public groupCallId?: string) {
|
constructor(
|
||||||
|
public roomId: string,
|
||||||
|
public groupCallId?: string,
|
||||||
|
) {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -550,7 +564,11 @@ export class MockMatrixCall extends TypedEventEmitter<CallEvent, CallEventHandle
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class MockCallFeed {
|
export class MockCallFeed {
|
||||||
constructor(public userId: string, public deviceId: string | undefined, public stream: MockMediaStream) {}
|
constructor(
|
||||||
|
public userId: string,
|
||||||
|
public deviceId: string | undefined,
|
||||||
|
public stream: MockMediaStream,
|
||||||
|
) {}
|
||||||
|
|
||||||
public measureVolumeActivity(val: boolean) {}
|
public measureVolumeActivity(val: boolean) {}
|
||||||
public dispose() {}
|
public dispose() {}
|
||||||
|
@ -1263,7 +1263,7 @@ describe("Crypto", function () {
|
|||||||
({
|
({
|
||||||
init_with_private_key: jest.fn(),
|
init_with_private_key: jest.fn(),
|
||||||
free,
|
free,
|
||||||
} as unknown as PkDecryption),
|
}) as unknown as PkDecryption,
|
||||||
);
|
);
|
||||||
client.client.checkSecretStoragePrivateKey(new Uint8Array(), "");
|
client.client.checkSecretStoragePrivateKey(new Uint8Array(), "");
|
||||||
expect(free).toHaveBeenCalled();
|
expect(free).toHaveBeenCalled();
|
||||||
@ -1289,7 +1289,7 @@ describe("Crypto", function () {
|
|||||||
({
|
({
|
||||||
init_with_seed: jest.fn(),
|
init_with_seed: jest.fn(),
|
||||||
free,
|
free,
|
||||||
} as unknown as PkSigning),
|
}) as unknown as PkSigning,
|
||||||
);
|
);
|
||||||
client.client.checkCrossSigningPrivateKey(new Uint8Array(), "");
|
client.client.checkCrossSigningPrivateKey(new Uint8Array(), "");
|
||||||
expect(free).toHaveBeenCalled();
|
expect(free).toHaveBeenCalled();
|
||||||
|
@ -106,7 +106,7 @@ describe("Cross Signing", function () {
|
|||||||
});
|
});
|
||||||
alice.uploadKeySignatures = async () => ({ failures: {} });
|
alice.uploadKeySignatures = async () => ({ failures: {} });
|
||||||
alice.setAccountData = async () => ({});
|
alice.setAccountData = async () => ({});
|
||||||
alice.getAccountDataFromServer = async <T>() => ({} as T);
|
alice.getAccountDataFromServer = async <T>() => ({}) as T;
|
||||||
// set Alice's cross-signing key
|
// set Alice's cross-signing key
|
||||||
await alice.bootstrapCrossSigning({
|
await alice.bootstrapCrossSigning({
|
||||||
authUploadDeviceSigningKeys: async (func) => {
|
authUploadDeviceSigningKeys: async (func) => {
|
||||||
@ -146,7 +146,7 @@ describe("Cross Signing", function () {
|
|||||||
};
|
};
|
||||||
alice.uploadKeySignatures = async () => ({ failures: {} });
|
alice.uploadKeySignatures = async () => ({ failures: {} });
|
||||||
alice.setAccountData = async () => ({});
|
alice.setAccountData = async () => ({});
|
||||||
alice.getAccountDataFromServer = async <T extends { [k: string]: any }>(): Promise<T | null> => ({} as T);
|
alice.getAccountDataFromServer = async <T extends { [k: string]: any }>(): Promise<T | null> => ({}) as T;
|
||||||
const authUploadDeviceSigningKeys: BootstrapCrossSigningOpts["authUploadDeviceSigningKeys"] = async (func) => {
|
const authUploadDeviceSigningKeys: BootstrapCrossSigningOpts["authUploadDeviceSigningKeys"] = async (func) => {
|
||||||
await func({});
|
await func({});
|
||||||
};
|
};
|
||||||
|
@ -189,12 +189,10 @@ describe("SAS verification", function () {
|
|||||||
const origSendToDevice = bob.client.sendToDevice.bind(bob.client);
|
const origSendToDevice = bob.client.sendToDevice.bind(bob.client);
|
||||||
bob.client.sendToDevice = async (type, map) => {
|
bob.client.sendToDevice = async (type, map) => {
|
||||||
if (type === "m.key.verification.accept") {
|
if (type === "m.key.verification.accept") {
|
||||||
macMethod = map
|
macMethod = map.get(alice.client.getUserId()!)?.get(alice.client.deviceId!)
|
||||||
.get(alice.client.getUserId()!)
|
?.message_authentication_code;
|
||||||
?.get(alice.client.deviceId!)?.message_authentication_code;
|
keyAgreement = map.get(alice.client.getUserId()!)?.get(alice.client.deviceId!)
|
||||||
keyAgreement = map
|
?.key_agreement_protocol;
|
||||||
.get(alice.client.getUserId()!)
|
|
||||||
?.get(alice.client.deviceId!)?.key_agreement_protocol;
|
|
||||||
}
|
}
|
||||||
return origSendToDevice(type, map);
|
return origSendToDevice(type, map);
|
||||||
};
|
};
|
||||||
|
@ -213,7 +213,7 @@ describe("MSC3089Branch", () => {
|
|||||||
expect(eventId).toEqual(fileEventId);
|
expect(eventId).toEqual(fileEventId);
|
||||||
return fileEvent;
|
return fileEvent;
|
||||||
},
|
},
|
||||||
} as EventTimelineSet);
|
}) as EventTimelineSet;
|
||||||
client.mxcUrlToHttp = (mxc: string) => {
|
client.mxcUrlToHttp = (mxc: string) => {
|
||||||
expect(mxc).toEqual("mxc://" + mxcLatter);
|
expect(mxc).toEqual("mxc://" + mxcLatter);
|
||||||
return `https://example.org/_matrix/media/v1/download/${mxcLatter}`;
|
return `https://example.org/_matrix/media/v1/download/${mxcLatter}`;
|
||||||
@ -239,7 +239,7 @@ describe("MSC3089Branch", () => {
|
|||||||
expect(eventId).toEqual(fileEventId);
|
expect(eventId).toEqual(fileEventId);
|
||||||
return fileEvent;
|
return fileEvent;
|
||||||
},
|
},
|
||||||
} as EventTimelineSet);
|
}) as EventTimelineSet;
|
||||||
client.mxcUrlToHttp = (mxc: string) => {
|
client.mxcUrlToHttp = (mxc: string) => {
|
||||||
expect(mxc).toEqual("mxc://" + mxcLatter);
|
expect(mxc).toEqual("mxc://" + mxcLatter);
|
||||||
return `https://example.org/_matrix/media/v1/download/${mxcLatter}`;
|
return `https://example.org/_matrix/media/v1/download/${mxcLatter}`;
|
||||||
@ -332,7 +332,7 @@ describe("MSC3089Branch", () => {
|
|||||||
getId: () => "$unknown",
|
getId: () => "$unknown",
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
staticRoom.getLiveTimeline = () => ({ getEvents: () => events } as EventTimeline);
|
staticRoom.getLiveTimeline = () => ({ getEvents: () => events }) as EventTimeline;
|
||||||
|
|
||||||
directory.getFile = (evId: string) => {
|
directory.getFile = (evId: string) => {
|
||||||
expect(evId).toEqual(fileEventId);
|
expect(evId).toEqual(fileEventId);
|
||||||
|
@ -399,7 +399,7 @@ describe("MSC3089TreeSpace", () => {
|
|||||||
];
|
];
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
client.getRoom = () => ({} as Room); // to appease the TreeSpace constructor
|
client.getRoom = () => ({}) as Room; // to appease the TreeSpace constructor
|
||||||
|
|
||||||
const getFn = jest.fn().mockImplementation((roomId: string) => {
|
const getFn = jest.fn().mockImplementation((roomId: string) => {
|
||||||
if (roomId === thirdChildRoom) {
|
if (roomId === thirdChildRoom) {
|
||||||
@ -422,7 +422,7 @@ describe("MSC3089TreeSpace", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should find specific directories", () => {
|
it("should find specific directories", () => {
|
||||||
client.getRoom = () => ({} as Room); // to appease the TreeSpace constructor
|
client.getRoom = () => ({}) as Room; // to appease the TreeSpace constructor
|
||||||
|
|
||||||
// Only mocking used API
|
// Only mocking used API
|
||||||
const firstSubdirectory = { roomId: "!first:example.org" } as any as MSC3089TreeSpace;
|
const firstSubdirectory = { roomId: "!first:example.org" } as any as MSC3089TreeSpace;
|
||||||
|
@ -32,7 +32,10 @@ export class DummyTransport<D extends RendezvousTransportDetails, T> implements
|
|||||||
ready = false;
|
ready = false;
|
||||||
cancelled = false;
|
cancelled = false;
|
||||||
|
|
||||||
constructor(private name: string, private mockDetails: D) {}
|
constructor(
|
||||||
|
private name: string,
|
||||||
|
private mockDetails: D,
|
||||||
|
) {}
|
||||||
onCancelled?: RendezvousFailureListener;
|
onCancelled?: RendezvousFailureListener;
|
||||||
|
|
||||||
details(): Promise<RendezvousTransportDetails> {
|
details(): Promise<RendezvousTransportDetails> {
|
||||||
|
@ -3315,7 +3315,7 @@ describe("Room", function () {
|
|||||||
return event1 === `eventId${i}` ? 1 : -1;
|
return event1 === `eventId${i}` ? 1 : -1;
|
||||||
},
|
},
|
||||||
findEventById: jest.fn().mockReturnValue({} as MatrixEvent),
|
findEventById: jest.fn().mockReturnValue({} as MatrixEvent),
|
||||||
} as unknown as EventTimelineSet);
|
}) as unknown as EventTimelineSet;
|
||||||
|
|
||||||
expect(room.getEventReadUpTo(userA)).toEqual(`eventId${i}`);
|
expect(room.getEventReadUpTo(userA)).toEqual(`eventId${i}`);
|
||||||
}
|
}
|
||||||
@ -3328,7 +3328,7 @@ describe("Room", function () {
|
|||||||
({
|
({
|
||||||
compareEventOrdering: () => null,
|
compareEventOrdering: () => null,
|
||||||
findEventById: jest.fn().mockReturnValue({} as MatrixEvent),
|
findEventById: jest.fn().mockReturnValue({} as MatrixEvent),
|
||||||
} as unknown as EventTimelineSet);
|
}) as unknown as EventTimelineSet;
|
||||||
room.getReadReceiptForUserId = (userId, ignore, receiptType): WrappedReceipt | null => {
|
room.getReadReceiptForUserId = (userId, ignore, receiptType): WrappedReceipt | null => {
|
||||||
if (receiptType === ReceiptType.ReadPrivate) {
|
if (receiptType === ReceiptType.ReadPrivate) {
|
||||||
return { eventId: "eventId1", data: { ts: i === 1 ? 2 : 1 } } as WrappedReceipt;
|
return { eventId: "eventId1", data: { ts: i === 1 ? 2 : 1 } } as WrappedReceipt;
|
||||||
@ -3348,7 +3348,7 @@ describe("Room", function () {
|
|||||||
({
|
({
|
||||||
compareEventOrdering: () => null,
|
compareEventOrdering: () => null,
|
||||||
findEventById: jest.fn().mockReturnValue({} as MatrixEvent),
|
findEventById: jest.fn().mockReturnValue({} as MatrixEvent),
|
||||||
} as unknown as EventTimelineSet);
|
}) as unknown as EventTimelineSet;
|
||||||
room.getReadReceiptForUserId = (userId, ignore, receiptType): WrappedReceipt | null => {
|
room.getReadReceiptForUserId = (userId, ignore, receiptType): WrappedReceipt | null => {
|
||||||
if (receiptType === ReceiptType.Read) {
|
if (receiptType === ReceiptType.Read) {
|
||||||
return { eventId: "eventId2", data: { ts: 1 } } as WrappedReceipt;
|
return { eventId: "eventId2", data: { ts: 1 } } as WrappedReceipt;
|
||||||
@ -3366,7 +3366,7 @@ describe("Room", function () {
|
|||||||
({
|
({
|
||||||
compareEventOrdering: () => null,
|
compareEventOrdering: () => null,
|
||||||
findEventById: jest.fn().mockReturnValue({} as MatrixEvent),
|
findEventById: jest.fn().mockReturnValue({} as MatrixEvent),
|
||||||
} as unknown as EventTimelineSet);
|
}) as unknown as EventTimelineSet;
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should give precedence to m.read.private", () => {
|
it("should give precedence to m.read.private", () => {
|
||||||
|
@ -484,7 +484,7 @@ describe("RustCrypto", () => {
|
|||||||
decryptEvent: () =>
|
decryptEvent: () =>
|
||||||
({
|
({
|
||||||
senderCurve25519Key: "1234",
|
senderCurve25519Key: "1234",
|
||||||
} as IEventDecryptionResult),
|
}) as IEventDecryptionResult,
|
||||||
} as unknown as CryptoBackend;
|
} as unknown as CryptoBackend;
|
||||||
await event.attemptDecryption(mockCryptoBackend);
|
await event.attemptDecryption(mockCryptoBackend);
|
||||||
|
|
||||||
@ -524,7 +524,7 @@ describe("RustCrypto", () => {
|
|||||||
decryptEvent: () =>
|
decryptEvent: () =>
|
||||||
({
|
({
|
||||||
clearEvent: { content: { body: "1234" } },
|
clearEvent: { content: { body: "1234" } },
|
||||||
} as unknown as IEventDecryptionResult),
|
}) as unknown as IEventDecryptionResult,
|
||||||
} as unknown as CryptoBackend;
|
} as unknown as CryptoBackend;
|
||||||
await encryptedEvent.attemptDecryption(mockCryptoBackend);
|
await encryptedEvent.attemptDecryption(mockCryptoBackend);
|
||||||
return encryptedEvent;
|
return encryptedEvent;
|
||||||
|
@ -954,7 +954,7 @@ describe("Group Call", function () {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
} as MatrixEvent);
|
}) as MatrixEvent;
|
||||||
|
|
||||||
it("should mute remote feed's audio after receiving metadata with video audio", async () => {
|
it("should mute remote feed's audio after receiving metadata with video audio", async () => {
|
||||||
const metadataEvent = getMetadataEvent(true, false);
|
const metadataEvent = getMetadataEvent(true, false);
|
||||||
@ -965,7 +965,7 @@ describe("Group Call", function () {
|
|||||||
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const call = groupCall.calls.get(FAKE_USER_ID_2)!.get(FAKE_DEVICE_ID_2)!;
|
const call = groupCall.calls.get(FAKE_USER_ID_2)!.get(FAKE_DEVICE_ID_2)!;
|
||||||
call.getOpponentMember = () => ({ userId: call.invitee } as RoomMember);
|
call.getOpponentMember = () => ({ userId: call.invitee }) as RoomMember;
|
||||||
// @ts-ignore Mock
|
// @ts-ignore Mock
|
||||||
call.pushRemoteFeed(
|
call.pushRemoteFeed(
|
||||||
// @ts-ignore Mock
|
// @ts-ignore Mock
|
||||||
@ -992,7 +992,7 @@ describe("Group Call", function () {
|
|||||||
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const call = groupCall.calls.get(FAKE_USER_ID_2).get(FAKE_DEVICE_ID_2)!;
|
const call = groupCall.calls.get(FAKE_USER_ID_2).get(FAKE_DEVICE_ID_2)!;
|
||||||
call.getOpponentMember = () => ({ userId: call.invitee } as RoomMember);
|
call.getOpponentMember = () => ({ userId: call.invitee }) as RoomMember;
|
||||||
// @ts-ignore Mock
|
// @ts-ignore Mock
|
||||||
call.pushRemoteFeed(
|
call.pushRemoteFeed(
|
||||||
// @ts-ignore Mock
|
// @ts-ignore Mock
|
||||||
@ -1310,7 +1310,7 @@ describe("Group Call", function () {
|
|||||||
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const call = groupCall.calls.get(FAKE_USER_ID_2)!.get(FAKE_DEVICE_ID_2)!;
|
const call = groupCall.calls.get(FAKE_USER_ID_2)!.get(FAKE_DEVICE_ID_2)!;
|
||||||
call.getOpponentMember = () => ({ userId: call.invitee } as RoomMember);
|
call.getOpponentMember = () => ({ userId: call.invitee }) as RoomMember;
|
||||||
call.onNegotiateReceived({
|
call.onNegotiateReceived({
|
||||||
getContent: () => ({
|
getContent: () => ({
|
||||||
[SDPStreamMetadataKey]: {
|
[SDPStreamMetadataKey]: {
|
||||||
|
@ -26,7 +26,10 @@ export class NamespacedValue<S extends string, U extends string> {
|
|||||||
public constructor(stable: S, unstable: U);
|
public constructor(stable: S, unstable: U);
|
||||||
public constructor(stable: S, unstable?: U);
|
public constructor(stable: S, unstable?: U);
|
||||||
public constructor(stable: null | undefined, unstable: U);
|
public constructor(stable: null | undefined, unstable: U);
|
||||||
public constructor(public readonly stable?: S | null, public readonly unstable?: U) {
|
public constructor(
|
||||||
|
public readonly stable?: S | null,
|
||||||
|
public readonly unstable?: U,
|
||||||
|
) {
|
||||||
if (!this.unstable && !this.stable) {
|
if (!this.unstable && !this.stable) {
|
||||||
throw new Error("One of stable or unstable values must be supplied");
|
throw new Error("One of stable or unstable values must be supplied");
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,10 @@ interface ISecretRequestInternal {
|
|||||||
export class SecretSharing {
|
export class SecretSharing {
|
||||||
private requests = new Map<string, ISecretRequestInternal>();
|
private requests = new Map<string, ISecretRequestInternal>();
|
||||||
|
|
||||||
public constructor(private readonly baseApis: MatrixClient, private readonly cryptoCallbacks: ICryptoCallbacks) {}
|
public constructor(
|
||||||
|
private readonly baseApis: MatrixClient,
|
||||||
|
private readonly cryptoCallbacks: ICryptoCallbacks,
|
||||||
|
) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Request a secret from another device
|
* Request a secret from another device
|
||||||
|
@ -210,7 +210,11 @@ export abstract class DecryptionAlgorithm {
|
|||||||
export class DecryptionError extends Error {
|
export class DecryptionError extends Error {
|
||||||
public readonly detailedString: string;
|
public readonly detailedString: string;
|
||||||
|
|
||||||
public constructor(public readonly code: string, msg: string, details?: Record<string, string | Error>) {
|
public constructor(
|
||||||
|
public readonly code: string,
|
||||||
|
msg: string,
|
||||||
|
details?: Record<string, string | Error>,
|
||||||
|
) {
|
||||||
super(msg);
|
super(msg);
|
||||||
this.code = code;
|
this.code = code;
|
||||||
this.name = "DecryptionError";
|
this.name = "DecryptionError";
|
||||||
@ -242,7 +246,11 @@ export class UnknownDeviceError extends Error {
|
|||||||
* @param msg - message describing the problem
|
* @param msg - message describing the problem
|
||||||
* @param devices - set of unknown devices per user we're warning about
|
* @param devices - set of unknown devices per user we're warning about
|
||||||
*/
|
*/
|
||||||
public constructor(msg: string, public readonly devices: DeviceInfoMap, public event?: MatrixEvent) {
|
public constructor(
|
||||||
|
msg: string,
|
||||||
|
public readonly devices: DeviceInfoMap,
|
||||||
|
public event?: MatrixEvent,
|
||||||
|
) {
|
||||||
super(msg);
|
super(msg);
|
||||||
this.name = "UnknownDeviceError";
|
this.name = "UnknownDeviceError";
|
||||||
this.devices = devices;
|
this.devices = devices;
|
||||||
|
@ -164,7 +164,10 @@ class OutboundSessionInfo {
|
|||||||
* @param sharedHistory - whether the session can be freely shared with
|
* @param sharedHistory - whether the session can be freely shared with
|
||||||
* other group members, according to the room history visibility settings
|
* other group members, according to the room history visibility settings
|
||||||
*/
|
*/
|
||||||
public constructor(public readonly sessionId: string, public readonly sharedHistory = false) {
|
public constructor(
|
||||||
|
public readonly sessionId: string,
|
||||||
|
public readonly sharedHistory = false,
|
||||||
|
) {
|
||||||
this.creationTime = new Date().getTime();
|
this.creationTime = new Date().getTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,7 +124,10 @@ export class BackupManager {
|
|||||||
// The backup manager will schedule backup of keys when active (`scheduleKeyBackupSend`), this allows cancel when client is stopped
|
// The backup manager will schedule backup of keys when active (`scheduleKeyBackupSend`), this allows cancel when client is stopped
|
||||||
private clientRunning = true;
|
private clientRunning = true;
|
||||||
|
|
||||||
public constructor(private readonly baseApis: MatrixClient, public readonly getKey: GetKey) {
|
public constructor(
|
||||||
|
private readonly baseApis: MatrixClient,
|
||||||
|
public readonly getKey: GetKey,
|
||||||
|
) {
|
||||||
this.checkedForBackup = false;
|
this.checkedForBackup = false;
|
||||||
this.sendingBackups = false;
|
this.sendingBackups = false;
|
||||||
}
|
}
|
||||||
@ -773,7 +776,10 @@ const UNSTABLE_MSC3270_NAME = new UnstableValue(
|
|||||||
export class Aes256 implements BackupAlgorithm {
|
export class Aes256 implements BackupAlgorithm {
|
||||||
public static algorithmName = UNSTABLE_MSC3270_NAME.name;
|
public static algorithmName = UNSTABLE_MSC3270_NAME.name;
|
||||||
|
|
||||||
public constructor(public readonly authData: IAes256AuthData, private readonly key: Uint8Array) {}
|
public constructor(
|
||||||
|
public readonly authData: IAes256AuthData,
|
||||||
|
private readonly key: Uint8Array,
|
||||||
|
) {}
|
||||||
|
|
||||||
public static async init(authData: IAes256AuthData, getKey: () => Promise<Uint8Array>): Promise<Aes256> {
|
public static async init(authData: IAes256AuthData, getKey: () => Promise<Uint8Array>): Promise<Aes256> {
|
||||||
if (!authData) {
|
if (!authData) {
|
||||||
|
@ -973,7 +973,7 @@ export class Crypto extends TypedEventEmitter<CryptoEvent, CryptoEventHandlerMap
|
|||||||
*/
|
*/
|
||||||
// TODO this does not resolve with what it says it does
|
// TODO this does not resolve with what it says it does
|
||||||
public async bootstrapSecretStorage({
|
public async bootstrapSecretStorage({
|
||||||
createSecretStorageKey = async (): Promise<IRecoveryKey> => ({} as IRecoveryKey),
|
createSecretStorageKey = async (): Promise<IRecoveryKey> => ({}) as IRecoveryKey,
|
||||||
keyBackupInfo,
|
keyBackupInfo,
|
||||||
setupNewKeyBackup,
|
setupNewKeyBackup,
|
||||||
setupNewSecretStorage,
|
setupNewSecretStorage,
|
||||||
@ -2243,10 +2243,13 @@ export class Crypto extends TypedEventEmitter<CryptoEvent, CryptoEventHandlerMap
|
|||||||
const res = await this.baseApis.uploadKeysRequest(requestBody);
|
const res = await this.baseApis.uploadKeysRequest(requestBody);
|
||||||
|
|
||||||
if (fallbackJson) {
|
if (fallbackJson) {
|
||||||
this.fallbackCleanup = setTimeout(() => {
|
this.fallbackCleanup = setTimeout(
|
||||||
delete this.fallbackCleanup;
|
() => {
|
||||||
this.olmDevice.forgetOldFallbackKey();
|
delete this.fallbackCleanup;
|
||||||
}, 60 * 60 * 1000);
|
this.olmDevice.forgetOldFallbackKey();
|
||||||
|
},
|
||||||
|
60 * 60 * 1000,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
await this.olmDevice.markKeysAsPublished();
|
await this.olmDevice.markKeysAsPublished();
|
||||||
|
@ -71,7 +71,10 @@ export class IndexedDBCryptoStore implements CryptoStore {
|
|||||||
* @param indexedDB - global indexedDB instance
|
* @param indexedDB - global indexedDB instance
|
||||||
* @param dbName - name of db to connect to
|
* @param dbName - name of db to connect to
|
||||||
*/
|
*/
|
||||||
public constructor(private readonly indexedDB: IDBFactory, private readonly dbName: string) {}
|
public constructor(
|
||||||
|
private readonly indexedDB: IDBFactory,
|
||||||
|
private readonly dbName: string,
|
||||||
|
) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if this CryptoStore has ever been initialised (ie, it might contain data).
|
* Returns true if this CryptoStore has ever been initialised (ie, it might contain data).
|
||||||
|
@ -137,12 +137,15 @@ export class VerificationBase<
|
|||||||
if (this.transactionTimeoutTimer !== null) {
|
if (this.transactionTimeoutTimer !== null) {
|
||||||
clearTimeout(this.transactionTimeoutTimer);
|
clearTimeout(this.transactionTimeoutTimer);
|
||||||
}
|
}
|
||||||
this.transactionTimeoutTimer = setTimeout(() => {
|
this.transactionTimeoutTimer = setTimeout(
|
||||||
if (!this._done && !this.cancelled) {
|
() => {
|
||||||
logger.info("Triggering verification timeout");
|
if (!this._done && !this.cancelled) {
|
||||||
this.cancel(timeoutException);
|
logger.info("Triggering verification timeout");
|
||||||
}
|
this.cancel(timeoutException);
|
||||||
}, 10 * 60 * 1000); // 10 minutes
|
}
|
||||||
|
},
|
||||||
|
10 * 60 * 1000,
|
||||||
|
); // 10 minutes
|
||||||
}
|
}
|
||||||
|
|
||||||
private endTimer(): void {
|
private endTimer(): void {
|
||||||
|
@ -39,7 +39,11 @@ export class InRoomChannel implements IVerificationChannel {
|
|||||||
* @param roomId - id of the room where verification events should be posted in, should be a DM with the given user.
|
* @param roomId - id of the room where verification events should be posted in, should be a DM with the given user.
|
||||||
* @param userId - id of user that the verification request is directed at, should be present in the room.
|
* @param userId - id of user that the verification request is directed at, should be present in the room.
|
||||||
*/
|
*/
|
||||||
public constructor(private readonly client: MatrixClient, public readonly roomId: string, public userId?: string) {}
|
public constructor(
|
||||||
|
private readonly client: MatrixClient,
|
||||||
|
public readonly roomId: string,
|
||||||
|
public userId?: string,
|
||||||
|
) {}
|
||||||
|
|
||||||
public get receiveStartFromOtherDevices(): boolean {
|
public get receiveStartFromOtherDevices(): boolean {
|
||||||
return true;
|
return true;
|
||||||
|
@ -21,7 +21,10 @@ export enum InvalidStoreState {
|
|||||||
export class InvalidStoreError extends Error {
|
export class InvalidStoreError extends Error {
|
||||||
public static TOGGLED_LAZY_LOADING = InvalidStoreState.ToggledLazyLoading;
|
public static TOGGLED_LAZY_LOADING = InvalidStoreState.ToggledLazyLoading;
|
||||||
|
|
||||||
public constructor(public readonly reason: InvalidStoreState, public readonly value: any) {
|
public constructor(
|
||||||
|
public readonly reason: InvalidStoreState,
|
||||||
|
public readonly value: any,
|
||||||
|
) {
|
||||||
const message =
|
const message =
|
||||||
`Store is invalid because ${reason}, ` +
|
`Store is invalid because ${reason}, ` +
|
||||||
`please stop the client, delete all data and start the client again`;
|
`please stop the client, delete all data and start the client again`;
|
||||||
@ -47,7 +50,10 @@ export class InvalidCryptoStoreError extends Error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class KeySignatureUploadError extends Error {
|
export class KeySignatureUploadError extends Error {
|
||||||
public constructor(message: string, public readonly value: any) {
|
public constructor(
|
||||||
|
message: string,
|
||||||
|
public readonly value: any,
|
||||||
|
) {
|
||||||
super(message);
|
super(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,10 @@ export interface IFilterComponent {
|
|||||||
* 'Filters' are referred to as 'FilterCollections'.
|
* 'Filters' are referred to as 'FilterCollections'.
|
||||||
*/
|
*/
|
||||||
export class FilterComponent {
|
export class FilterComponent {
|
||||||
public constructor(private filterJson: IFilterComponent, public readonly userId?: string | undefined | null) {}
|
public constructor(
|
||||||
|
private filterJson: IFilterComponent,
|
||||||
|
public readonly userId?: string | undefined | null,
|
||||||
|
) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks with the filter component matches the given event
|
* Checks with the filter component matches the given event
|
||||||
|
@ -92,7 +92,10 @@ export class Filter {
|
|||||||
* @param userId - The user ID for this filter.
|
* @param userId - The user ID for this filter.
|
||||||
* @param filterId - The filter ID if known.
|
* @param filterId - The filter ID if known.
|
||||||
*/
|
*/
|
||||||
public constructor(public readonly userId: string | undefined | null, public filterId?: string) {}
|
public constructor(
|
||||||
|
public readonly userId: string | undefined | null,
|
||||||
|
public filterId?: string,
|
||||||
|
) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the ID of this filter on your homeserver (if known)
|
* Get the ID of this filter on your homeserver (if known)
|
||||||
|
@ -30,7 +30,10 @@ interface IErrorJson extends Partial<IUsageLimit> {
|
|||||||
* @param httpStatus - The HTTP response status code.
|
* @param httpStatus - The HTTP response status code.
|
||||||
*/
|
*/
|
||||||
export class HTTPError extends Error {
|
export class HTTPError extends Error {
|
||||||
public constructor(msg: string, public readonly httpStatus?: number) {
|
public constructor(
|
||||||
|
msg: string,
|
||||||
|
public readonly httpStatus?: number,
|
||||||
|
) {
|
||||||
super(msg);
|
super(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,8 +33,8 @@ interface TypedResponse<T> extends Response {
|
|||||||
export type ResponseType<T, O extends IHttpOpts> = O extends undefined
|
export type ResponseType<T, O extends IHttpOpts> = O extends undefined
|
||||||
? T
|
? T
|
||||||
: O extends { onlyData: true }
|
: O extends { onlyData: true }
|
||||||
? T
|
? T
|
||||||
: TypedResponse<T>;
|
: TypedResponse<T>;
|
||||||
|
|
||||||
export class FetchHttpApi<O extends IHttpOpts> {
|
export class FetchHttpApi<O extends IHttpOpts> {
|
||||||
private abortController = new AbortController();
|
private abortController = new AbortController();
|
||||||
|
@ -149,8 +149,12 @@ export type IAuthDict = AuthDict;
|
|||||||
export class NoAuthFlowFoundError extends Error {
|
export class NoAuthFlowFoundError extends Error {
|
||||||
public name = "NoAuthFlowFoundError";
|
public name = "NoAuthFlowFoundError";
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention, camelcase
|
public constructor(
|
||||||
public constructor(m: string, public readonly required_stages: string[], public readonly flows: UIAFlow[]) {
|
m: string,
|
||||||
|
// eslint-disable-next-line @typescript-eslint/naming-convention, camelcase
|
||||||
|
public readonly required_stages: string[],
|
||||||
|
public readonly flows: UIAFlow[],
|
||||||
|
) {
|
||||||
super(m);
|
super(m);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -156,7 +156,10 @@ extendLogger(logger);
|
|||||||
export class LogSpan implements BaseLogger {
|
export class LogSpan implements BaseLogger {
|
||||||
private readonly name;
|
private readonly name;
|
||||||
|
|
||||||
public constructor(private readonly parent: BaseLogger, name: string) {
|
public constructor(
|
||||||
|
private readonly parent: BaseLogger,
|
||||||
|
name: string,
|
||||||
|
) {
|
||||||
this.name = name + ":";
|
this.name = name + ":";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +37,10 @@ export class CallMembership {
|
|||||||
return deepCompare(a.data, b.data);
|
return deepCompare(a.data, b.data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public constructor(private parentEvent: MatrixEvent, private data: CallMembershipData) {
|
public constructor(
|
||||||
|
private parentEvent: MatrixEvent,
|
||||||
|
private data: CallMembershipData,
|
||||||
|
) {
|
||||||
if (typeof data.expires !== "number") throw new Error("Malformed membership: expires must be numeric");
|
if (typeof data.expires !== "number") throw new Error("Malformed membership: expires must be numeric");
|
||||||
if (typeof data.device_id !== "string") throw new Error("Malformed membership event: device_id must be string");
|
if (typeof data.device_id !== "string") throw new Error("Malformed membership event: device_id must be string");
|
||||||
if (typeof data.call_id !== "string") throw new Error("Malformed membership event: call_id must be string");
|
if (typeof data.call_id !== "string") throw new Error("Malformed membership event: call_id must be string");
|
||||||
|
@ -85,7 +85,10 @@ export enum TreePermissions {
|
|||||||
export class MSC3089TreeSpace {
|
export class MSC3089TreeSpace {
|
||||||
public readonly room: Room;
|
public readonly room: Room;
|
||||||
|
|
||||||
public constructor(private client: MatrixClient, public readonly roomId: string) {
|
public constructor(
|
||||||
|
private client: MatrixClient,
|
||||||
|
public readonly roomId: string,
|
||||||
|
) {
|
||||||
this.room = this.client.getRoom(this.roomId)!;
|
this.room = this.client.getRoom(this.roomId)!;
|
||||||
|
|
||||||
if (!this.room) throw new Error("Unknown room");
|
if (!this.room) throw new Error("Unknown room");
|
||||||
|
@ -1003,9 +1003,8 @@ export class EventTimelineSet extends TypedEventEmitter<EmittedEvents, EventTime
|
|||||||
|
|
||||||
if (!shouldLiveInRoom && !shouldLiveInThread) {
|
if (!shouldLiveInRoom && !shouldLiveInThread) {
|
||||||
logger.warn(
|
logger.warn(
|
||||||
`EventTimelineSet:canContain event encountered which cannot be added to any timeline roomId=${
|
`EventTimelineSet:canContain event encountered which cannot be added to any timeline roomId=${this.room
|
||||||
this.room?.roomId
|
?.roomId} eventId=${event.getId()} threadId=${event.threadRootId}`,
|
||||||
} eventId=${event.getId()} threadId=${event.threadRootId}`,
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,7 +75,11 @@ export class Poll extends TypedEventEmitter<Exclude<PollEvent, PollEvent.New>, P
|
|||||||
*/
|
*/
|
||||||
private undecryptableRelationEventIds = new Set<string>();
|
private undecryptableRelationEventIds = new Set<string>();
|
||||||
|
|
||||||
public constructor(public readonly rootEvent: MatrixEvent, private matrixClient: MatrixClient, private room: Room) {
|
public constructor(
|
||||||
|
public readonly rootEvent: MatrixEvent,
|
||||||
|
private matrixClient: MatrixClient,
|
||||||
|
private room: Room,
|
||||||
|
) {
|
||||||
super();
|
super();
|
||||||
if (!this.rootEvent.getRoomId() || !this.rootEvent.getId()) {
|
if (!this.rootEvent.getRoomId() || !this.rootEvent.getId()) {
|
||||||
throw new Error("Invalid poll start event.");
|
throw new Error("Invalid poll start event.");
|
||||||
|
@ -26,7 +26,10 @@ export class RelationsContainer {
|
|||||||
// this.relations.get(parentEventId).get(relationType).get(relationEventType)
|
// this.relations.get(parentEventId).get(relationType).get(relationEventType)
|
||||||
private relations = new Map<string, Map<RelationType | string, Map<EventType | string, Relations>>>();
|
private relations = new Map<string, Map<RelationType | string, Map<EventType | string, Relations>>>();
|
||||||
|
|
||||||
public constructor(private readonly client: MatrixClient, private readonly room?: Room) {}
|
public constructor(
|
||||||
|
private readonly client: MatrixClient,
|
||||||
|
private readonly room?: Room,
|
||||||
|
) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a collection of child events to a given event in this timeline set.
|
* Get a collection of child events to a given event in this timeline set.
|
||||||
|
@ -140,7 +140,10 @@ export class RoomMember extends TypedEventEmitter<RoomMemberEvent, RoomMemberEve
|
|||||||
* @param roomId - The room ID of the member.
|
* @param roomId - The room ID of the member.
|
||||||
* @param userId - The user ID of the member.
|
* @param userId - The user ID of the member.
|
||||||
*/
|
*/
|
||||||
public constructor(public readonly roomId: string, public readonly userId: string) {
|
public constructor(
|
||||||
|
public readonly roomId: string,
|
||||||
|
public readonly userId: string,
|
||||||
|
) {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
this.name = userId;
|
this.name = userId;
|
||||||
|
@ -196,7 +196,11 @@ export class RoomReceipts {
|
|||||||
* maps in RoomReceipts.
|
* maps in RoomReceipts.
|
||||||
*/
|
*/
|
||||||
class ReceiptInfo {
|
class ReceiptInfo {
|
||||||
public constructor(public eventId: string, public receiptType: string, public ts: number) {}
|
public constructor(
|
||||||
|
public eventId: string,
|
||||||
|
public receiptType: string,
|
||||||
|
public ts: number,
|
||||||
|
) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -187,7 +187,10 @@ export class RoomState extends TypedEventEmitter<EmittedEvents, EventHandlerMap>
|
|||||||
* and shared when the room state is cloned for the new timeline.
|
* and shared when the room state is cloned for the new timeline.
|
||||||
* This should only be passed from clone.
|
* This should only be passed from clone.
|
||||||
*/
|
*/
|
||||||
public constructor(public readonly roomId: string, private oobMemberFlags = { status: OobStatus.NotStarted }) {
|
public constructor(
|
||||||
|
public readonly roomId: string,
|
||||||
|
private oobMemberFlags = { status: OobStatus.NotStarted },
|
||||||
|
) {
|
||||||
super();
|
super();
|
||||||
this.updateModifiedTime();
|
this.updateModifiedTime();
|
||||||
}
|
}
|
||||||
|
@ -40,5 +40,8 @@ interface IInfo {
|
|||||||
* @param info - Optional. The summary info. Additional keys are supported.
|
* @param info - Optional. The summary info. Additional keys are supported.
|
||||||
*/
|
*/
|
||||||
export class RoomSummary {
|
export class RoomSummary {
|
||||||
public constructor(public readonly roomId: string, info?: IInfo) {}
|
public constructor(
|
||||||
|
public readonly roomId: string,
|
||||||
|
info?: IInfo,
|
||||||
|
) {}
|
||||||
}
|
}
|
||||||
|
@ -50,5 +50,8 @@ export class SearchResult {
|
|||||||
* @param context - the matching event and its
|
* @param context - the matching event and its
|
||||||
* context
|
* context
|
||||||
*/
|
*/
|
||||||
public constructor(public readonly rank: number, public readonly context: EventContext) {}
|
public constructor(
|
||||||
|
public readonly rank: number,
|
||||||
|
public readonly context: EventContext,
|
||||||
|
) {}
|
||||||
}
|
}
|
||||||
|
@ -140,7 +140,11 @@ export class Thread extends ReadReceipt<ThreadEmittedEvents, ThreadEventHandlerM
|
|||||||
*/
|
*/
|
||||||
public replayEvents: MatrixEvent[] | null = [];
|
public replayEvents: MatrixEvent[] | null = [];
|
||||||
|
|
||||||
public constructor(public readonly id: string, public rootEvent: MatrixEvent | undefined, opts: IThreadOpts) {
|
public constructor(
|
||||||
|
public readonly id: string,
|
||||||
|
public rootEvent: MatrixEvent | undefined,
|
||||||
|
opts: IThreadOpts,
|
||||||
|
) {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
// each Event in the thread adds a reemitter, so we could hit the listener limit.
|
// each Event in the thread adds a reemitter, so we could hit the listener limit.
|
||||||
|
@ -44,8 +44,8 @@ type EventEmitterErrorListener = (error: Error) => void;
|
|||||||
export type Listener<E extends string, A extends ListenerMap<E>, T extends E | EventEmitterEvents> = T extends E
|
export type Listener<E extends string, A extends ListenerMap<E>, T extends E | EventEmitterEvents> = T extends E
|
||||||
? A[T]
|
? A[T]
|
||||||
: T extends EventEmitterEvents
|
: T extends EventEmitterEvents
|
||||||
? EventEmitterErrorListener
|
? EventEmitterErrorListener
|
||||||
: EventEmitterEventListener;
|
: EventEmitterEventListener;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Typed Event Emitter class which can act as a Base Model for all our model
|
* Typed Event Emitter class which can act as a Base Model for all our model
|
||||||
|
@ -186,7 +186,7 @@ const normalizeBearerTokenResponseTokenType = (response: SigninResponse): Bearer
|
|||||||
refresh_token: response.refresh_token,
|
refresh_token: response.refresh_token,
|
||||||
access_token: response.access_token,
|
access_token: response.access_token,
|
||||||
token_type: "Bearer",
|
token_type: "Bearer",
|
||||||
} as BearerTokenResponse);
|
}) as BearerTokenResponse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @experimental
|
* @experimental
|
||||||
|
@ -17,7 +17,10 @@ limitations under the License.
|
|||||||
import { RendezvousFailureReason } from ".";
|
import { RendezvousFailureReason } from ".";
|
||||||
|
|
||||||
export class RendezvousError extends Error {
|
export class RendezvousError extends Error {
|
||||||
public constructor(message: string, public readonly code: RendezvousFailureReason) {
|
public constructor(
|
||||||
|
message: string,
|
||||||
|
public readonly code: RendezvousFailureReason,
|
||||||
|
) {
|
||||||
super(message);
|
super(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -114,7 +114,10 @@ type ExtensionToDeviceResponse = {
|
|||||||
class ExtensionToDevice implements Extension<ExtensionToDeviceRequest, ExtensionToDeviceResponse> {
|
class ExtensionToDevice implements Extension<ExtensionToDeviceRequest, ExtensionToDeviceResponse> {
|
||||||
private nextBatch: string | null = null;
|
private nextBatch: string | null = null;
|
||||||
|
|
||||||
public constructor(private readonly client: MatrixClient, private readonly cryptoCallbacks?: SyncCryptoCallbacks) {}
|
public constructor(
|
||||||
|
private readonly client: MatrixClient,
|
||||||
|
private readonly cryptoCallbacks?: SyncCryptoCallbacks,
|
||||||
|
) {}
|
||||||
|
|
||||||
public name(): string {
|
public name(): string {
|
||||||
return "to_device";
|
return "to_device";
|
||||||
|
@ -143,7 +143,10 @@ export class LocalIndexedDBStoreBackend implements IIndexedDBBackend {
|
|||||||
* @param dbName - Optional database name. The same name must be used
|
* @param dbName - Optional database name. The same name must be used
|
||||||
* to open the same database.
|
* to open the same database.
|
||||||
*/
|
*/
|
||||||
public constructor(private readonly indexedDB: IDBFactory, dbName = "default") {
|
public constructor(
|
||||||
|
private readonly indexedDB: IDBFactory,
|
||||||
|
dbName = "default",
|
||||||
|
) {
|
||||||
this.dbName = "matrix-js-sdk:" + dbName;
|
this.dbName = "matrix-js-sdk:" + dbName;
|
||||||
this.syncAccumulator = new SyncAccumulator();
|
this.syncAccumulator = new SyncAccumulator();
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,10 @@ export class RemoteIndexedDBStoreBackend implements IIndexedDBBackend {
|
|||||||
* @param dbName - Optional database name. The same name must be used
|
* @param dbName - Optional database name. The same name must be used
|
||||||
* to open the same database.
|
* to open the same database.
|
||||||
*/
|
*/
|
||||||
public constructor(private readonly workerFactory: () => Worker, private readonly dbName?: string) {}
|
public constructor(
|
||||||
|
private readonly workerFactory: () => Worker,
|
||||||
|
private readonly dbName?: string,
|
||||||
|
) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attempt to connect to the database. This can fail if the user does not
|
* Attempt to connect to the database. This can fail if the user does not
|
||||||
|
@ -234,7 +234,11 @@ export class SyncApi {
|
|||||||
* @param syncOpts - sync-specific options passed by the client
|
* @param syncOpts - sync-specific options passed by the client
|
||||||
* @internal
|
* @internal
|
||||||
*/
|
*/
|
||||||
public constructor(private readonly client: MatrixClient, opts?: IStoredClientOpts, syncOpts?: SyncApiOptions) {
|
public constructor(
|
||||||
|
private readonly client: MatrixClient,
|
||||||
|
opts?: IStoredClientOpts,
|
||||||
|
syncOpts?: SyncApiOptions,
|
||||||
|
) {
|
||||||
this.opts = defaultClientOpts(opts);
|
this.opts = defaultClientOpts(opts);
|
||||||
this.syncOpts = defaultSyncApiOpts(syncOpts);
|
this.syncOpts = defaultSyncApiOpts(syncOpts);
|
||||||
|
|
||||||
|
@ -441,7 +441,10 @@ export class TimelineIndex {
|
|||||||
public pendingPaginate?: Promise<boolean>;
|
public pendingPaginate?: Promise<boolean>;
|
||||||
|
|
||||||
// index: the indexes are relative to BaseIndex, so could well be negative.
|
// index: the indexes are relative to BaseIndex, so could well be negative.
|
||||||
public constructor(public timeline: EventTimeline, public index: number) {}
|
public constructor(
|
||||||
|
public timeline: EventTimeline,
|
||||||
|
public index: number,
|
||||||
|
) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @returns the minimum possible value for the index in the current
|
* @returns the minimum possible value for the index in the current
|
||||||
|
@ -1309,9 +1309,8 @@ export class MatrixCall extends TypedEventEmitter<CallEvent, CallEventHandlerMap
|
|||||||
|
|
||||||
const track = stream.getTracks().find((track) => track.kind === "video");
|
const track = stream.getTracks().find((track) => track.kind === "video");
|
||||||
|
|
||||||
const sender = this.transceivers.get(
|
const sender = this.transceivers.get(getTransceiverKey(SDPStreamMetadataPurpose.Usermedia, "video"))
|
||||||
getTransceiverKey(SDPStreamMetadataPurpose.Usermedia, "video"),
|
?.sender;
|
||||||
)?.sender;
|
|
||||||
|
|
||||||
sender?.replaceTrack(track ?? null);
|
sender?.replaceTrack(track ?? null);
|
||||||
|
|
||||||
@ -1327,9 +1326,8 @@ export class MatrixCall extends TypedEventEmitter<CallEvent, CallEventHandlerMap
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const track = this.localUsermediaStream?.getTracks().find((track) => track.kind === "video");
|
const track = this.localUsermediaStream?.getTracks().find((track) => track.kind === "video");
|
||||||
const sender = this.transceivers.get(
|
const sender = this.transceivers.get(getTransceiverKey(SDPStreamMetadataPurpose.Usermedia, "video"))
|
||||||
getTransceiverKey(SDPStreamMetadataPurpose.Usermedia, "video"),
|
?.sender;
|
||||||
)?.sender;
|
|
||||||
sender?.replaceTrack(track ?? null);
|
sender?.replaceTrack(track ?? null);
|
||||||
|
|
||||||
this.client.getMediaHandler().stopScreensharingStream(this.localScreensharingStream!);
|
this.client.getMediaHandler().stopScreensharingStream(this.localScreensharingStream!);
|
||||||
|
@ -1605,17 +1605,20 @@ export class GroupCall extends TypedEventEmitter<
|
|||||||
await this.addDeviceToMemberState();
|
await this.addDeviceToMemberState();
|
||||||
|
|
||||||
// Resend the state event every so often so it doesn't become stale
|
// Resend the state event every so often so it doesn't become stale
|
||||||
this.resendMemberStateTimer = setInterval(async () => {
|
this.resendMemberStateTimer = setInterval(
|
||||||
logger.log(`GroupCall ${this.groupCallId} updateMemberState() resending call member state"`);
|
async () => {
|
||||||
try {
|
logger.log(`GroupCall ${this.groupCallId} updateMemberState() resending call member state"`);
|
||||||
await this.addDeviceToMemberState();
|
try {
|
||||||
} catch (e) {
|
await this.addDeviceToMemberState();
|
||||||
logger.error(
|
} catch (e) {
|
||||||
`GroupCall ${this.groupCallId} updateMemberState() failed to resend call member state`,
|
logger.error(
|
||||||
e,
|
`GroupCall ${this.groupCallId} updateMemberState() failed to resend call member state`,
|
||||||
);
|
e,
|
||||||
}
|
);
|
||||||
}, (DEVICE_TIMEOUT * 3) / 4);
|
}
|
||||||
|
},
|
||||||
|
(DEVICE_TIMEOUT * 3) / 4,
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
// Remove the local device
|
// Remove the local device
|
||||||
await this.updateDevices(
|
await this.updateDevices(
|
||||||
|
@ -25,7 +25,11 @@ export class GroupCallStats {
|
|||||||
public readonly reports = new StatsReportEmitter();
|
public readonly reports = new StatsReportEmitter();
|
||||||
private readonly summaryStatsReportGatherer = new SummaryStatsReportGatherer(this.reports);
|
private readonly summaryStatsReportGatherer = new SummaryStatsReportGatherer(this.reports);
|
||||||
|
|
||||||
public constructor(private groupCallId: string, private userId: string, private interval: number = 10000) {}
|
public constructor(
|
||||||
|
private groupCallId: string,
|
||||||
|
private userId: string,
|
||||||
|
private interval: number = 10000,
|
||||||
|
) {}
|
||||||
|
|
||||||
public start(): void {
|
public start(): void {
|
||||||
if (this.timer === undefined && this.interval > 0) {
|
if (this.timer === undefined && this.interval > 0) {
|
||||||
|
@ -5469,10 +5469,10 @@ prelude-ls@^1.2.1:
|
|||||||
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
|
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
|
||||||
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
|
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
|
||||||
|
|
||||||
prettier@2.8.8:
|
prettier@3.1.1:
|
||||||
version "2.8.8"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
|
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.1.tgz#6ba9f23165d690b6cbdaa88cb0807278f7019848"
|
||||||
integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
|
integrity sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==
|
||||||
|
|
||||||
pretty-format@^28.1.3:
|
pretty-format@^28.1.3:
|
||||||
version "28.1.3"
|
version "28.1.3"
|
||||||
|
Reference in New Issue
Block a user