From 91f6f0f9c5648583ebe20b485fe955cec29c97b8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 13:17:20 +0000 Subject: [PATCH] Update typescript-eslint monorepo to v8 (major) (#4388) * Update typescript-eslint monorepo to v8 * Migrate to stylistic Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Iterate Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Michael Telatynski <7t3chguy@gmail.com> --- .eslintrc.cjs | 6 +- package.json | 7 +- spec/integ/crypto/crypto.spec.ts | 4 +- spec/integ/crypto/verification.spec.ts | 1 + .../rendezvous/MSC4108SignInWithQR.spec.ts | 4 +- spec/olm-loader.ts | 2 +- spec/test-utils/AccountDataAccumulator.ts | 4 +- spec/test-utils/test-utils.ts | 2 +- spec/unit/ToDeviceMessageQueue.spec.ts | 2 +- spec/unit/crypto.spec.ts | 2 +- spec/unit/crypto/cross-signing.spec.ts | 10 +- spec/unit/crypto/verification/sas.spec.ts | 2 +- spec/unit/matrix-client.spec.ts | 22 +-- .../OutgoingRequestProcessor.spec.ts | 4 +- spec/unit/rust-crypto/secret-storage.spec.ts | 2 +- spec/unit/scheduler.spec.ts | 2 +- spec/unit/webrtc/call.spec.ts | 2 +- spec/unit/webrtc/callFeed.spec.ts | 2 +- src/browser-index.ts | 2 +- src/client.ts | 6 +- src/crypto-api/index.ts | 4 +- src/crypto/CrossSigning.ts | 4 +- src/crypto/OlmDevice.ts | 4 +- src/crypto/algorithms/megolm.ts | 6 +- src/crypto/index.ts | 2 +- .../store/indexeddb-crypto-store-backend.ts | 2 +- src/http-api/fetch.ts | 2 +- src/interactive-auth.ts | 2 +- src/matrix.ts | 12 +- src/matrixrtc/MatrixRTCSession.ts | 2 +- src/matrixrtc/index.ts | 4 +- src/models/invites-ignorer.ts | 2 +- src/models/room-receipts.ts | 4 +- src/models/room.ts | 4 +- src/models/typed-event-emitter.ts | 4 +- src/rendezvous/MSC3906Rendezvous.ts | 2 +- src/rendezvous/index.ts | 6 +- .../PerSessionKeyBackupDownloader.ts | 2 +- src/rust-crypto/backup.ts | 4 +- src/store/indexeddb.ts | 16 +- src/store/memory.ts | 4 +- src/webrtc/groupCall.ts | 4 +- src/webrtc/stats/callStatsReportSummary.ts | 2 +- src/webrtc/stats/trackStatsBuilder.ts | 2 +- yarn.lock | 184 ++++++++---------- 45 files changed, 176 insertions(+), 196 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 4b568b8aa..036f51f75 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -108,10 +108,8 @@ module.exports = { "@typescript-eslint/ban-ts-comment": "off", // We're okay with assertion errors when we ask for them "@typescript-eslint/no-non-null-assertion": "off", - - // The non-TypeScript rule produces false positives - "func-call-spacing": "off", - "@typescript-eslint/func-call-spacing": ["error"], + // We do this sometimes to brand interfaces + "@typescript-eslint/no-empty-object-type": "off", "quotes": "off", // We use a `logger` intermediary module diff --git a/package.json b/package.json index 6c3b195a0..f1d6dce94 100644 --- a/package.json +++ b/package.json @@ -81,6 +81,7 @@ "@babel/preset-typescript": "^7.12.7", "@casualbot/jest-sonar-reporter": "2.2.7", "@peculiar/webcrypto": "^1.4.5", + "@stylistic/eslint-plugin": "^2.9.0", "@types/bs58": "^4.0.1", "@types/content-type": "^1.1.5", "@types/debug": "^4.1.7", @@ -88,8 +89,8 @@ "@types/node": "18", "@types/sdp-transform": "^2.4.5", "@types/uuid": "10", - "@typescript-eslint/eslint-plugin": "^7.0.0", - "@typescript-eslint/parser": "^7.0.0", + "@typescript-eslint/eslint-plugin": "^8.0.0", + "@typescript-eslint/parser": "^8.0.0", "babel-jest": "^29.0.0", "babel-plugin-search-and-replace": "^1.1.1", "debug": "^4.3.4", @@ -100,7 +101,7 @@ "eslint-plugin-import": "^2.26.0", "eslint-plugin-jest": "^28.0.0", "eslint-plugin-jsdoc": "^50.0.0", - "eslint-plugin-matrix-org": "^1.0.0", + "eslint-plugin-matrix-org": "^2.0.1", "eslint-plugin-n": "^14.0.0", "eslint-plugin-tsdoc": "^0.3.0", "eslint-plugin-unicorn": "^56.0.0", diff --git a/spec/integ/crypto/crypto.spec.ts b/spec/integ/crypto/crypto.spec.ts index e5d25537f..3d62413c3 100644 --- a/spec/integ/crypto/crypto.spec.ts +++ b/spec/integ/crypto/crypto.spec.ts @@ -3499,7 +3499,7 @@ describe.each(Object.entries(CRYPTO_BACKENDS))("crypto (%s)", (backend: string, return client; } - function mkEncryptionEvent(content: Object) { + function mkEncryptionEvent(content: object) { return mkEventCustom({ sender: persistentStoreClient.getSafeUserId(), type: "m.room.encryption", @@ -3512,7 +3512,7 @@ describe.each(Object.entries(CRYPTO_BACKENDS))("crypto (%s)", (backend: string, * * @param stateEvents - Additional state events for the test room */ - function getSyncResponseWithState(stateEvents: Array) { + function getSyncResponseWithState(stateEvents: Array) { const roomResponse = { state: { events: [ diff --git a/spec/integ/crypto/verification.spec.ts b/spec/integ/crypto/verification.spec.ts index d288adfa0..763de044a 100644 --- a/spec/integ/crypto/verification.spec.ts +++ b/spec/integ/crypto/verification.spec.ts @@ -95,6 +95,7 @@ beforeAll(async () => { // load the rust library. This can take a few seconds on a slow GH worker. beforeAll(async () => { + // eslint-disable-next-line @typescript-eslint/no-require-imports const RustSdkCryptoJs = await require("@matrix-org/matrix-sdk-crypto-wasm"); await RustSdkCryptoJs.initAsync(); }, 10000); diff --git a/spec/integ/rendezvous/MSC4108SignInWithQR.spec.ts b/spec/integ/rendezvous/MSC4108SignInWithQR.spec.ts index e64ba412a..b564155fe 100644 --- a/spec/integ/rendezvous/MSC4108SignInWithQR.spec.ts +++ b/spec/integ/rendezvous/MSC4108SignInWithQR.spec.ts @@ -267,7 +267,7 @@ describe("MSC4108SignInWithQR", () => { it("should abort if device doesn't come up by timeout", async () => { jest.spyOn(global, "setTimeout").mockImplementation((fn) => { - (fn)(); + fn(); // TODO: mock timers properly return -1 as any; }); @@ -320,7 +320,7 @@ describe("MSC4108SignInWithQR", () => { it("should not send secrets if user cancels", async () => { jest.spyOn(global, "setTimeout").mockImplementation((fn) => { - (fn)(); + fn(); // TODO: mock timers properly return -1 as any; }); diff --git a/spec/olm-loader.ts b/spec/olm-loader.ts index ced175811..5f12ca950 100644 --- a/spec/olm-loader.ts +++ b/spec/olm-loader.ts @@ -19,7 +19,7 @@ import { logger } from "../src/logger"; // try to load the olm library. try { - // eslint-disable-next-line @typescript-eslint/no-var-requires + // eslint-disable-next-line @typescript-eslint/no-require-imports globalThis.Olm = require("@matrix-org/olm"); logger.log("loaded libolm"); } catch (e) { diff --git a/spec/test-utils/AccountDataAccumulator.ts b/spec/test-utils/AccountDataAccumulator.ts index f24b7f53b..50d00973c 100644 --- a/spec/test-utils/AccountDataAccumulator.ts +++ b/spec/test-utils/AccountDataAccumulator.ts @@ -27,7 +27,7 @@ export class AccountDataAccumulator { * Will be updated when fetchMock intercepts calls to PUT `/_matrix/client/v3/user/:userId/account_data/`. * Will be used by `sendSyncResponseWithUpdatedAccountData` */ - public accountDataEvents: Map = new Map(); + public accountDataEvents: Map = new Map(); /** * Intercept requests to set a particular type of account data. @@ -101,7 +101,7 @@ export class AccountDataAccumulator { })), }, }); - } catch (err) { + } catch { // Might fail with "Cannot queue more than one /sync response" if called too often. // It's ok if it fails here, the sync response is cumulative and will contain // the latest account data. diff --git a/spec/test-utils/test-utils.ts b/spec/test-utils/test-utils.ts index a6cc64455..15c7c9efd 100644 --- a/spec/test-utils/test-utils.ts +++ b/spec/test-utils/test-utils.ts @@ -127,7 +127,7 @@ export function mock(constr: { new (...args: any[]): T }, name: string): T { if (constr.prototype[key] instanceof Function) { result[key] = jest.fn(); } - } catch (ex) { + } catch { // Direct access to some non-function fields of DOM prototypes may // cause exceptions. // Overwriting will not work either in that case. diff --git a/spec/unit/ToDeviceMessageQueue.spec.ts b/spec/unit/ToDeviceMessageQueue.spec.ts index 7c0a023e5..2689cd1e4 100644 --- a/spec/unit/ToDeviceMessageQueue.spec.ts +++ b/spec/unit/ToDeviceMessageQueue.spec.ts @@ -9,7 +9,7 @@ import { defer } from "../../src/utils"; describe("onResumedSync", () => { let batch: IndexedToDeviceBatch | null; - let shouldFailSendToDevice: Boolean; + let shouldFailSendToDevice: boolean; let onSendToDeviceFailure: () => void; let onSendToDeviceSuccess: () => void; let resumeSync: (newState: SyncState, oldState: SyncState) => void; diff --git a/spec/unit/crypto.spec.ts b/spec/unit/crypto.spec.ts index 680b973ad..fa287a3a9 100644 --- a/spec/unit/crypto.spec.ts +++ b/spec/unit/crypto.spec.ts @@ -607,7 +607,7 @@ describe("Crypto", function () { event.claimedEd25519Key = null; try { await bobClient.crypto!.decryptEvent(event); - } catch (e) { + } catch { // we expect this to fail because we don't have the // decryption keys yet } diff --git a/spec/unit/crypto/cross-signing.spec.ts b/spec/unit/crypto/cross-signing.spec.ts index 90a6e2b31..ad347dd32 100644 --- a/spec/unit/crypto/cross-signing.spec.ts +++ b/spec/unit/crypto/cross-signing.spec.ts @@ -140,9 +140,7 @@ describe("Cross Signing", function () { }); } - const error = new MatrixError(errorResponse); - error.httpStatus == 401; - throw error; + throw new MatrixError(errorResponse, 401); }; alice.uploadKeySignatures = async () => ({ failures: {} }); alice.setAccountData = async () => ({}); @@ -827,7 +825,7 @@ describe("Cross Signing", function () { }); it("should offer to upgrade device verifications to cross-signing", async function () { - let upgradeResolveFunc: Function; + let upgradeResolveFunc: () => void; const { client: alice } = await makeTestClient( { userId: "@alice:example.com", deviceId: "Osborne2" }, @@ -866,7 +864,7 @@ describe("Cross Signing", function () { // cross-signing key is signed by his Dynabook, which alice has // verified, and ask if the device verification should be upgraded to a // cross-signing verification - let upgradePromise = new Promise((resolve) => { + let upgradePromise = new Promise((resolve) => { upgradeResolveFunc = resolve; }); await resetCrossSigningKeys(alice); @@ -885,7 +883,7 @@ describe("Cross Signing", function () { expect(bobTrust2.isCrossSigningVerified()).toBeFalsy(); expect(bobTrust2.isTofu()).toBeTruthy(); - upgradePromise = new Promise((resolve) => { + upgradePromise = new Promise((resolve) => { upgradeResolveFunc = resolve; }); alice.crypto!.deviceList.emit(CryptoEvent.UserCrossSigningUpdated, "@bob:example.com"); diff --git a/spec/unit/crypto/verification/sas.spec.ts b/spec/unit/crypto/verification/sas.spec.ts index ba73ced6a..7a4f65d05 100644 --- a/spec/unit/crypto/verification/sas.spec.ts +++ b/spec/unit/crypto/verification/sas.spec.ts @@ -454,7 +454,7 @@ describe("SAS verification", function () { let bobSasEvent: ISasEvent | null; let aliceVerifier: SAS; let bobPromise: Promise; - let clearTestClientTimeouts: Function; + let clearTestClientTimeouts: () => void; beforeEach(async function () { [[alice, bob], clearTestClientTimeouts] = await makeTestClients( diff --git a/spec/unit/matrix-client.spec.ts b/spec/unit/matrix-client.spec.ts index 52d6a0777..902a79b23 100644 --- a/spec/unit/matrix-client.spec.ts +++ b/spec/unit/matrix-client.spec.ts @@ -102,7 +102,7 @@ type HttpLookup = { error?: object; expectBody?: Record; expectQueryParams?: QueryDict; - thenCall?: Function; + thenCall?: () => void; }; interface Options extends ICreateRoomOpts { @@ -403,7 +403,7 @@ describe("MatrixClient", function () { async function assertRequestsMade( responses: { prefix?: string; - error?: { httpStatus: Number; errcode: string }; + error?: { httpStatus: number; errcode: string }; data?: { event_id: string }; }[], expectRejects = false, @@ -1515,7 +1515,7 @@ describe("MatrixClient", function () { }); describe("emitted sync events", function () { - function syncChecker(expectedStates: [string, string | null][], done: Function) { + function syncChecker(expectedStates: [string, string | null][], done: () => void) { return function syncListener(state: SyncState, old: SyncState | null) { const expected = expectedStates.shift(); logger.log("'sync' curr=%s old=%s EXPECT=%s", state, old, expected); @@ -1537,7 +1537,7 @@ describe("MatrixClient", function () { it("should transition null -> PREPARED after the first /sync", async () => { const expectedStates: [string, string | null][] = []; expectedStates.push(["PREPARED", null]); - const didSyncPromise = new Promise((resolve) => { + const didSyncPromise = new Promise((resolve) => { client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve)); }); await client.startClient(); @@ -1554,7 +1554,7 @@ describe("MatrixClient", function () { error: { errcode: "NOPE_NOPE_NOPE" }, }); expectedStates.push(["ERROR", null]); - const didSyncPromise = new Promise((resolve) => { + const didSyncPromise = new Promise((resolve) => { client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve)); }); await client.startClient(); @@ -1594,7 +1594,7 @@ describe("MatrixClient", function () { expectedStates.push(["RECONNECTING", null]); expectedStates.push(["ERROR", "RECONNECTING"]); expectedStates.push(["CATCHUP", "ERROR"]); - const didSyncPromise = new Promise((resolve) => { + const didSyncPromise = new Promise((resolve) => { client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve)); }); await client.startClient(); @@ -1605,7 +1605,7 @@ describe("MatrixClient", function () { const expectedStates: [string, string | null][] = []; expectedStates.push(["PREPARED", null]); expectedStates.push(["SYNCING", "PREPARED"]); - const didSyncPromise = new Promise((resolve) => { + const didSyncPromise = new Promise((resolve) => { client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve)); }); await client.startClient(); @@ -1630,7 +1630,7 @@ describe("MatrixClient", function () { expectedStates.push(["SYNCING", "PREPARED"]); expectedStates.push(["RECONNECTING", "SYNCING"]); expectedStates.push(["ERROR", "RECONNECTING"]); - const didSyncPromise = new Promise((resolve) => { + const didSyncPromise = new Promise((resolve) => { client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve)); }); await client.startClient(); @@ -1649,7 +1649,7 @@ describe("MatrixClient", function () { expectedStates.push(["PREPARED", null]); expectedStates.push(["SYNCING", "PREPARED"]); expectedStates.push(["ERROR", "SYNCING"]); - const didSyncPromise = new Promise((resolve) => { + const didSyncPromise = new Promise((resolve) => { client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve)); }); await client.startClient(); @@ -1664,7 +1664,7 @@ describe("MatrixClient", function () { expectedStates.push(["PREPARED", null]); expectedStates.push(["SYNCING", "PREPARED"]); expectedStates.push(["SYNCING", "SYNCING"]); - const didSyncPromise = new Promise((resolve) => { + const didSyncPromise = new Promise((resolve) => { client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve)); }); await client.startClient(); @@ -1695,7 +1695,7 @@ describe("MatrixClient", function () { expectedStates.push(["RECONNECTING", "SYNCING"]); expectedStates.push(["ERROR", "RECONNECTING"]); expectedStates.push(["ERROR", "ERROR"]); - const didSyncPromise = new Promise((resolve) => { + const didSyncPromise = new Promise((resolve) => { client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve)); }); await client.startClient(); diff --git a/spec/unit/rust-crypto/OutgoingRequestProcessor.spec.ts b/spec/unit/rust-crypto/OutgoingRequestProcessor.spec.ts index 4074e1c9a..3f2199a09 100644 --- a/spec/unit/rust-crypto/OutgoingRequestProcessor.spec.ts +++ b/spec/unit/rust-crypto/OutgoingRequestProcessor.spec.ts @@ -208,7 +208,7 @@ describe("OutgoingRequestProcessor", () => { const outgoingRequest = new UploadSigningKeysRequest(JSON.stringify(testReq)); // also create a UIA callback - const authCallback: UIAuthCallback = async (makeRequest) => { + const authCallback: UIAuthCallback = async (makeRequest) => { return await makeRequest({ type: "test" }); }; @@ -458,7 +458,7 @@ describe("OutgoingRequestProcessor", () => { throw new Error("Failed to fetch"); } }); - const authCallback: UIAuthCallback = async (makeRequest) => { + const authCallback: UIAuthCallback = async (makeRequest) => { return await makeRequest({ type: "test" }); }; const requestPromise = processor.makeOutgoingRequest(outgoingRequest, authCallback); diff --git a/spec/unit/rust-crypto/secret-storage.spec.ts b/spec/unit/rust-crypto/secret-storage.spec.ts index 6a8bbf7a5..0667dbd72 100644 --- a/spec/unit/rust-crypto/secret-storage.spec.ts +++ b/spec/unit/rust-crypto/secret-storage.spec.ts @@ -98,7 +98,7 @@ describe("secret-storage", () => { } else if (secretName == "secretE") { return { aaaa: {}, bbbb: {} }; } else { - null; + return null; } }), getDefaultKeyId: jest.fn().mockResolvedValue("aaaa"), diff --git a/spec/unit/scheduler.spec.ts b/spec/unit/scheduler.spec.ts index ecdd729a9..e37a3b382 100644 --- a/spec/unit/scheduler.spec.ts +++ b/spec/unit/scheduler.spec.ts @@ -12,7 +12,7 @@ jest.useFakeTimers(); describe("MatrixScheduler", function () { let scheduler: MatrixScheduler>; - let retryFn: Function | null; + let retryFn: ((event: MatrixEvent | null, attempt: number, err: MatrixError) => number) | null; let queueFn: ((event: MatrixEvent) => string | null) | null; let deferred: IDeferred>; const roomId = "!foo:bar"; diff --git a/spec/unit/webrtc/call.spec.ts b/spec/unit/webrtc/call.spec.ts index db2b49654..f8fc35a66 100644 --- a/spec/unit/webrtc/call.spec.ts +++ b/spec/unit/webrtc/call.spec.ts @@ -1228,7 +1228,7 @@ describe("Call", function () { }); describe("Screen sharing", () => { - const waitNegotiateFunc = (resolve: Function): void => { + const waitNegotiateFunc = (resolve: () => void): void => { mockSendEvent.mockImplementationOnce(() => { // Note that the peer connection here is a dummy one and always returns // dummy SDP, so there's not much point returning the content: the SDP will diff --git a/spec/unit/webrtc/callFeed.spec.ts b/spec/unit/webrtc/callFeed.spec.ts index ea80d5267..bce56261e 100644 --- a/spec/unit/webrtc/callFeed.spec.ts +++ b/spec/unit/webrtc/callFeed.spec.ts @@ -101,7 +101,7 @@ describe("CallFeed", () => { it.each([ [CallState.Connected, true], [CallState.Connecting, false], - ])("should react to call state, when !isLocal()", (state: CallState, expected: Boolean) => { + ])("should react to call state, when !isLocal()", (state: CallState, expected: boolean) => { call.emit(CallEvent.State, state, CallState.InviteSent, call.typed()); expect(feed.connected).toBe(expected); diff --git a/src/browser-index.ts b/src/browser-index.ts index 6b77aed91..6a229897b 100644 --- a/src/browser-index.ts +++ b/src/browser-index.ts @@ -33,7 +33,7 @@ globalThis.__js_sdk_entrypoint = true; let indexedDB: IDBFactory | undefined; try { indexedDB = globalThis.indexedDB; -} catch (e) {} +} catch {} // if our browser (appears to) support indexeddb, use an indexeddb crypto store. if (indexedDB) { diff --git a/src/client.ts b/src/client.ts index 352c3c58e..d3683fe33 100644 --- a/src/client.ts +++ b/src/client.ts @@ -1781,7 +1781,7 @@ export class MatrixClient extends TypedEventEmitter { try { await ev.attemptDecryption(this.crypto, { isRetry: true, forceRedecryptIfUntrusted }); - } catch (e) { + } catch { // don't die if something goes wrong } }), @@ -2128,7 +2128,7 @@ export class MegolmDecryption extends DecryptionAlgorithm { [...pending].map(async (ev) => { try { await ev.attemptDecryption(this.crypto); - } catch (e) { + } catch { // don't die if something goes wrong } }), diff --git a/src/crypto/index.ts b/src/crypto/index.ts index 34cf5c5db..829000bf9 100644 --- a/src/crypto/index.ts +++ b/src/crypto/index.ts @@ -1497,7 +1497,7 @@ export class Crypto extends TypedEventEmitter { const sanitizedQsUrlPiece = sanitizedQsString ? `?${sanitizedQsString}` : ""; return asUrl.origin + asUrl.pathname + sanitizedQsUrlPiece; - } catch (error) { + } catch { // defensive coding for malformed url return "??"; } diff --git a/src/interactive-auth.ts b/src/interactive-auth.ts index 60c31d017..e98ed64a4 100644 --- a/src/interactive-auth.ts +++ b/src/interactive-auth.ts @@ -415,7 +415,7 @@ export class InteractiveAuth { while (this.submitPromise) { try { await this.submitPromise; - } catch (e) {} + } catch {} } // use the sessionid from the last request, if one is present. diff --git a/src/matrix.ts b/src/matrix.ts index 29c619fa8..1a79e8b04 100644 --- a/src/matrix.ts +++ b/src/matrix.ts @@ -57,8 +57,8 @@ export * from "./crypto/store/localStorage-crypto-store.ts"; export * from "./crypto/store/indexeddb-crypto-store.ts"; export type { OutgoingRoomKeyRequest } from "./crypto/store/base.ts"; export * from "./content-repo.ts"; -export * from "./@types/common.ts"; -export * from "./@types/uia.ts"; +export type * from "./@types/common.ts"; +export type * from "./@types/uia.ts"; export * from "./@types/event.ts"; export * from "./@types/PushRules.ts"; export * from "./@types/partials.ts"; @@ -70,12 +70,12 @@ export * from "./@types/location.ts"; export * from "./@types/threepids.ts"; export * from "./@types/auth.ts"; export * from "./@types/polls.ts"; -export * from "./@types/local_notifications.ts"; -export * from "./@types/registration.ts"; +export type * from "./@types/local_notifications.ts"; +export type * from "./@types/registration.ts"; export * from "./@types/read_receipts.ts"; -export * from "./@types/crypto.ts"; +export type * from "./@types/crypto.ts"; export * from "./@types/extensible_events.ts"; -export * from "./@types/IIdentityServerProvider.ts"; +export type * from "./@types/IIdentityServerProvider.ts"; export * from "./@types/membership.ts"; export * from "./models/room-summary.ts"; export * from "./models/event-status.ts"; diff --git a/src/matrixrtc/MatrixRTCSession.ts b/src/matrixrtc/MatrixRTCSession.ts index bb8c03340..e8a2916d0 100644 --- a/src/matrixrtc/MatrixRTCSession.ts +++ b/src/matrixrtc/MatrixRTCSession.ts @@ -913,7 +913,7 @@ export class MatrixRTCSession extends TypedEventEmitter; + private data: Map; public constructor(room: Room) { this.room = room; diff --git a/src/models/room.ts b/src/models/room.ts index 5ede46b70..e50ca62f8 100644 --- a/src/models/room.ts +++ b/src/models/room.ts @@ -525,7 +525,7 @@ export class Room extends ReadReceipt { this.threadsTimelineSets[0] = timelineSets[0]; this.threadsTimelineSets[1] = timelineSets[1]; return timelineSets; - } catch (e) { + } catch { this.threadTimelineSetsPromise = null; return null; } @@ -619,7 +619,7 @@ export class Room extends ReadReceipt { let capabilities: Capabilities = {}; try { capabilities = await this.client.getCapabilities(); - } catch (e) {} + } catch {} let versionCap = capabilities["m.room_versions"]; if (!versionCap) { versionCap = { diff --git a/src/models/typed-event-emitter.ts b/src/models/typed-event-emitter.ts index 3c9071016..7e4718a47 100644 --- a/src/models/typed-event-emitter.ts +++ b/src/models/typed-event-emitter.ts @@ -119,7 +119,7 @@ export class TypedEventEmitter< /** * Returns a copy of the array of listeners for the event named `event`. */ - public listeners(event: Events | EventEmitterEvents): Function[] { + public listeners(event: Events | EventEmitterEvents): ReturnType { return super.listeners(event); } @@ -240,7 +240,7 @@ export class TypedEventEmitter< * Returns a copy of the array of listeners for the event named `eventName`, * including any wrappers (such as those created by `.once()`). */ - public rawListeners(event: Events | EventEmitterEvents): Function[] { + public rawListeners(event: Events | EventEmitterEvents): ReturnType { return super.rawListeners(event); } } diff --git a/src/rendezvous/MSC3906Rendezvous.ts b/src/rendezvous/MSC3906Rendezvous.ts index a84a41d68..8fa301f82 100644 --- a/src/rendezvous/MSC3906Rendezvous.ts +++ b/src/rendezvous/MSC3906Rendezvous.ts @@ -112,7 +112,7 @@ export class MSC3906Rendezvous { let capabilities: Capabilities = {}; try { capabilities = await this.client.getCapabilities(); - } catch (e) {} + } catch {} // in r0 of MSC3882 the availability is exposed as a feature flag const features = await buildFeatureSupportMap(await this.client.getVersions()); const capability = GET_LOGIN_TOKEN_CAPABILITY.findIn(capabilities); diff --git a/src/rendezvous/index.ts b/src/rendezvous/index.ts index 5b8d83f51..95fa72d61 100644 --- a/src/rendezvous/index.ts +++ b/src/rendezvous/index.ts @@ -19,11 +19,11 @@ limitations under the License. */ export * from "./MSC3906Rendezvous.ts"; export * from "./MSC4108SignInWithQR.ts"; -export * from "./RendezvousChannel.ts"; -export * from "./RendezvousCode.ts"; +export type * from "./RendezvousChannel.ts"; +export type * from "./RendezvousCode.ts"; export * from "./RendezvousError.ts"; export * from "./RendezvousFailureReason.ts"; export * from "./RendezvousIntent.ts"; -export * from "./RendezvousTransport.ts"; +export type * from "./RendezvousTransport.ts"; export * from "./transports/index.ts"; export * from "./channels/index.ts"; diff --git a/src/rust-crypto/PerSessionKeyBackupDownloader.ts b/src/rust-crypto/PerSessionKeyBackupDownloader.ts index 4e066d31e..e2f3a194e 100644 --- a/src/rust-crypto/PerSessionKeyBackupDownloader.ts +++ b/src/rust-crypto/PerSessionKeyBackupDownloader.ts @@ -241,7 +241,7 @@ export class PerSessionKeyBackupDownloader { private async getBackupDecryptionKey(): Promise { try { return await this.olmMachine.getBackupKeys(); - } catch (e) { + } catch { return null; } } diff --git a/src/rust-crypto/backup.ts b/src/rust-crypto/backup.ts index 4c868f12a..d4a91bd0f 100644 --- a/src/rust-crypto/backup.ts +++ b/src/rust-crypto/backup.ts @@ -225,7 +225,7 @@ export class RustBackupManager extends TypedEventEmitter { - await this.olmMachine.importExportedRoomKeys(jsonKeys, (progress: BigInt, total: BigInt): void => { + await this.olmMachine.importExportedRoomKeys(jsonKeys, (progress: bigint, total: bigint): void => { const importOpt: ImportRoomKeyProgressData = { total: Number(total), successes: Number(progress), @@ -254,7 +254,7 @@ export class RustBackupManager extends TypedEventEmitter { + (progress: bigint, total: bigint, failures: bigint): void => { const importOpt: ImportRoomKeyProgressData = { total: Number(total), successes: Number(progress), diff --git a/src/store/indexeddb.ts b/src/store/indexeddb.ts index 443447b65..dfed00df2 100644 --- a/src/store/indexeddb.ts +++ b/src/store/indexeddb.ts @@ -206,7 +206,7 @@ export class IndexedDBStore extends MemoryStore { throw err; }, ); - }); + }, null); /** * Whether this store would like to save its data @@ -253,7 +253,7 @@ export class IndexedDBStore extends MemoryStore { } return this.backend.syncToDatabase(userTuples); - }); + }, null); public setSyncData = this.degradable((syncData: ISyncResponse): Promise => { return this.backend.setSyncData(syncData); @@ -310,13 +310,13 @@ export class IndexedDBStore extends MemoryStore { * @param fallback - The method name for fallback. * @returns A wrapped member function. */ - private degradable, R = void>( + private degradable, F extends keyof MemoryStore | null, R = void>( func: DegradableFn, - fallback?: keyof MemoryStore, - ): DegradableFn { - const fallbackFn = fallback ? (super[fallback] as Function) : null; + fallback: F, + ): DegradableFn { + const fallbackFn = fallback ? (super[fallback] as (...args: A) => Promise) : null; - return async (...args) => { + return (async (...args) => { try { return await func.call(this, ...args); } catch (e) { @@ -344,7 +344,7 @@ export class IndexedDBStore extends MemoryStore { return fallbackFn.call(this, ...args); } } - }; + }) as DegradableFn; } // XXX: ideally these would be stored in indexeddb as part of the room but, diff --git a/src/store/memory.ts b/src/store/memory.ts index 3021c23eb..2daa6a5f2 100644 --- a/src/store/memory.ts +++ b/src/store/memory.ts @@ -258,7 +258,7 @@ export class MemoryStore implements IStore { if (isValidFilterId(value)) { return value; } - } catch (e) {} + } catch {} return null; } @@ -276,7 +276,7 @@ export class MemoryStore implements IStore { } else { this.localStorage.removeItem(key); } - } catch (e) {} + } catch {} } /** diff --git a/src/webrtc/groupCall.ts b/src/webrtc/groupCall.ts index 5fd6985cc..6f0266d4a 100644 --- a/src/webrtc/groupCall.ts +++ b/src/webrtc/groupCall.ts @@ -782,7 +782,7 @@ export class GroupCall extends TypedEventEmitter< return false; } } - } catch (e) { + } catch { /* istanbul ignore next */ logger.log( `GroupCall ${this.groupCallId} setMicrophoneMuted() no device or permission to receive local stream, muted=${muted}`, @@ -817,7 +817,7 @@ export class GroupCall extends TypedEventEmitter< await this.updateLocalUsermediaStream(stream); this.localCallFeed.setAudioVideoMuted(null, muted); setTracksEnabled(this.localCallFeed.stream.getVideoTracks(), !muted); - } catch (_) { + } catch { // No permission to video device /* istanbul ignore next */ logger.log( diff --git a/src/webrtc/stats/callStatsReportSummary.ts b/src/webrtc/stats/callStatsReportSummary.ts index fc62ae3b3..6f524fff8 100644 --- a/src/webrtc/stats/callStatsReportSummary.ts +++ b/src/webrtc/stats/callStatsReportSummary.ts @@ -17,7 +17,7 @@ export interface CallStatsReportSummary { audioTrackSummary: TrackSummary; videoTrackSummary: TrackSummary; - isFirstCollection: Boolean; + isFirstCollection: boolean; } export interface TrackSummary { diff --git a/src/webrtc/stats/trackStatsBuilder.ts b/src/webrtc/stats/trackStatsBuilder.ts index f6ef72987..3e5999e1f 100644 --- a/src/webrtc/stats/trackStatsBuilder.ts +++ b/src/webrtc/stats/trackStatsBuilder.ts @@ -50,7 +50,7 @@ export class TrackStatsBuilder { */ const codecShortType = codec.mimeType.split("/")[1]; - codecShortType && trackStats.setCodec(codecShortType); + if (codecShortType) trackStats.setCodec(codecShortType); } } diff --git a/yarn.lock b/yarn.lock index cc903cd94..7abca3502 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1623,6 +1623,17 @@ ignore "^5.1.8" p-map "^4.0.0" +"@stylistic/eslint-plugin@^2.9.0": + version "2.9.0" + resolved "https://registry.yarnpkg.com/@stylistic/eslint-plugin/-/eslint-plugin-2.9.0.tgz#5ab3326303915e020ddaf39154290e2800a84bcd" + integrity sha512-OrDyFAYjBT61122MIY1a3SfEgy3YCMgt2vL4eoPmvTwDBwyQhAXurxNQznlRD/jESNfYWfID8Ej+31LljvF7Xg== + dependencies: + "@typescript-eslint/utils" "^8.8.0" + eslint-visitor-keys "^4.1.0" + espree "^10.2.0" + estraverse "^5.3.0" + picomatch "^4.0.2" + "@tootallnate/once@2": version "2.0.0" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" @@ -1839,40 +1850,32 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^7.0.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3" - integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw== +"@typescript-eslint/eslint-plugin@^8.0.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.9.0.tgz#bf0b25305b0bf014b4b194a6919103d7ac2a7907" + integrity sha512-Y1n621OCy4m7/vTXNlCbMVp87zSd7NH0L9cXD8aIpOaNlzeWxIK4+Q19A68gSmTNRZn92UjocVUWDthGxtqHFg== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "7.18.0" - "@typescript-eslint/type-utils" "7.18.0" - "@typescript-eslint/utils" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" + "@typescript-eslint/scope-manager" "8.9.0" + "@typescript-eslint/type-utils" "8.9.0" + "@typescript-eslint/utils" "8.9.0" + "@typescript-eslint/visitor-keys" "8.9.0" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" ts-api-utils "^1.3.0" -"@typescript-eslint/parser@^7.0.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0" - integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg== +"@typescript-eslint/parser@^8.0.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.9.0.tgz#0cecda6def8aef95d7c7098359c0fda5a362d6ad" + integrity sha512-U+BLn2rqTTHnc4FL3FJjxaXptTxmf9sNftJK62XLz4+GxG3hLHm/SUNaaXP5Y4uTiuYoL5YLy4JBCJe3+t8awQ== dependencies: - "@typescript-eslint/scope-manager" "7.18.0" - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/typescript-estree" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" + "@typescript-eslint/scope-manager" "8.9.0" + "@typescript-eslint/types" "8.9.0" + "@typescript-eslint/typescript-estree" "8.9.0" + "@typescript-eslint/visitor-keys" "8.9.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83" - integrity sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA== - dependencies: - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" - "@typescript-eslint/scope-manager@8.6.0": version "8.6.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.6.0.tgz#28cc2fc26a84b75addf45091a2c6283e29e2c982" @@ -1881,39 +1884,33 @@ "@typescript-eslint/types" "8.6.0" "@typescript-eslint/visitor-keys" "8.6.0" -"@typescript-eslint/type-utils@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b" - integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA== +"@typescript-eslint/scope-manager@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.9.0.tgz#c98fef0c4a82a484e6a1eb610a55b154d14d46f3" + integrity sha512-bZu9bUud9ym1cabmOYH9S6TnbWRzpklVmwqICeOulTCZ9ue2/pczWzQvt/cGj2r2o1RdKoZbuEMalJJSYw3pHQ== dependencies: - "@typescript-eslint/typescript-estree" "7.18.0" - "@typescript-eslint/utils" "7.18.0" + "@typescript-eslint/types" "8.9.0" + "@typescript-eslint/visitor-keys" "8.9.0" + +"@typescript-eslint/type-utils@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.9.0.tgz#aa86da3e4555fe7c8b42ab75e13561c4b5a8dfeb" + integrity sha512-JD+/pCqlKqAk5961vxCluK+clkppHY07IbV3vett97KOV+8C6l+CPEPwpUuiMwgbOz/qrN3Ke4zzjqbT+ls+1Q== + dependencies: + "@typescript-eslint/typescript-estree" "8.9.0" + "@typescript-eslint/utils" "8.9.0" debug "^4.3.4" ts-api-utils "^1.3.0" -"@typescript-eslint/types@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9" - integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ== - "@typescript-eslint/types@8.6.0": version "8.6.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.6.0.tgz#cdc3a16f83f2f0663d6723e9fd032331cdd9f51c" integrity sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw== -"@typescript-eslint/typescript-estree@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931" - integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA== - dependencies: - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - minimatch "^9.0.4" - semver "^7.6.0" - ts-api-utils "^1.3.0" +"@typescript-eslint/types@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.9.0.tgz#b733af07fb340b32e962c6c63b1062aec2dc0fe6" + integrity sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ== "@typescript-eslint/typescript-estree@8.6.0": version "8.6.0" @@ -1929,15 +1926,29 @@ semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/utils@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f" - integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw== +"@typescript-eslint/typescript-estree@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.9.0.tgz#1714f167e9063062dc0df49c1d25afcbc7a96199" + integrity sha512-9iJYTgKLDG6+iqegehc5+EqE6sqaee7kb8vWpmHZ86EqwDjmlqNNHeqDVqb9duh+BY6WCNHfIGvuVU3Tf9Db0g== + dependencies: + "@typescript-eslint/types" "8.9.0" + "@typescript-eslint/visitor-keys" "8.9.0" + debug "^4.3.4" + fast-glob "^3.3.2" + is-glob "^4.0.3" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/utils@8.9.0", "@typescript-eslint/utils@^8.8.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.9.0.tgz#748bbe3ea5bee526d9786d9405cf1b0df081c299" + integrity sha512-PKgMmaSo/Yg/F7kIZvrgrWa1+Vwn036CdNUvYFEkYbPwOH4i8xvkaRlu148W3vtheWK9ckKRIz7PBP5oUlkrvQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "7.18.0" - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/typescript-estree" "7.18.0" + "@typescript-eslint/scope-manager" "8.9.0" + "@typescript-eslint/types" "8.9.0" + "@typescript-eslint/typescript-estree" "8.9.0" "@typescript-eslint/utils@^6.0.0 || ^7.0.0 || ^8.0.0": version "8.6.0" @@ -1949,14 +1960,6 @@ "@typescript-eslint/types" "8.6.0" "@typescript-eslint/typescript-estree" "8.6.0" -"@typescript-eslint/visitor-keys@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7" - integrity sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg== - dependencies: - "@typescript-eslint/types" "7.18.0" - eslint-visitor-keys "^3.4.3" - "@typescript-eslint/visitor-keys@8.6.0": version "8.6.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.6.0.tgz#5432af4a1753f376f35ab5b891fc9db237aaf76f" @@ -1965,6 +1968,14 @@ "@typescript-eslint/types" "8.6.0" eslint-visitor-keys "^3.4.3" +"@typescript-eslint/visitor-keys@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.9.0.tgz#5f11f4d9db913f37da42776893ffe0dd1ae78f78" + integrity sha512-Ht4y38ubk4L5/U8xKUBfKNYGmvKvA1CANoxiTRMM+tOLk3lbF3DvzZCxJCRSE+2GdCMSh6zq9VZJc3asc1XuAA== + dependencies: + "@typescript-eslint/types" "8.9.0" + eslint-visitor-keys "^3.4.3" + "@ungap/structured-clone@^1.0.0", "@ungap/structured-clone@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" @@ -2143,11 +2154,6 @@ array-includes@^3.1.8: get-intrinsic "^1.2.4" is-string "^1.0.7" -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - array.prototype.findlastindex@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" @@ -2805,13 +2811,6 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -3138,10 +3137,10 @@ eslint-plugin-jsdoc@^50.0.0: spdx-expression-parse "^4.0.0" synckit "^0.9.1" -eslint-plugin-matrix-org@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-matrix-org/-/eslint-plugin-matrix-org-1.2.1.tgz#76d1505daa93fb99ba4156008b9b32f57682c9b1" - integrity sha512-A3cDjhG7RHwfCS8o3bOip8hSCsxtmgk2ahvqE5v/Ic2kPEZxixY6w8zLj7hFGsrRmPSEpLWqkVLt8uvQBapiQA== +eslint-plugin-matrix-org@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-matrix-org/-/eslint-plugin-matrix-org-2.0.2.tgz#95b86b0f16704ab19740f7c3c62eae69e20365e6" + integrity sha512-cQy5Rjeq6uyu1mLXlPZwEJdyM0NmclrnEz68y792FSuuxzMyJNNYLGDQ5CkYW8H+PrD825HUFZ34pNXnjMOzOw== eslint-plugin-n@^14.0.0: version "14.0.0" @@ -3285,7 +3284,7 @@ eslint@8.57.1: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^10.1.0: +espree@^10.1.0, espree@^10.2.0: version "10.2.0" resolved "https://registry.yarnpkg.com/espree/-/espree-10.2.0.tgz#f4bcead9e05b0615c968e85f83816bc386a45df6" integrity sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g== @@ -3327,7 +3326,7 @@ estraverse@^4.1.1: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.1.0, estraverse@^5.2.0: +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== @@ -3414,7 +3413,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.9, fast-glob@^3.3.2: +fast-glob@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -3711,18 +3710,6 @@ globalthis@^1.0.3: define-properties "^1.2.1" gopd "^1.0.1" -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -4986,7 +4973,7 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0, merge2@^1.4.1: +merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -5390,11 +5377,6 @@ path-to-regexp@^2.2.1: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.4.0.tgz#35ce7f333d5616f1c1e1bfe266c3aba2e5b2e704" integrity sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w== -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - picocolors@^1.0.0, picocolors@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59" @@ -5405,7 +5387,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -picomatch@^4.0.1: +picomatch@^4.0.1, picomatch@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==