1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-07-31 15:24:23 +03:00

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>
This commit is contained in:
renovate[bot]
2024-10-21 13:17:20 +00:00
committed by GitHub
parent 88cf5eb769
commit 91f6f0f9c5
45 changed files with 176 additions and 196 deletions

View File

@ -108,10 +108,8 @@ module.exports = {
"@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/ban-ts-comment": "off",
// We're okay with assertion errors when we ask for them // We're okay with assertion errors when we ask for them
"@typescript-eslint/no-non-null-assertion": "off", "@typescript-eslint/no-non-null-assertion": "off",
// We do this sometimes to brand interfaces
// The non-TypeScript rule produces false positives "@typescript-eslint/no-empty-object-type": "off",
"func-call-spacing": "off",
"@typescript-eslint/func-call-spacing": ["error"],
"quotes": "off", "quotes": "off",
// We use a `logger` intermediary module // We use a `logger` intermediary module

View File

@ -81,6 +81,7 @@
"@babel/preset-typescript": "^7.12.7", "@babel/preset-typescript": "^7.12.7",
"@casualbot/jest-sonar-reporter": "2.2.7", "@casualbot/jest-sonar-reporter": "2.2.7",
"@peculiar/webcrypto": "^1.4.5", "@peculiar/webcrypto": "^1.4.5",
"@stylistic/eslint-plugin": "^2.9.0",
"@types/bs58": "^4.0.1", "@types/bs58": "^4.0.1",
"@types/content-type": "^1.1.5", "@types/content-type": "^1.1.5",
"@types/debug": "^4.1.7", "@types/debug": "^4.1.7",
@ -88,8 +89,8 @@
"@types/node": "18", "@types/node": "18",
"@types/sdp-transform": "^2.4.5", "@types/sdp-transform": "^2.4.5",
"@types/uuid": "10", "@types/uuid": "10",
"@typescript-eslint/eslint-plugin": "^7.0.0", "@typescript-eslint/eslint-plugin": "^8.0.0",
"@typescript-eslint/parser": "^7.0.0", "@typescript-eslint/parser": "^8.0.0",
"babel-jest": "^29.0.0", "babel-jest": "^29.0.0",
"babel-plugin-search-and-replace": "^1.1.1", "babel-plugin-search-and-replace": "^1.1.1",
"debug": "^4.3.4", "debug": "^4.3.4",
@ -100,7 +101,7 @@
"eslint-plugin-import": "^2.26.0", "eslint-plugin-import": "^2.26.0",
"eslint-plugin-jest": "^28.0.0", "eslint-plugin-jest": "^28.0.0",
"eslint-plugin-jsdoc": "^50.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-n": "^14.0.0",
"eslint-plugin-tsdoc": "^0.3.0", "eslint-plugin-tsdoc": "^0.3.0",
"eslint-plugin-unicorn": "^56.0.0", "eslint-plugin-unicorn": "^56.0.0",

View File

@ -3499,7 +3499,7 @@ describe.each(Object.entries(CRYPTO_BACKENDS))("crypto (%s)", (backend: string,
return client; return client;
} }
function mkEncryptionEvent(content: Object) { function mkEncryptionEvent(content: object) {
return mkEventCustom({ return mkEventCustom({
sender: persistentStoreClient.getSafeUserId(), sender: persistentStoreClient.getSafeUserId(),
type: "m.room.encryption", 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 * @param stateEvents - Additional state events for the test room
*/ */
function getSyncResponseWithState(stateEvents: Array<Object>) { function getSyncResponseWithState(stateEvents: Array<object>) {
const roomResponse = { const roomResponse = {
state: { state: {
events: [ events: [

View File

@ -95,6 +95,7 @@ beforeAll(async () => {
// load the rust library. This can take a few seconds on a slow GH worker. // load the rust library. This can take a few seconds on a slow GH worker.
beforeAll(async () => { beforeAll(async () => {
// eslint-disable-next-line @typescript-eslint/no-require-imports
const RustSdkCryptoJs = await require("@matrix-org/matrix-sdk-crypto-wasm"); const RustSdkCryptoJs = await require("@matrix-org/matrix-sdk-crypto-wasm");
await RustSdkCryptoJs.initAsync(); await RustSdkCryptoJs.initAsync();
}, 10000); }, 10000);

View File

@ -267,7 +267,7 @@ describe("MSC4108SignInWithQR", () => {
it("should abort if device doesn't come up by timeout", async () => { it("should abort if device doesn't come up by timeout", async () => {
jest.spyOn(global, "setTimeout").mockImplementation((fn) => { jest.spyOn(global, "setTimeout").mockImplementation((fn) => {
(<Function>fn)(); fn();
// TODO: mock timers properly // TODO: mock timers properly
return -1 as any; return -1 as any;
}); });
@ -320,7 +320,7 @@ describe("MSC4108SignInWithQR", () => {
it("should not send secrets if user cancels", async () => { it("should not send secrets if user cancels", async () => {
jest.spyOn(global, "setTimeout").mockImplementation((fn) => { jest.spyOn(global, "setTimeout").mockImplementation((fn) => {
(<Function>fn)(); fn();
// TODO: mock timers properly // TODO: mock timers properly
return -1 as any; return -1 as any;
}); });

View File

@ -19,7 +19,7 @@ import { logger } from "../src/logger";
// try to load the olm library. // try to load the olm library.
try { 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"); globalThis.Olm = require("@matrix-org/olm");
logger.log("loaded libolm"); logger.log("loaded libolm");
} catch (e) { } catch (e) {

View File

@ -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 updated when fetchMock intercepts calls to PUT `/_matrix/client/v3/user/:userId/account_data/`.
* Will be used by `sendSyncResponseWithUpdatedAccountData` * Will be used by `sendSyncResponseWithUpdatedAccountData`
*/ */
public accountDataEvents: Map<String, any> = new Map(); public accountDataEvents: Map<string, any> = new Map();
/** /**
* Intercept requests to set a particular type of account data. * 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. // 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 // It's ok if it fails here, the sync response is cumulative and will contain
// the latest account data. // the latest account data.

View File

@ -127,7 +127,7 @@ export function mock<T>(constr: { new (...args: any[]): T }, name: string): T {
if (constr.prototype[key] instanceof Function) { if (constr.prototype[key] instanceof Function) {
result[key] = jest.fn(); result[key] = jest.fn();
} }
} catch (ex) { } catch {
// Direct access to some non-function fields of DOM prototypes may // Direct access to some non-function fields of DOM prototypes may
// cause exceptions. // cause exceptions.
// Overwriting will not work either in that case. // Overwriting will not work either in that case.

View File

@ -9,7 +9,7 @@ import { defer } from "../../src/utils";
describe("onResumedSync", () => { describe("onResumedSync", () => {
let batch: IndexedToDeviceBatch | null; let batch: IndexedToDeviceBatch | null;
let shouldFailSendToDevice: Boolean; let shouldFailSendToDevice: boolean;
let onSendToDeviceFailure: () => void; let onSendToDeviceFailure: () => void;
let onSendToDeviceSuccess: () => void; let onSendToDeviceSuccess: () => void;
let resumeSync: (newState: SyncState, oldState: SyncState) => void; let resumeSync: (newState: SyncState, oldState: SyncState) => void;

View File

@ -607,7 +607,7 @@ describe("Crypto", function () {
event.claimedEd25519Key = null; event.claimedEd25519Key = null;
try { try {
await bobClient.crypto!.decryptEvent(event); await bobClient.crypto!.decryptEvent(event);
} catch (e) { } catch {
// we expect this to fail because we don't have the // we expect this to fail because we don't have the
// decryption keys yet // decryption keys yet
} }

View File

@ -140,9 +140,7 @@ describe("Cross Signing", function () {
}); });
} }
const error = new MatrixError(errorResponse); throw new MatrixError(errorResponse, 401);
error.httpStatus == 401;
throw error;
}; };
alice.uploadKeySignatures = async () => ({ failures: {} }); alice.uploadKeySignatures = async () => ({ failures: {} });
alice.setAccountData = async () => ({}); alice.setAccountData = async () => ({});
@ -827,7 +825,7 @@ describe("Cross Signing", function () {
}); });
it("should offer to upgrade device verifications to cross-signing", async function () { it("should offer to upgrade device verifications to cross-signing", async function () {
let upgradeResolveFunc: Function; let upgradeResolveFunc: () => void;
const { client: alice } = await makeTestClient( const { client: alice } = await makeTestClient(
{ userId: "@alice:example.com", deviceId: "Osborne2" }, { 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 // cross-signing key is signed by his Dynabook, which alice has
// verified, and ask if the device verification should be upgraded to a // verified, and ask if the device verification should be upgraded to a
// cross-signing verification // cross-signing verification
let upgradePromise = new Promise((resolve) => { let upgradePromise = new Promise<void>((resolve) => {
upgradeResolveFunc = resolve; upgradeResolveFunc = resolve;
}); });
await resetCrossSigningKeys(alice); await resetCrossSigningKeys(alice);
@ -885,7 +883,7 @@ describe("Cross Signing", function () {
expect(bobTrust2.isCrossSigningVerified()).toBeFalsy(); expect(bobTrust2.isCrossSigningVerified()).toBeFalsy();
expect(bobTrust2.isTofu()).toBeTruthy(); expect(bobTrust2.isTofu()).toBeTruthy();
upgradePromise = new Promise((resolve) => { upgradePromise = new Promise<void>((resolve) => {
upgradeResolveFunc = resolve; upgradeResolveFunc = resolve;
}); });
alice.crypto!.deviceList.emit(CryptoEvent.UserCrossSigningUpdated, "@bob:example.com"); alice.crypto!.deviceList.emit(CryptoEvent.UserCrossSigningUpdated, "@bob:example.com");

View File

@ -454,7 +454,7 @@ describe("SAS verification", function () {
let bobSasEvent: ISasEvent | null; let bobSasEvent: ISasEvent | null;
let aliceVerifier: SAS; let aliceVerifier: SAS;
let bobPromise: Promise<void>; let bobPromise: Promise<void>;
let clearTestClientTimeouts: Function; let clearTestClientTimeouts: () => void;
beforeEach(async function () { beforeEach(async function () {
[[alice, bob], clearTestClientTimeouts] = await makeTestClients( [[alice, bob], clearTestClientTimeouts] = await makeTestClients(

View File

@ -102,7 +102,7 @@ type HttpLookup = {
error?: object; error?: object;
expectBody?: Record<string, any>; expectBody?: Record<string, any>;
expectQueryParams?: QueryDict; expectQueryParams?: QueryDict;
thenCall?: Function; thenCall?: () => void;
}; };
interface Options extends ICreateRoomOpts { interface Options extends ICreateRoomOpts {
@ -403,7 +403,7 @@ describe("MatrixClient", function () {
async function assertRequestsMade( async function assertRequestsMade(
responses: { responses: {
prefix?: string; prefix?: string;
error?: { httpStatus: Number; errcode: string }; error?: { httpStatus: number; errcode: string };
data?: { event_id: string }; data?: { event_id: string };
}[], }[],
expectRejects = false, expectRejects = false,
@ -1515,7 +1515,7 @@ describe("MatrixClient", function () {
}); });
describe("emitted sync events", 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) { return function syncListener(state: SyncState, old: SyncState | null) {
const expected = expectedStates.shift(); const expected = expectedStates.shift();
logger.log("'sync' curr=%s old=%s EXPECT=%s", state, old, expected); 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 () => { it("should transition null -> PREPARED after the first /sync", async () => {
const expectedStates: [string, string | null][] = []; const expectedStates: [string, string | null][] = [];
expectedStates.push(["PREPARED", null]); expectedStates.push(["PREPARED", null]);
const didSyncPromise = new Promise((resolve) => { const didSyncPromise = new Promise<void>((resolve) => {
client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve)); client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve));
}); });
await client.startClient(); await client.startClient();
@ -1554,7 +1554,7 @@ describe("MatrixClient", function () {
error: { errcode: "NOPE_NOPE_NOPE" }, error: { errcode: "NOPE_NOPE_NOPE" },
}); });
expectedStates.push(["ERROR", null]); expectedStates.push(["ERROR", null]);
const didSyncPromise = new Promise((resolve) => { const didSyncPromise = new Promise<void>((resolve) => {
client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve)); client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve));
}); });
await client.startClient(); await client.startClient();
@ -1594,7 +1594,7 @@ describe("MatrixClient", function () {
expectedStates.push(["RECONNECTING", null]); expectedStates.push(["RECONNECTING", null]);
expectedStates.push(["ERROR", "RECONNECTING"]); expectedStates.push(["ERROR", "RECONNECTING"]);
expectedStates.push(["CATCHUP", "ERROR"]); expectedStates.push(["CATCHUP", "ERROR"]);
const didSyncPromise = new Promise((resolve) => { const didSyncPromise = new Promise<void>((resolve) => {
client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve)); client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve));
}); });
await client.startClient(); await client.startClient();
@ -1605,7 +1605,7 @@ describe("MatrixClient", function () {
const expectedStates: [string, string | null][] = []; const expectedStates: [string, string | null][] = [];
expectedStates.push(["PREPARED", null]); expectedStates.push(["PREPARED", null]);
expectedStates.push(["SYNCING", "PREPARED"]); expectedStates.push(["SYNCING", "PREPARED"]);
const didSyncPromise = new Promise((resolve) => { const didSyncPromise = new Promise<void>((resolve) => {
client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve)); client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve));
}); });
await client.startClient(); await client.startClient();
@ -1630,7 +1630,7 @@ describe("MatrixClient", function () {
expectedStates.push(["SYNCING", "PREPARED"]); expectedStates.push(["SYNCING", "PREPARED"]);
expectedStates.push(["RECONNECTING", "SYNCING"]); expectedStates.push(["RECONNECTING", "SYNCING"]);
expectedStates.push(["ERROR", "RECONNECTING"]); expectedStates.push(["ERROR", "RECONNECTING"]);
const didSyncPromise = new Promise((resolve) => { const didSyncPromise = new Promise<void>((resolve) => {
client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve)); client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve));
}); });
await client.startClient(); await client.startClient();
@ -1649,7 +1649,7 @@ describe("MatrixClient", function () {
expectedStates.push(["PREPARED", null]); expectedStates.push(["PREPARED", null]);
expectedStates.push(["SYNCING", "PREPARED"]); expectedStates.push(["SYNCING", "PREPARED"]);
expectedStates.push(["ERROR", "SYNCING"]); expectedStates.push(["ERROR", "SYNCING"]);
const didSyncPromise = new Promise((resolve) => { const didSyncPromise = new Promise<void>((resolve) => {
client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve)); client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve));
}); });
await client.startClient(); await client.startClient();
@ -1664,7 +1664,7 @@ describe("MatrixClient", function () {
expectedStates.push(["PREPARED", null]); expectedStates.push(["PREPARED", null]);
expectedStates.push(["SYNCING", "PREPARED"]); expectedStates.push(["SYNCING", "PREPARED"]);
expectedStates.push(["SYNCING", "SYNCING"]); expectedStates.push(["SYNCING", "SYNCING"]);
const didSyncPromise = new Promise((resolve) => { const didSyncPromise = new Promise<void>((resolve) => {
client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve)); client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve));
}); });
await client.startClient(); await client.startClient();
@ -1695,7 +1695,7 @@ describe("MatrixClient", function () {
expectedStates.push(["RECONNECTING", "SYNCING"]); expectedStates.push(["RECONNECTING", "SYNCING"]);
expectedStates.push(["ERROR", "RECONNECTING"]); expectedStates.push(["ERROR", "RECONNECTING"]);
expectedStates.push(["ERROR", "ERROR"]); expectedStates.push(["ERROR", "ERROR"]);
const didSyncPromise = new Promise((resolve) => { const didSyncPromise = new Promise<void>((resolve) => {
client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve)); client.on(ClientEvent.Sync, syncChecker(expectedStates, resolve));
}); });
await client.startClient(); await client.startClient();

View File

@ -208,7 +208,7 @@ describe("OutgoingRequestProcessor", () => {
const outgoingRequest = new UploadSigningKeysRequest(JSON.stringify(testReq)); const outgoingRequest = new UploadSigningKeysRequest(JSON.stringify(testReq));
// also create a UIA callback // also create a UIA callback
const authCallback: UIAuthCallback<Object> = async (makeRequest) => { const authCallback: UIAuthCallback<object> = async (makeRequest) => {
return await makeRequest({ type: "test" }); return await makeRequest({ type: "test" });
}; };
@ -458,7 +458,7 @@ describe("OutgoingRequestProcessor", () => {
throw new Error("Failed to fetch"); throw new Error("Failed to fetch");
} }
}); });
const authCallback: UIAuthCallback<Object> = async (makeRequest) => { const authCallback: UIAuthCallback<object> = async (makeRequest) => {
return await makeRequest({ type: "test" }); return await makeRequest({ type: "test" });
}; };
const requestPromise = processor.makeOutgoingRequest(outgoingRequest, authCallback); const requestPromise = processor.makeOutgoingRequest(outgoingRequest, authCallback);

View File

@ -98,7 +98,7 @@ describe("secret-storage", () => {
} else if (secretName == "secretE") { } else if (secretName == "secretE") {
return { aaaa: {}, bbbb: {} }; return { aaaa: {}, bbbb: {} };
} else { } else {
null; return null;
} }
}), }),
getDefaultKeyId: jest.fn().mockResolvedValue("aaaa"), getDefaultKeyId: jest.fn().mockResolvedValue("aaaa"),

View File

@ -12,7 +12,7 @@ jest.useFakeTimers();
describe("MatrixScheduler", function () { describe("MatrixScheduler", function () {
let scheduler: MatrixScheduler<Record<string, boolean>>; let scheduler: MatrixScheduler<Record<string, boolean>>;
let retryFn: Function | null; let retryFn: ((event: MatrixEvent | null, attempt: number, err: MatrixError) => number) | null;
let queueFn: ((event: MatrixEvent) => string | null) | null; let queueFn: ((event: MatrixEvent) => string | null) | null;
let deferred: IDeferred<Record<string, boolean>>; let deferred: IDeferred<Record<string, boolean>>;
const roomId = "!foo:bar"; const roomId = "!foo:bar";

View File

@ -1228,7 +1228,7 @@ describe("Call", function () {
}); });
describe("Screen sharing", () => { describe("Screen sharing", () => {
const waitNegotiateFunc = (resolve: Function): void => { const waitNegotiateFunc = (resolve: () => void): void => {
mockSendEvent.mockImplementationOnce(() => { mockSendEvent.mockImplementationOnce(() => {
// Note that the peer connection here is a dummy one and always returns // 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 // dummy SDP, so there's not much point returning the content: the SDP will

View File

@ -101,7 +101,7 @@ describe("CallFeed", () => {
it.each([ it.each([
[CallState.Connected, true], [CallState.Connected, true],
[CallState.Connecting, false], [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()); call.emit(CallEvent.State, state, CallState.InviteSent, call.typed());
expect(feed.connected).toBe(expected); expect(feed.connected).toBe(expected);

View File

@ -33,7 +33,7 @@ globalThis.__js_sdk_entrypoint = true;
let indexedDB: IDBFactory | undefined; let indexedDB: IDBFactory | undefined;
try { try {
indexedDB = globalThis.indexedDB; indexedDB = globalThis.indexedDB;
} catch (e) {} } catch {}
// if our browser (appears to) support indexeddb, use an indexeddb crypto store. // if our browser (appears to) support indexeddb, use an indexeddb crypto store.
if (indexedDB) { if (indexedDB) {

View File

@ -1781,7 +1781,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
try { try {
indexedDB = global.indexedDB; indexedDB = global.indexedDB;
if (!indexedDB) return; // No indexedDB support if (!indexedDB) return; // No indexedDB support
} catch (e) { } catch {
// No indexedDB support // No indexedDB support
return; return;
} }
@ -3648,7 +3648,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
try { try {
decodeRecoveryKey(recoveryKey); decodeRecoveryKey(recoveryKey);
return true; return true;
} catch (e) { } catch {
return false; return false;
} }
} }
@ -7828,7 +7828,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
list: determineFeatureSupport(listStable, listUnstable), list: determineFeatureSupport(listStable, listUnstable),
fwdPagination: determineFeatureSupport(fwdPaginationStable, fwdPaginationUnstable), fwdPagination: determineFeatureSupport(fwdPaginationStable, fwdPaginationUnstable),
}; };
} catch (e) { } catch {
return { return {
threads: FeatureSupport.None, threads: FeatureSupport.None,
list: FeatureSupport.None, list: FeatureSupport.None,

View File

@ -1080,8 +1080,8 @@ export interface OwnDeviceKeys {
} }
export * from "./verification.ts"; export * from "./verification.ts";
export * from "./keybackup.ts"; export type * from "./keybackup.ts";
export * from "./recovery-key.ts"; export * from "./recovery-key.ts";
export * from "./key-passphrase.ts"; export * from "./key-passphrase.ts";
export * from "./CryptoEvent.ts"; export * from "./CryptoEvent.ts";
export * from "./CryptoEventHandlerMap.ts"; export type * from "./CryptoEventHandlerMap.ts";

View File

@ -521,7 +521,7 @@ export class CrossSigningInfo {
try { try {
pkVerify(userMaster, uskId, this.userId); pkVerify(userMaster, uskId, this.userId);
userTrusted = true; userTrusted = true;
} catch (e) { } catch {
userTrusted = false; userTrusted = false;
} }
return new UserTrustLevel(userTrusted, userCrossSigning.crossSigningVerifiedBefore, userCrossSigning.firstUse); return new UserTrustLevel(userTrusted, userCrossSigning.crossSigningVerifiedBefore, userCrossSigning.firstUse);
@ -560,7 +560,7 @@ export class CrossSigningInfo {
pkVerify(deviceObj, publicKeyFromKeyInfo(userSSK), userCrossSigning.userId); pkVerify(deviceObj, publicKeyFromKeyInfo(userSSK), userCrossSigning.userId);
// ...then we trust this device as much as far as we trust the user // ...then we trust this device as much as far as we trust the user
return DeviceTrustLevel.fromUserTrustLevel(userTrust, localTrust, trustCrossSignedDevices); return DeviceTrustLevel.fromUserTrustLevel(userTrust, localTrust, trustCrossSignedDevices);
} catch (e) { } catch {
return new DeviceTrustLevel(false, false, localTrust, trustCrossSignedDevices); return new DeviceTrustLevel(false, false, localTrust, trustCrossSignedDevices);
} }
} }

View File

@ -612,7 +612,7 @@ export class OlmDevice {
log.debug(`Waiting for Olm session for ${theirDeviceIdentityKey} to be created`); log.debug(`Waiting for Olm session for ${theirDeviceIdentityKey} to be created`);
try { try {
await this.sessionsInProgress[theirDeviceIdentityKey]; await this.sessionsInProgress[theirDeviceIdentityKey];
} catch (e) { } catch {
// if the session failed to be created, just fall through and // if the session failed to be created, just fall through and
// return an empty result // return an empty result
} }
@ -698,7 +698,7 @@ export class OlmDevice {
log.debug(`Waiting for Olm session for ${deviceIdentityKey} to be created`); log.debug(`Waiting for Olm session for ${deviceIdentityKey} to be created`);
try { try {
await this.sessionsInProgress[deviceIdentityKey]; await this.sessionsInProgress[deviceIdentityKey];
} catch (e) { } catch {
// if the session failed to be created, then just fall through and // if the session failed to be created, then just fall through and
// return an empty result // return an empty result
} }

View File

@ -1067,7 +1067,7 @@ export class MegolmEncryption extends EncryptionAlgorithm {
// (https://github.com/matrix-org/matrix-js-sdk/issues/1255) // (https://github.com/matrix-org/matrix-js-sdk/issues/1255)
try { try {
await this.encryptionPreparation.promise; await this.encryptionPreparation.promise;
} catch (e) { } catch {
// ignore any errors -- if the preparation failed, we'll just // ignore any errors -- if the preparation failed, we'll just
// restart everything here // restart everything here
} }
@ -2103,7 +2103,7 @@ export class MegolmDecryption extends DecryptionAlgorithm {
pendingList.map(async (ev) => { pendingList.map(async (ev) => {
try { try {
await ev.attemptDecryption(this.crypto, { isRetry: true, forceRedecryptIfUntrusted }); await ev.attemptDecryption(this.crypto, { isRetry: true, forceRedecryptIfUntrusted });
} catch (e) { } catch {
// don't die if something goes wrong // don't die if something goes wrong
} }
}), }),
@ -2128,7 +2128,7 @@ export class MegolmDecryption extends DecryptionAlgorithm {
[...pending].map(async (ev) => { [...pending].map(async (ev) => {
try { try {
await ev.attemptDecryption(this.crypto); await ev.attemptDecryption(this.crypto);
} catch (e) { } catch {
// don't die if something goes wrong // don't die if something goes wrong
} }
}), }),

View File

@ -1497,7 +1497,7 @@ export class Crypto extends TypedEventEmitter<CryptoEvent, CryptoEventHandlerMap
devices[deviceId].keys[signame], devices[deviceId].keys[signame],
); );
deviceIds.push(deviceId); deviceIds.push(deviceId);
} catch (e) {} } catch {}
} }
} }
} }

View File

@ -1216,7 +1216,7 @@ function abortWithException(txn: IDBTransaction, e: Error): void {
(txn as IWrappedIDBTransaction)._mx_abortexception = e; (txn as IWrappedIDBTransaction)._mx_abortexception = e;
try { try {
txn.abort(); txn.abort();
} catch (e) { } catch {
// sometimes we won't be able to abort the transaction // sometimes we won't be able to abort the transaction
// (ie. if it's aborted or completed) // (ie. if it's aborted or completed)
} }

View File

@ -356,7 +356,7 @@ export class FetchHttpApi<O extends IHttpOpts> {
const sanitizedQsUrlPiece = sanitizedQsString ? `?${sanitizedQsString}` : ""; const sanitizedQsUrlPiece = sanitizedQsString ? `?${sanitizedQsString}` : "";
return asUrl.origin + asUrl.pathname + sanitizedQsUrlPiece; return asUrl.origin + asUrl.pathname + sanitizedQsUrlPiece;
} catch (error) { } catch {
// defensive coding for malformed url // defensive coding for malformed url
return "??"; return "??";
} }

View File

@ -415,7 +415,7 @@ export class InteractiveAuth<T> {
while (this.submitPromise) { while (this.submitPromise) {
try { try {
await this.submitPromise; await this.submitPromise;
} catch (e) {} } catch {}
} }
// use the sessionid from the last request, if one is present. // use the sessionid from the last request, if one is present.

View File

@ -57,8 +57,8 @@ export * from "./crypto/store/localStorage-crypto-store.ts";
export * from "./crypto/store/indexeddb-crypto-store.ts"; export * from "./crypto/store/indexeddb-crypto-store.ts";
export type { OutgoingRoomKeyRequest } from "./crypto/store/base.ts"; export type { OutgoingRoomKeyRequest } from "./crypto/store/base.ts";
export * from "./content-repo.ts"; export * from "./content-repo.ts";
export * from "./@types/common.ts"; export type * from "./@types/common.ts";
export * from "./@types/uia.ts"; export type * from "./@types/uia.ts";
export * from "./@types/event.ts"; export * from "./@types/event.ts";
export * from "./@types/PushRules.ts"; export * from "./@types/PushRules.ts";
export * from "./@types/partials.ts"; export * from "./@types/partials.ts";
@ -70,12 +70,12 @@ export * from "./@types/location.ts";
export * from "./@types/threepids.ts"; export * from "./@types/threepids.ts";
export * from "./@types/auth.ts"; export * from "./@types/auth.ts";
export * from "./@types/polls.ts"; export * from "./@types/polls.ts";
export * from "./@types/local_notifications.ts"; export type * from "./@types/local_notifications.ts";
export * from "./@types/registration.ts"; export type * from "./@types/registration.ts";
export * from "./@types/read_receipts.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/extensible_events.ts";
export * from "./@types/IIdentityServerProvider.ts"; export type * from "./@types/IIdentityServerProvider.ts";
export * from "./@types/membership.ts"; export * from "./@types/membership.ts";
export * from "./models/room-summary.ts"; export * from "./models/room-summary.ts";
export * from "./models/event-status.ts"; export * from "./models/event-status.ts";

View File

@ -913,7 +913,7 @@ export class MatrixRTCSession extends TypedEventEmitter<MatrixRTCSessionEvent, M
let membershipObj; let membershipObj;
try { try {
membershipObj = new CallMembership(myCallMemberEvent!, m); membershipObj = new CallMembership(myCallMemberEvent!, m);
} catch (e) { } catch {
return false; return false;
} }

View File

@ -15,8 +15,8 @@ limitations under the License.
*/ */
export * from "./CallMembership.ts"; export * from "./CallMembership.ts";
export * from "./focus.ts"; export type * from "./focus.ts";
export * from "./LivekitFocus.ts"; export * from "./LivekitFocus.ts";
export * from "./MatrixRTCSession.ts"; export * from "./MatrixRTCSession.ts";
export * from "./MatrixRTCSessionManager.ts"; export * from "./MatrixRTCSessionManager.ts";
export * from "./types.ts"; export type * from "./types.ts";

View File

@ -195,7 +195,7 @@ export class IgnoredInvites {
let regexp: RegExp; let regexp: RegExp;
try { try {
regexp = new RegExp(globToRegexp(glob)); regexp = new RegExp(globToRegexp(glob));
} catch (ex) { } catch {
// Assume invalid event. // Assume invalid event.
continue; continue;
} }

View File

@ -176,7 +176,7 @@ export class RoomReceipts {
* @returns true if the thread with this ID can be found, and the supplied * @returns true if the thread with this ID can be found, and the supplied
* user sent the latest message in it. * user sent the latest message in it.
*/ */
private userSentLatestEventInThread(threadId: string, userId: String): boolean { private userSentLatestEventInThread(threadId: string, userId: string): boolean {
const timeline = const timeline =
threadId === MAIN_ROOM_TIMELINE threadId === MAIN_ROOM_TIMELINE
? this.room.getLiveTimeline().getEvents() ? this.room.getLiveTimeline().getEvents()
@ -278,7 +278,7 @@ class ReceiptsByUser {
private room: Room; private room: Room;
/** map of userId: UserReceipts */ /** map of userId: UserReceipts */
private data: Map<String, UserReceipts>; private data: Map<string, UserReceipts>;
public constructor(room: Room) { public constructor(room: Room) {
this.room = room; this.room = room;

View File

@ -525,7 +525,7 @@ export class Room extends ReadReceipt<RoomEmittedEvents, RoomEventHandlerMap> {
this.threadsTimelineSets[0] = timelineSets[0]; this.threadsTimelineSets[0] = timelineSets[0];
this.threadsTimelineSets[1] = timelineSets[1]; this.threadsTimelineSets[1] = timelineSets[1];
return timelineSets; return timelineSets;
} catch (e) { } catch {
this.threadTimelineSetsPromise = null; this.threadTimelineSetsPromise = null;
return null; return null;
} }
@ -619,7 +619,7 @@ export class Room extends ReadReceipt<RoomEmittedEvents, RoomEventHandlerMap> {
let capabilities: Capabilities = {}; let capabilities: Capabilities = {};
try { try {
capabilities = await this.client.getCapabilities(); capabilities = await this.client.getCapabilities();
} catch (e) {} } catch {}
let versionCap = capabilities["m.room_versions"]; let versionCap = capabilities["m.room_versions"];
if (!versionCap) { if (!versionCap) {
versionCap = { versionCap = {

View File

@ -119,7 +119,7 @@ export class TypedEventEmitter<
/** /**
* Returns a copy of the array of listeners for the event named `event`. * 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<EventEmitter["listeners"]> {
return super.listeners(event); return super.listeners(event);
} }
@ -240,7 +240,7 @@ export class TypedEventEmitter<
* Returns a copy of the array of listeners for the event named `eventName`, * Returns a copy of the array of listeners for the event named `eventName`,
* including any wrappers (such as those created by `.once()`). * including any wrappers (such as those created by `.once()`).
*/ */
public rawListeners(event: Events | EventEmitterEvents): Function[] { public rawListeners(event: Events | EventEmitterEvents): ReturnType<EventEmitter["rawListeners"]> {
return super.rawListeners(event); return super.rawListeners(event);
} }
} }

View File

@ -112,7 +112,7 @@ export class MSC3906Rendezvous {
let capabilities: Capabilities = {}; let capabilities: Capabilities = {};
try { try {
capabilities = await this.client.getCapabilities(); capabilities = await this.client.getCapabilities();
} catch (e) {} } catch {}
// in r0 of MSC3882 the availability is exposed as a feature flag // in r0 of MSC3882 the availability is exposed as a feature flag
const features = await buildFeatureSupportMap(await this.client.getVersions()); const features = await buildFeatureSupportMap(await this.client.getVersions());
const capability = GET_LOGIN_TOKEN_CAPABILITY.findIn<IGetLoginTokenCapability>(capabilities); const capability = GET_LOGIN_TOKEN_CAPABILITY.findIn<IGetLoginTokenCapability>(capabilities);

View File

@ -19,11 +19,11 @@ limitations under the License.
*/ */
export * from "./MSC3906Rendezvous.ts"; export * from "./MSC3906Rendezvous.ts";
export * from "./MSC4108SignInWithQR.ts"; export * from "./MSC4108SignInWithQR.ts";
export * from "./RendezvousChannel.ts"; export type * from "./RendezvousChannel.ts";
export * from "./RendezvousCode.ts"; export type * from "./RendezvousCode.ts";
export * from "./RendezvousError.ts"; export * from "./RendezvousError.ts";
export * from "./RendezvousFailureReason.ts"; export * from "./RendezvousFailureReason.ts";
export * from "./RendezvousIntent.ts"; export * from "./RendezvousIntent.ts";
export * from "./RendezvousTransport.ts"; export type * from "./RendezvousTransport.ts";
export * from "./transports/index.ts"; export * from "./transports/index.ts";
export * from "./channels/index.ts"; export * from "./channels/index.ts";

View File

@ -241,7 +241,7 @@ export class PerSessionKeyBackupDownloader {
private async getBackupDecryptionKey(): Promise<RustSdkCryptoJs.BackupKeys | null> { private async getBackupDecryptionKey(): Promise<RustSdkCryptoJs.BackupKeys | null> {
try { try {
return await this.olmMachine.getBackupKeys(); return await this.olmMachine.getBackupKeys();
} catch (e) { } catch {
return null; return null;
} }
} }

View File

@ -225,7 +225,7 @@ export class RustBackupManager extends TypedEventEmitter<RustBackupCryptoEvents,
* @returns a promise which resolves once the keys have been imported * @returns a promise which resolves once the keys have been imported
*/ */
public async importRoomKeysAsJson(jsonKeys: string, opts?: ImportRoomKeysOpts): Promise<void> { public async importRoomKeysAsJson(jsonKeys: string, opts?: ImportRoomKeysOpts): Promise<void> {
await this.olmMachine.importExportedRoomKeys(jsonKeys, (progress: BigInt, total: BigInt): void => { await this.olmMachine.importExportedRoomKeys(jsonKeys, (progress: bigint, total: bigint): void => {
const importOpt: ImportRoomKeyProgressData = { const importOpt: ImportRoomKeyProgressData = {
total: Number(total), total: Number(total),
successes: Number(progress), successes: Number(progress),
@ -254,7 +254,7 @@ export class RustBackupManager extends TypedEventEmitter<RustBackupCryptoEvents,
} }
await this.olmMachine.importBackedUpRoomKeys( await this.olmMachine.importBackedUpRoomKeys(
keysByRoom, keysByRoom,
(progress: BigInt, total: BigInt, failures: BigInt): void => { (progress: bigint, total: bigint, failures: bigint): void => {
const importOpt: ImportRoomKeyProgressData = { const importOpt: ImportRoomKeyProgressData = {
total: Number(total), total: Number(total),
successes: Number(progress), successes: Number(progress),

View File

@ -206,7 +206,7 @@ export class IndexedDBStore extends MemoryStore {
throw err; throw err;
}, },
); );
}); }, null);
/** /**
* Whether this store would like to save its data * Whether this store would like to save its data
@ -253,7 +253,7 @@ export class IndexedDBStore extends MemoryStore {
} }
return this.backend.syncToDatabase(userTuples); return this.backend.syncToDatabase(userTuples);
}); }, null);
public setSyncData = this.degradable((syncData: ISyncResponse): Promise<void> => { public setSyncData = this.degradable((syncData: ISyncResponse): Promise<void> => {
return this.backend.setSyncData(syncData); return this.backend.setSyncData(syncData);
@ -310,13 +310,13 @@ export class IndexedDBStore extends MemoryStore {
* @param fallback - The method name for fallback. * @param fallback - The method name for fallback.
* @returns A wrapped member function. * @returns A wrapped member function.
*/ */
private degradable<A extends Array<any>, R = void>( private degradable<A extends Array<any>, F extends keyof MemoryStore | null, R = void>(
func: DegradableFn<A, R>, func: DegradableFn<A, R>,
fallback?: keyof MemoryStore, fallback: F,
): DegradableFn<A, R> { ): DegradableFn<A, F extends string ? R : void> {
const fallbackFn = fallback ? (super[fallback] as Function) : null; const fallbackFn = fallback ? (super[fallback] as (...args: A) => Promise<R>) : null;
return async (...args) => { return (async (...args) => {
try { try {
return await func.call(this, ...args); return await func.call(this, ...args);
} catch (e) { } catch (e) {
@ -344,7 +344,7 @@ export class IndexedDBStore extends MemoryStore {
return fallbackFn.call(this, ...args); return fallbackFn.call(this, ...args);
} }
} }
}; }) as DegradableFn<A, F extends string ? R : void>;
} }
// XXX: ideally these would be stored in indexeddb as part of the room but, // XXX: ideally these would be stored in indexeddb as part of the room but,

View File

@ -258,7 +258,7 @@ export class MemoryStore implements IStore {
if (isValidFilterId(value)) { if (isValidFilterId(value)) {
return value; return value;
} }
} catch (e) {} } catch {}
return null; return null;
} }
@ -276,7 +276,7 @@ export class MemoryStore implements IStore {
} else { } else {
this.localStorage.removeItem(key); this.localStorage.removeItem(key);
} }
} catch (e) {} } catch {}
} }
/** /**

View File

@ -782,7 +782,7 @@ export class GroupCall extends TypedEventEmitter<
return false; return false;
} }
} }
} catch (e) { } catch {
/* istanbul ignore next */ /* istanbul ignore next */
logger.log( logger.log(
`GroupCall ${this.groupCallId} setMicrophoneMuted() no device or permission to receive local stream, muted=${muted}`, `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); await this.updateLocalUsermediaStream(stream);
this.localCallFeed.setAudioVideoMuted(null, muted); this.localCallFeed.setAudioVideoMuted(null, muted);
setTracksEnabled(this.localCallFeed.stream.getVideoTracks(), !muted); setTracksEnabled(this.localCallFeed.stream.getVideoTracks(), !muted);
} catch (_) { } catch {
// No permission to video device // No permission to video device
/* istanbul ignore next */ /* istanbul ignore next */
logger.log( logger.log(

View File

@ -17,7 +17,7 @@ export interface CallStatsReportSummary {
audioTrackSummary: TrackSummary; audioTrackSummary: TrackSummary;
videoTrackSummary: TrackSummary; videoTrackSummary: TrackSummary;
isFirstCollection: Boolean; isFirstCollection: boolean;
} }
export interface TrackSummary { export interface TrackSummary {

View File

@ -50,7 +50,7 @@ export class TrackStatsBuilder {
*/ */
const codecShortType = codec.mimeType.split("/")[1]; const codecShortType = codec.mimeType.split("/")[1];
codecShortType && trackStats.setCodec(codecShortType); if (codecShortType) trackStats.setCodec(codecShortType);
} }
} }

184
yarn.lock
View File

@ -1623,6 +1623,17 @@
ignore "^5.1.8" ignore "^5.1.8"
p-map "^4.0.0" 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": "@tootallnate/once@2":
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
@ -1839,40 +1850,32 @@
dependencies: dependencies:
"@types/yargs-parser" "*" "@types/yargs-parser" "*"
"@typescript-eslint/eslint-plugin@^7.0.0": "@typescript-eslint/eslint-plugin@^8.0.0":
version "7.18.0" version "8.9.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.9.0.tgz#bf0b25305b0bf014b4b194a6919103d7ac2a7907"
integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw== integrity sha512-Y1n621OCy4m7/vTXNlCbMVp87zSd7NH0L9cXD8aIpOaNlzeWxIK4+Q19A68gSmTNRZn92UjocVUWDthGxtqHFg==
dependencies: dependencies:
"@eslint-community/regexpp" "^4.10.0" "@eslint-community/regexpp" "^4.10.0"
"@typescript-eslint/scope-manager" "7.18.0" "@typescript-eslint/scope-manager" "8.9.0"
"@typescript-eslint/type-utils" "7.18.0" "@typescript-eslint/type-utils" "8.9.0"
"@typescript-eslint/utils" "7.18.0" "@typescript-eslint/utils" "8.9.0"
"@typescript-eslint/visitor-keys" "7.18.0" "@typescript-eslint/visitor-keys" "8.9.0"
graphemer "^1.4.0" graphemer "^1.4.0"
ignore "^5.3.1" ignore "^5.3.1"
natural-compare "^1.4.0" natural-compare "^1.4.0"
ts-api-utils "^1.3.0" ts-api-utils "^1.3.0"
"@typescript-eslint/parser@^7.0.0": "@typescript-eslint/parser@^8.0.0":
version "7.18.0" version "8.9.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.9.0.tgz#0cecda6def8aef95d7c7098359c0fda5a362d6ad"
integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg== integrity sha512-U+BLn2rqTTHnc4FL3FJjxaXptTxmf9sNftJK62XLz4+GxG3hLHm/SUNaaXP5Y4uTiuYoL5YLy4JBCJe3+t8awQ==
dependencies: dependencies:
"@typescript-eslint/scope-manager" "7.18.0" "@typescript-eslint/scope-manager" "8.9.0"
"@typescript-eslint/types" "7.18.0" "@typescript-eslint/types" "8.9.0"
"@typescript-eslint/typescript-estree" "7.18.0" "@typescript-eslint/typescript-estree" "8.9.0"
"@typescript-eslint/visitor-keys" "7.18.0" "@typescript-eslint/visitor-keys" "8.9.0"
debug "^4.3.4" 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": "@typescript-eslint/scope-manager@8.6.0":
version "8.6.0" version "8.6.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.6.0.tgz#28cc2fc26a84b75addf45091a2c6283e29e2c982" 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/types" "8.6.0"
"@typescript-eslint/visitor-keys" "8.6.0" "@typescript-eslint/visitor-keys" "8.6.0"
"@typescript-eslint/type-utils@7.18.0": "@typescript-eslint/scope-manager@8.9.0":
version "7.18.0" version "8.9.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.9.0.tgz#c98fef0c4a82a484e6a1eb610a55b154d14d46f3"
integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA== integrity sha512-bZu9bUud9ym1cabmOYH9S6TnbWRzpklVmwqICeOulTCZ9ue2/pczWzQvt/cGj2r2o1RdKoZbuEMalJJSYw3pHQ==
dependencies: dependencies:
"@typescript-eslint/typescript-estree" "7.18.0" "@typescript-eslint/types" "8.9.0"
"@typescript-eslint/utils" "7.18.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" debug "^4.3.4"
ts-api-utils "^1.3.0" 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": "@typescript-eslint/types@8.6.0":
version "8.6.0" version "8.6.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.6.0.tgz#cdc3a16f83f2f0663d6723e9fd032331cdd9f51c" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.6.0.tgz#cdc3a16f83f2f0663d6723e9fd032331cdd9f51c"
integrity sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw== integrity sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw==
"@typescript-eslint/typescript-estree@7.18.0": "@typescript-eslint/types@8.9.0":
version "7.18.0" version "8.9.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.9.0.tgz#b733af07fb340b32e962c6c63b1062aec2dc0fe6"
integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA== integrity sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ==
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/typescript-estree@8.6.0": "@typescript-eslint/typescript-estree@8.6.0":
version "8.6.0" version "8.6.0"
@ -1929,15 +1926,29 @@
semver "^7.6.0" semver "^7.6.0"
ts-api-utils "^1.3.0" ts-api-utils "^1.3.0"
"@typescript-eslint/utils@7.18.0": "@typescript-eslint/typescript-estree@8.9.0":
version "7.18.0" version "8.9.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.9.0.tgz#1714f167e9063062dc0df49c1d25afcbc7a96199"
integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw== 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: dependencies:
"@eslint-community/eslint-utils" "^4.4.0" "@eslint-community/eslint-utils" "^4.4.0"
"@typescript-eslint/scope-manager" "7.18.0" "@typescript-eslint/scope-manager" "8.9.0"
"@typescript-eslint/types" "7.18.0" "@typescript-eslint/types" "8.9.0"
"@typescript-eslint/typescript-estree" "7.18.0" "@typescript-eslint/typescript-estree" "8.9.0"
"@typescript-eslint/utils@^6.0.0 || ^7.0.0 || ^8.0.0": "@typescript-eslint/utils@^6.0.0 || ^7.0.0 || ^8.0.0":
version "8.6.0" version "8.6.0"
@ -1949,14 +1960,6 @@
"@typescript-eslint/types" "8.6.0" "@typescript-eslint/types" "8.6.0"
"@typescript-eslint/typescript-estree" "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": "@typescript-eslint/visitor-keys@8.6.0":
version "8.6.0" version "8.6.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.6.0.tgz#5432af4a1753f376f35ab5b891fc9db237aaf76f" 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" "@typescript-eslint/types" "8.6.0"
eslint-visitor-keys "^3.4.3" 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": "@ungap/structured-clone@^1.0.0", "@ungap/structured-clone@^1.2.0":
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" 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" get-intrinsic "^1.2.4"
is-string "^1.0.7" 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: array.prototype.findlastindex@^1.2.5:
version "1.2.5" version "1.2.5"
resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" 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" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 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: doctrine@^2.1.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 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" spdx-expression-parse "^4.0.0"
synckit "^0.9.1" synckit "^0.9.1"
eslint-plugin-matrix-org@^1.0.0: eslint-plugin-matrix-org@^2.0.1:
version "1.2.1" version "2.0.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-matrix-org/-/eslint-plugin-matrix-org-1.2.1.tgz#76d1505daa93fb99ba4156008b9b32f57682c9b1" resolved "https://registry.yarnpkg.com/eslint-plugin-matrix-org/-/eslint-plugin-matrix-org-2.0.2.tgz#95b86b0f16704ab19740f7c3c62eae69e20365e6"
integrity sha512-A3cDjhG7RHwfCS8o3bOip8hSCsxtmgk2ahvqE5v/Ic2kPEZxixY6w8zLj7hFGsrRmPSEpLWqkVLt8uvQBapiQA== integrity sha512-cQy5Rjeq6uyu1mLXlPZwEJdyM0NmclrnEz68y792FSuuxzMyJNNYLGDQ5CkYW8H+PrD825HUFZ34pNXnjMOzOw==
eslint-plugin-n@^14.0.0: eslint-plugin-n@^14.0.0:
version "14.0.0" version "14.0.0"
@ -3285,7 +3284,7 @@ eslint@8.57.1:
strip-ansi "^6.0.1" strip-ansi "^6.0.1"
text-table "^0.2.0" text-table "^0.2.0"
espree@^10.1.0: espree@^10.1.0, espree@^10.2.0:
version "10.2.0" version "10.2.0"
resolved "https://registry.yarnpkg.com/espree/-/espree-10.2.0.tgz#f4bcead9e05b0615c968e85f83816bc386a45df6" resolved "https://registry.yarnpkg.com/espree/-/espree-10.2.0.tgz#f4bcead9e05b0615c968e85f83816bc386a45df6"
integrity sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g== 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" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 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" version "5.3.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 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" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 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" version "3.3.2"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
@ -3711,18 +3710,6 @@ globalthis@^1.0.3:
define-properties "^1.2.1" define-properties "^1.2.1"
gopd "^1.0.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: gopd@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" 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" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
merge2@^1.3.0, merge2@^1.4.1: merge2@^1.3.0:
version "1.4.1" version "1.4.1"
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 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" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.4.0.tgz#35ce7f333d5616f1c1e1bfe266c3aba2e5b2e704"
integrity sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w== 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: picocolors@^1.0.0, picocolors@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59" 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" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
picomatch@^4.0.1: picomatch@^4.0.1, picomatch@^4.0.2:
version "4.0.2" version "4.0.2"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab"
integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==