From 66a98f89ba13ee2fc01380be171975c313edf792 Mon Sep 17 00:00:00 2001 From: Simon Chan <1330321+yume-chan@users.noreply.github.com> Date: Sat, 3 Aug 2024 17:26:57 +0800 Subject: [PATCH] refactor: upgrade to typescript-eslint v8 --- apps/cli/package.json | 2 +- libraries/adb-credential-web/src/index.ts | 10 +- libraries/adb-daemon-webusb/package.json | 2 +- libraries/adb-scrcpy/src/connection.ts | 2 +- libraries/adb-server-node-tcp/package.json | 2 +- libraries/adb-server-node-tcp/src/index.ts | 7 +- libraries/adb/package.json | 2 +- libraries/adb/src/commands/sync/sync.ts | 2 +- libraries/adb/src/daemon/dispatcher.ts | 2 +- libraries/adb/src/server/client.ts | 13 +- libraries/adb/tsconfig.json | 4 +- libraries/android-bin/package.json | 2 +- libraries/android-bin/src/bug-report.ts | 2 +- libraries/android-bin/src/string-format.ts | 4 +- libraries/event/package.json | 2 +- libraries/fetch-scrcpy-server/package.json | 2 +- libraries/no-data-view/package.json | 4 +- libraries/pcm-player/package.json | 2 +- libraries/scrcpy/package.json | 2 +- libraries/scrcpy/src/options/1_21.ts | 6 +- libraries/stream-extra/package.json | 2 +- libraries/stream-extra/src/buffered.ts | 8 +- libraries/stream-extra/src/duplex.ts | 7 +- libraries/stream-extra/src/index.ts | 1 + libraries/stream-extra/src/try-close.ts | 44 +++ libraries/struct/package.json | 2 +- libraries/struct/src/utils.ts | 2 + pnpm-lock.yaml | 305 +++++++++++++-------- toolchain/eslint-config/eslint.config.js | 1 + toolchain/eslint-config/package.json | 8 +- toolchain/package-lint/package.json | 2 +- toolchain/test-runner/package.json | 2 +- 32 files changed, 278 insertions(+), 180 deletions(-) create mode 100644 libraries/stream-extra/src/try-close.ts diff --git a/apps/cli/package.json b/apps/cli/package.json index 627864f17..1f3809bcb 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -41,7 +41,7 @@ "source-map-support": "^0.5.21" }, "devDependencies": { - "@types/node": "^20.14.12", + "@types/node": "^22.1.0", "@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0", "prettier": "^3.3.3", diff --git a/libraries/adb-credential-web/src/index.ts b/libraries/adb-credential-web/src/index.ts index b76482512..dd992c4a2 100644 --- a/libraries/adb-credential-web/src/index.ts +++ b/libraries/adb-credential-web/src/index.ts @@ -6,7 +6,7 @@ function openDatabase() { return new Promise((resolve, reject) => { const request = indexedDB.open("Tango", 1); request.onerror = () => { - reject(request.error); + reject(request.error!); }; request.onupgradeneeded = () => { const db = request.result; @@ -27,13 +27,13 @@ async function saveKey(key: Uint8Array): Promise { const store = transaction.objectStore("Authentication"); const putRequest = store.add(key); putRequest.onerror = () => { - reject(putRequest.error); + reject(putRequest.error!); }; putRequest.onsuccess = () => { resolve(); }; transaction.onerror = () => { - reject(transaction.error); + reject(transaction.error!); }; transaction.oncomplete = () => { db.close(); @@ -49,13 +49,13 @@ async function getAllKeys() { const store = transaction.objectStore("Authentication"); const getRequest = store.getAll(); getRequest.onerror = () => { - reject(getRequest.error); + reject(getRequest.error!); }; getRequest.onsuccess = () => { resolve(getRequest.result as Uint8Array[]); }; transaction.onerror = () => { - reject(transaction.error); + reject(transaction.error!); }; transaction.oncomplete = () => { db.close(); diff --git a/libraries/adb-daemon-webusb/package.json b/libraries/adb-daemon-webusb/package.json index aa3ec7f4d..c4debe64b 100644 --- a/libraries/adb-daemon-webusb/package.json +++ b/libraries/adb-daemon-webusb/package.json @@ -38,7 +38,7 @@ "@yume-chan/struct": "workspace:^0.0.24" }, "devDependencies": { - "@types/node": "^20.14.12", + "@types/node": "^22.1.0", "@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/test-runner": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0", diff --git a/libraries/adb-scrcpy/src/connection.ts b/libraries/adb-scrcpy/src/connection.ts index d272c06f4..ef68711c3 100644 --- a/libraries/adb-scrcpy/src/connection.ts +++ b/libraries/adb-scrcpy/src/connection.ts @@ -110,7 +110,7 @@ export class AdbScrcpyForwardConnection extends AdbScrcpyConnection { }; } return stream; - } catch (e) { + } catch { // Maybe the server is still starting await delay(100); } diff --git a/libraries/adb-server-node-tcp/package.json b/libraries/adb-server-node-tcp/package.json index c7f9fe9d3..9e2a6453c 100644 --- a/libraries/adb-server-node-tcp/package.json +++ b/libraries/adb-server-node-tcp/package.json @@ -37,7 +37,7 @@ "@yume-chan/struct": "workspace:^0.0.24" }, "devDependencies": { - "@types/node": "^20.14.12", + "@types/node": "^22.1.0", "@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0", "prettier": "^3.3.3", diff --git a/libraries/adb-server-node-tcp/src/index.ts b/libraries/adb-server-node-tcp/src/index.ts index bb42b6dc4..e922e1056 100644 --- a/libraries/adb-server-node-tcp/src/index.ts +++ b/libraries/adb-server-node-tcp/src/index.ts @@ -5,6 +5,7 @@ import type { AdbIncomingSocketHandler, AdbServerClient } from "@yume-chan/adb"; import { MaybeConsumable, PushReadableStream, + tryClose, WrapWritableStream, WritableStream, } from "@yume-chan/stream-extra"; @@ -32,11 +33,7 @@ function nodeSocketToConnection( socket.resume(); }); socket.on("end", () => { - try { - controller.close(); - } catch (e) { - // controller already closed - } + tryClose(controller); }); }), writable: new WritableStream({ diff --git a/libraries/adb/package.json b/libraries/adb/package.json index 3a5b6eb9e..c6375009b 100644 --- a/libraries/adb/package.json +++ b/libraries/adb/package.json @@ -39,7 +39,7 @@ "@yume-chan/struct": "workspace:^0.0.24" }, "devDependencies": { - "@types/node": "^20.14.12", + "@types/node": "^22.1.0", "@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/test-runner": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0", diff --git a/libraries/adb/src/commands/sync/sync.ts b/libraries/adb/src/commands/sync/sync.ts index 10889fd5f..10b360e3b 100644 --- a/libraries/adb/src/commands/sync/sync.ts +++ b/libraries/adb/src/commands/sync/sync.ts @@ -117,7 +117,7 @@ export class AdbSync extends AutoDisposable { try { await this.lstat(path + "/"); return true; - } catch (e) { + } catch { return false; } } diff --git a/libraries/adb/src/daemon/dispatcher.ts b/libraries/adb/src/daemon/dispatcher.ts index 3924fbd3e..92e916e81 100644 --- a/libraries/adb/src/daemon/dispatcher.ts +++ b/libraries/adb/src/daemon/dispatcher.ts @@ -334,7 +334,7 @@ export class AdbPacketDispatcher implements Closeable { remoteId, this.options.initialDelayedAckBytes, ); - } catch (e) { + } catch { await this.sendPacket( AdbCommand.Close, 0, diff --git a/libraries/adb/src/server/client.ts b/libraries/adb/src/server/client.ts index b1905e7aa..407832204 100644 --- a/libraries/adb/src/server/client.ts +++ b/libraries/adb/src/server/client.ts @@ -11,6 +11,8 @@ import { BufferedReadableStream, MaybeConsumable, WrapWritableStream, + tryCancel, + tryClose, } from "@yume-chan/stream-extra"; import type { ValueOrPromise } from "@yume-chan/struct"; import { @@ -23,12 +25,7 @@ import { import type { AdbIncomingSocketHandler, AdbSocket, Closeable } from "../adb.js"; import { AdbBanner } from "../banner.js"; import type { AdbFeature } from "../features.js"; -import { - NOOP, - hexToNumber, - sequenceEqual, - write4HexDigits, -} from "../utils/index.js"; +import { hexToNumber, sequenceEqual, write4HexDigits } from "../utils/index.js"; import { AdbServerTransport } from "./transport.js"; @@ -123,8 +120,8 @@ class AdbServerStream { } async dispose() { - await this.#buffered.cancel().catch(NOOP); - await this.#writer.close().catch(NOOP); + void tryCancel(this.#buffered); + void tryClose(this.#writer); await this.#connection.close(); } } diff --git a/libraries/adb/tsconfig.json b/libraries/adb/tsconfig.json index d6787a22b..b9efc946e 100644 --- a/libraries/adb/tsconfig.json +++ b/libraries/adb/tsconfig.json @@ -1,10 +1,10 @@ { "references": [ { - "path": "./tsconfig.build.json" + "path": "./tsconfig.test.json" }, { - "path": "./tsconfig.test.json" + "path": "./tsconfig.build.json" } ] } diff --git a/libraries/android-bin/package.json b/libraries/android-bin/package.json index a96365a1e..68ca8dcbd 100644 --- a/libraries/android-bin/package.json +++ b/libraries/android-bin/package.json @@ -37,7 +37,7 @@ "@yume-chan/struct": "workspace:^0.0.24" }, "devDependencies": { - "@types/node": "^20.14.12", + "@types/node": "^22.1.0", "@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/test-runner": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0", diff --git a/libraries/android-bin/src/bug-report.ts b/libraries/android-bin/src/bug-report.ts index e09bb0e96..dafc3763e 100644 --- a/libraries/android-bin/src/bug-report.ts +++ b/libraries/android-bin/src/bug-report.ts @@ -185,7 +185,7 @@ export class BugReport extends AdbCommandBase { */ async bugReportZ(options?: BugReportZOptions): Promise { if (options?.signal?.aborted) { - throw options?.signal.reason ?? new Error("Aborted"); + throw options?.signal.reason as Error; } if (!this.#supportsBugReportZ) { diff --git a/libraries/android-bin/src/string-format.ts b/libraries/android-bin/src/string-format.ts index a9171d452..c8dd18924 100644 --- a/libraries/android-bin/src/string-format.ts +++ b/libraries/android-bin/src/string-format.ts @@ -93,7 +93,7 @@ export const p = { const result = format.stringify(value); // Parse the result to make sure it is valid format.parse({ value: result, position: 0 }); - } catch (e) { + } catch { // ignore } } @@ -141,7 +141,7 @@ export const p = { while (true) { try { result.push(format.parse(reader)); - } catch (e) { + } catch { break; } } diff --git a/libraries/event/package.json b/libraries/event/package.json index 363e0fb11..018d75a55 100644 --- a/libraries/event/package.json +++ b/libraries/event/package.json @@ -36,7 +36,7 @@ "@yume-chan/async": "^2.2.0" }, "devDependencies": { - "@types/node": "^20.14.12", + "@types/node": "^22.1.0", "@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/test-runner": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0", diff --git a/libraries/fetch-scrcpy-server/package.json b/libraries/fetch-scrcpy-server/package.json index 3d76b9e9b..ad11ef2de 100644 --- a/libraries/fetch-scrcpy-server/package.json +++ b/libraries/fetch-scrcpy-server/package.json @@ -31,6 +31,6 @@ "gh-release-fetch": "^4.0.3" }, "devDependencies": { - "@types/node": "^20.14.12" + "@types/node": "^22.1.0" } } diff --git a/libraries/no-data-view/package.json b/libraries/no-data-view/package.json index 9ebee6b37..d73eca308 100644 --- a/libraries/no-data-view/package.json +++ b/libraries/no-data-view/package.json @@ -30,12 +30,12 @@ "test": "run-test" }, "devDependencies": { - "@types/node": "^20.14.12", + "@types/node": "^22.1.0", "@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/test-runner": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0", "prettier": "^3.3.3", - "tinybench": "^2.8.0", + "tinybench": "^2.9.0", "typescript": "^5.5.4" } } diff --git a/libraries/pcm-player/package.json b/libraries/pcm-player/package.json index eabba4544..61bf3c013 100644 --- a/libraries/pcm-player/package.json +++ b/libraries/pcm-player/package.json @@ -30,7 +30,7 @@ "prepublishOnly": "npm run build" }, "devDependencies": { - "@types/audioworklet": "^0.0.57", + "@types/audioworklet": "^0.0.58", "@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0", "prettier": "^3.3.3", diff --git a/libraries/scrcpy/package.json b/libraries/scrcpy/package.json index 942d4b338..fd0a5e698 100644 --- a/libraries/scrcpy/package.json +++ b/libraries/scrcpy/package.json @@ -39,7 +39,7 @@ "@yume-chan/struct": "workspace:^0.0.24" }, "devDependencies": { - "@types/node": "^20.14.12", + "@types/node": "^22.1.0", "@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/test-runner": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0", diff --git a/libraries/scrcpy/src/options/1_21.ts b/libraries/scrcpy/src/options/1_21.ts index 60641d1c2..03b0d74c5 100644 --- a/libraries/scrcpy/src/options/1_21.ts +++ b/libraries/scrcpy/src/options/1_21.ts @@ -81,7 +81,7 @@ export class ScrcpyOptions1_21 extends ScrcpyOptions { } } - #deviceMessageError: unknown; + #deviceMessageError: Error | undefined; override async parseDeviceMessage( id: number, @@ -97,12 +97,12 @@ export class ScrcpyOptions1_21 extends ScrcpyOptions { break; } } catch (e) { - this.#deviceMessageError = e; + this.#deviceMessageError = e as Error; throw e; } } - override async endDeviceMessageStream(e?: unknown): Promise { + override async endDeviceMessageStream(e?: Error): Promise { await super.endDeviceMessageStream(e); this.#deviceMessageError ??= e ?? new Error("Device message stream ended"); diff --git a/libraries/stream-extra/package.json b/libraries/stream-extra/package.json index a2fb5ef92..62b9e27dc 100644 --- a/libraries/stream-extra/package.json +++ b/libraries/stream-extra/package.json @@ -36,7 +36,7 @@ "@yume-chan/struct": "workspace:^0.0.24" }, "devDependencies": { - "@types/node": "^20.14.12", + "@types/node": "^22.1.0", "@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/test-runner": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0", diff --git a/libraries/stream-extra/src/buffered.ts b/libraries/stream-extra/src/buffered.ts index ff78a00a0..f1b4baa1b 100644 --- a/libraries/stream-extra/src/buffered.ts +++ b/libraries/stream-extra/src/buffered.ts @@ -3,10 +3,7 @@ import { ExactReadableEndedError } from "@yume-chan/struct"; import { PushReadableStream } from "./push-readable.js"; import type { ReadableStream, ReadableStreamDefaultReader } from "./stream.js"; - -const NOOP = () => { - // no-op -}; +import { tryCancel } from "./try-close.js"; export class BufferedReadableStream implements AsyncExactReadable { #buffered: Uint8Array | undefined; @@ -133,8 +130,7 @@ export class BufferedReadableStream implements AsyncExactReadable { await controller.enqueue(buffered); controller.abortSignal.addEventListener("abort", () => { - // NOOP: the reader might already be released - this.reader.cancel().catch(NOOP); + void tryCancel(this.reader); }); // Manually pipe the stream diff --git a/libraries/stream-extra/src/duplex.ts b/libraries/stream-extra/src/duplex.ts index e61583088..1139822a3 100644 --- a/libraries/stream-extra/src/duplex.ts +++ b/libraries/stream-extra/src/duplex.ts @@ -8,6 +8,7 @@ import type { WritableStreamDefaultWriter, } from "./stream.js"; import { WritableStream } from "./stream.js"; +import { tryClose } from "./try-close.js"; import { WrapReadableStream } from "./wrap-readable.js"; const NOOP = () => { @@ -134,11 +135,7 @@ export class DuplexStreamFactory { this.#closed.resolve(); for (const controller of this.#readableControllers) { - try { - controller.close(); - } catch { - // ignore - } + tryClose(controller); } await this.#options.dispose?.(); diff --git a/libraries/stream-extra/src/index.ts b/libraries/stream-extra/src/index.ts index f8c0fd4ad..d11973001 100644 --- a/libraries/stream-extra/src/index.ts +++ b/libraries/stream-extra/src/index.ts @@ -14,5 +14,6 @@ export * from "./stream.js"; export * from "./struct-deserialize.js"; export * from "./struct-serialize.js"; export * from "./task.js"; +export * from "./try-close.js"; export * from "./wrap-readable.js"; export * from "./wrap-writable.js"; diff --git a/libraries/stream-extra/src/try-close.ts b/libraries/stream-extra/src/try-close.ts new file mode 100644 index 000000000..d9d712d11 --- /dev/null +++ b/libraries/stream-extra/src/try-close.ts @@ -0,0 +1,44 @@ +import type { BufferedReadableStream } from "./buffered.js"; +import type { PushReadableStreamController } from "./push-readable.js"; +import type { + ReadableStream, + ReadableStreamDefaultController, + ReadableStreamDefaultReader, + WritableStreamDefaultWriter, +} from "./stream.js"; + +export function tryClose( + controller: PushReadableStreamController, +): boolean; +export function tryClose( + controller: ReadableStreamDefaultController, +): boolean; +export function tryClose(writer: WritableStreamDefaultWriter): boolean; +export function tryClose(controller: { close(): void }) { + try { + controller.close(); + return true; + } catch { + return false; + } +} + +export async function tryCancel( + stream: ReadableStream, +): Promise; +export async function tryCancel( + stream: BufferedReadableStream, +): Promise; +export async function tryCancel( + reader: ReadableStreamDefaultReader, +): Promise; +export async function tryCancel(stream: { + cancel(): Promise; +}): Promise { + try { + await stream.cancel(); + return true; + } catch { + return false; + } +} diff --git a/libraries/struct/package.json b/libraries/struct/package.json index bd08866a8..fb6a0ab6d 100644 --- a/libraries/struct/package.json +++ b/libraries/struct/package.json @@ -37,7 +37,7 @@ "@yume-chan/no-data-view": "workspace:^0.0.24" }, "devDependencies": { - "@types/node": "^20.14.12", + "@types/node": "^22.1.0", "@yume-chan/eslint-config": "workspace:^1.0.0", "@yume-chan/test-runner": "workspace:^1.0.0", "@yume-chan/tsconfig": "workspace:^1.0.0", diff --git a/libraries/struct/src/utils.ts b/libraries/struct/src/utils.ts index 3431e52d7..5ca94ba86 100644 --- a/libraries/struct/src/utils.ts +++ b/libraries/struct/src/utils.ts @@ -61,12 +61,14 @@ export function placeholder(): T { // But using top level await to load them requires Node.js 14.1. // So there is no point to do that. Let's just assume they exist in global. +// eslint-disable-next-line @typescript-eslint/no-unused-vars declare class TextEncoderType { constructor(); encode(input: string): Uint8Array; } +// eslint-disable-next-line @typescript-eslint/no-unused-vars declare class TextDecoderType { constructor(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0a0eb2ecd..ac04fccf3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,8 +34,8 @@ importers: version: 0.5.21 devDependencies: '@types/node': - specifier: ^20.14.12 - version: 20.14.12 + specifier: ^22.1.0 + version: 22.1.0 '@yume-chan/eslint-config': specifier: workspace:^1.0.0 version: link:../../toolchain/eslint-config @@ -68,8 +68,8 @@ importers: version: link:../struct devDependencies: '@types/node': - specifier: ^20.14.12 - version: 20.14.12 + specifier: ^22.1.0 + version: 22.1.0 '@yume-chan/eslint-config': specifier: workspace:^1.0.0 version: link:../../toolchain/eslint-config @@ -121,8 +121,8 @@ importers: version: link:../struct devDependencies: '@types/node': - specifier: ^20.14.12 - version: 20.14.12 + specifier: ^22.1.0 + version: 22.1.0 '@yume-chan/eslint-config': specifier: workspace:^1.0.0 version: link:../../toolchain/eslint-config @@ -186,8 +186,8 @@ importers: version: link:../struct devDependencies: '@types/node': - specifier: ^20.14.12 - version: 20.14.12 + specifier: ^22.1.0 + version: 22.1.0 '@yume-chan/eslint-config': specifier: workspace:^1.0.0 version: link:../../toolchain/eslint-config @@ -214,8 +214,8 @@ importers: version: link:../struct devDependencies: '@types/node': - specifier: ^20.14.12 - version: 20.14.12 + specifier: ^22.1.0 + version: 22.1.0 '@yume-chan/eslint-config': specifier: workspace:^1.0.0 version: link:../../toolchain/eslint-config @@ -258,8 +258,8 @@ importers: version: 2.2.0 devDependencies: '@types/node': - specifier: ^20.14.12 - version: 20.14.12 + specifier: ^22.1.0 + version: 22.1.0 '@yume-chan/eslint-config': specifier: workspace:^1.0.0 version: link:../../toolchain/eslint-config @@ -283,14 +283,14 @@ importers: version: 4.0.3 devDependencies: '@types/node': - specifier: ^20.14.12 - version: 20.14.12 + specifier: ^22.1.0 + version: 22.1.0 libraries/no-data-view: devDependencies: '@types/node': - specifier: ^20.14.12 - version: 20.14.12 + specifier: ^22.1.0 + version: 22.1.0 '@yume-chan/eslint-config': specifier: workspace:^1.0.0 version: link:../../toolchain/eslint-config @@ -304,8 +304,8 @@ importers: specifier: ^3.3.3 version: 3.3.3 tinybench: - specifier: ^2.8.0 - version: 2.8.0 + specifier: ^2.9.0 + version: 2.9.0 typescript: specifier: ^5.5.4 version: 5.5.4 @@ -313,8 +313,8 @@ importers: libraries/pcm-player: devDependencies: '@types/audioworklet': - specifier: ^0.0.57 - version: 0.0.57 + specifier: ^0.0.58 + version: 0.0.58 '@yume-chan/eslint-config': specifier: workspace:^1.0.0 version: link:../../toolchain/eslint-config @@ -344,8 +344,8 @@ importers: version: link:../struct devDependencies: '@types/node': - specifier: ^20.14.12 - version: 20.14.12 + specifier: ^22.1.0 + version: 22.1.0 '@yume-chan/eslint-config': specifier: workspace:^1.0.0 version: link:../../toolchain/eslint-config @@ -440,8 +440,8 @@ importers: version: link:../struct devDependencies: '@types/node': - specifier: ^20.14.12 - version: 20.14.12 + specifier: ^22.1.0 + version: 22.1.0 '@yume-chan/eslint-config': specifier: workspace:^1.0.0 version: link:../../toolchain/eslint-config @@ -465,8 +465,8 @@ importers: version: link:../no-data-view devDependencies: '@types/node': - specifier: ^20.14.12 - version: 20.14.12 + specifier: ^22.1.0 + version: 22.1.0 '@yume-chan/eslint-config': specifier: workspace:^1.0.0 version: link:../../toolchain/eslint-config @@ -486,23 +486,23 @@ importers: toolchain/eslint-config: dependencies: '@eslint/js': - specifier: ^9.7.0 - version: 9.7.0 + specifier: ^9.8.0 + version: 9.8.0 '@types/node': - specifier: ^20.14.12 - version: 20.14.12 + specifier: ^22.1.0 + version: 22.1.0 eslint: - specifier: ^9.7.0 - version: 9.7.0 + specifier: ^9.8.0 + version: 9.8.0 eslint-plugin-import-x: specifier: ^3.1.0 - version: 3.1.0(eslint@9.7.0)(typescript@5.5.4) + version: 3.1.0(eslint@9.8.0)(typescript@5.5.4) typescript: specifier: ^5.5.4 version: 5.5.4 typescript-eslint: - specifier: ^7.17.0 - version: 7.17.0(eslint@9.7.0)(typescript@5.5.4) + specifier: ^8.0.0 + version: 8.0.0(eslint@9.8.0)(typescript@5.5.4) devDependencies: prettier: specifier: ^3.3.3 @@ -511,8 +511,8 @@ importers: toolchain/package-lint: dependencies: '@types/node': - specifier: ^20.14.12 - version: 20.14.12 + specifier: ^22.1.0 + version: 22.1.0 json5: specifier: ^2.2.3 version: 2.2.3 @@ -520,8 +520,8 @@ importers: toolchain/test-runner: devDependencies: '@types/node': - specifier: ^20.14.12 - version: 20.14.12 + specifier: ^22.1.0 + version: 22.1.0 typescript: specifier: ^5.5.4 version: 5.5.4 @@ -603,16 +603,16 @@ packages: resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.17.0': - resolution: {integrity: sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==} + '@eslint/config-array@0.17.1': + resolution: {integrity: sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@3.1.0': resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.7.0': - resolution: {integrity: sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==} + '@eslint/js@9.8.0': + resolution: {integrity: sha512-MfluB7EUfxXtv3i/++oh89uzAr4PDI4nn201hsp+qaXqsjAWzinlZEHEfPgAX4doIlKvPG/i0A9dpKxOLII8yA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': @@ -656,8 +656,8 @@ packages: '@tokenizer/token@0.3.0': resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} - '@types/audioworklet@0.0.57': - resolution: {integrity: sha512-Qnza35nR2dXWeQO/O79QVaicqVtzGdnuy89ZkBqCUMQtYrYj+71MA2MWo65rsT1P7sNKHWHeQQHg5ILFaJjMxw==} + '@types/audioworklet@0.0.58': + resolution: {integrity: sha512-uHlows3ykQFfxDdMEcLChlCtVI63OvKCKNViOc7pOeyS8JqqjuzAPcp4Yo2QopnEH4Rh54vLauQZKJRgnrBG/A==} '@types/http-cache-semantics@4.0.4': resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} @@ -665,8 +665,8 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@20.14.12': - resolution: {integrity: sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==} + '@types/node@22.1.0': + resolution: {integrity: sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==} '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} @@ -674,22 +674,22 @@ packages: '@types/w3c-web-usb@1.0.10': resolution: {integrity: sha512-CHgUI5kTc/QLMP8hODUHhge0D4vx+9UiAwIGiT0sTy/B2XpdX1U5rJt6JSISgr6ikRT7vxV9EVAFeYZqUnl1gQ==} - '@typescript-eslint/eslint-plugin@7.17.0': - resolution: {integrity: sha512-pyiDhEuLM3PuANxH7uNYan1AaFs5XE0zw1hq69JBvGvE7gSuEoQl1ydtEe/XQeoC3GQxLXyOVa5kNOATgM638A==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/eslint-plugin@8.0.0': + resolution: {integrity: sha512-STIZdwEQRXAHvNUS6ILDf5z3u95Gc8jzywunxSNqX00OooIemaaNIA0vEgynJlycL5AjabYLLrIyHd4iazyvtg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/parser@7.17.0': - resolution: {integrity: sha512-puiYfGeg5Ydop8eusb/Hy1k7QmOU6X3nvsqCgzrB2K4qMavK//21+PzNE8qeECgNOIoertJPUC1SpegHDI515A==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/parser@8.0.0': + resolution: {integrity: sha512-pS1hdZ+vnrpDIxuFXYQpLTILglTjSYJ9MbetZctrUawogUsPdz31DIIRZ9+rab0LhYNTsk88w4fIzVheiTbWOQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: @@ -699,11 +699,14 @@ packages: resolution: {integrity: sha512-0P2jTTqyxWp9HiKLu/Vemr2Rg1Xb5B7uHItdVZ6iAenXmPo4SZ86yOPCJwMqpCyaMiEHTNqizHfsbmCFT1x9SA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/type-utils@7.17.0': - resolution: {integrity: sha512-XD3aaBt+orgkM/7Cei0XNEm1vwUxQ958AOLALzPlbPqb8C1G8PZK85tND7Jpe69Wualri81PLU+Zc48GVKIMMA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@8.0.0': + resolution: {integrity: sha512-V0aa9Csx/ZWWv2IPgTfY7T4agYwJyILESu/PVqFtTFz9RIS823mAze+NbnBI8xiwdX3iqeQbcTYlvB04G9wyQw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.0.0': + resolution: {integrity: sha512-mJAFP2mZLTBwAn5WI4PMakpywfWFH5nQZezUQdSKV23Pqo6o9iShQg1hP2+0hJJXP2LnZkWPphdIq4juYYwCeg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: @@ -713,6 +716,10 @@ packages: resolution: {integrity: sha512-a29Ir0EbyKTKHnZWbNsrc/gqfIBqYPwj3F2M+jWE/9bqfEHg0AMtXzkbUkOG6QgEScxh2+Pz9OXe11jHDnHR7A==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/types@8.0.0': + resolution: {integrity: sha512-wgdSGs9BTMWQ7ooeHtu5quddKKs5Z5dS+fHLbrQI+ID0XWJLODGMHRfhwImiHoeO2S5Wir2yXuadJN6/l4JRxw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@7.17.0': resolution: {integrity: sha512-72I3TGq93t2GoSBWI093wmKo0n6/b7O4j9o8U+f65TVD0FS6bI2180X5eGEr8MA8PhKMvYe9myZJquUT2JkCZw==} engines: {node: ^18.18.0 || >=20.0.0} @@ -722,16 +729,35 @@ packages: typescript: optional: true + '@typescript-eslint/typescript-estree@8.0.0': + resolution: {integrity: sha512-5b97WpKMX+Y43YKi4zVcCVLtK5F98dFls3Oxui8LbnmRsseKenbbDinmvxrWegKDMmlkIq/XHuyy0UGLtpCDKg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/utils@7.17.0': resolution: {integrity: sha512-r+JFlm5NdB+JXc7aWWZ3fKSm1gn0pkswEwIYsrGPdsT2GjsRATAKXiNtp3vgAAO1xZhX8alIOEQnNMl3kbTgJw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 + '@typescript-eslint/utils@8.0.0': + resolution: {integrity: sha512-k/oS/A/3QeGLRvOWCg6/9rATJL5rec7/5s1YmdS0ZU6LHveJyGFwBvLhSRBv6i9xaj7etmosp+l+ViN1I9Aj/Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + '@typescript-eslint/visitor-keys@7.17.0': resolution: {integrity: sha512-RVGC9UhPOCsfCdI9pU++K4nD7to+jTcMIbXTSOcrLqUEW6gF2pU1UUbYJKc9cvcRSK1UDeMJ7pdMxf4bhMpV/A==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@8.0.0': + resolution: {integrity: sha512-oN0K4nkHuOyF3PVMyETbpP5zp6wfyOvm7tWhTMfoqxSSsPmJIh6JNASuZDlODE8eE+0EB9uar+6+vxr9DBTYOA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@xhmikosr/archive-type@6.0.1': resolution: {integrity: sha512-PB3NeJL8xARZt52yDBupK0dNPn8uIVQDe15qNehUpoeeLWCZyAOam4vGXnoZGz2N9D1VXtjievJuCsXam2TmbQ==} engines: {node: ^14.14.0 || >=16.0.0} @@ -910,8 +936,8 @@ packages: supports-color: optional: true - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -979,8 +1005,8 @@ packages: resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.7.0: - resolution: {integrity: sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==} + eslint@9.8.0: + resolution: {integrity: sha512-K8qnZ/QJzT2dLKdZJVX6W4XOwBzutMYmt0lqUS+JdXgd+HTYFlonFgkJ8s44d/zMPPCnOOk0kMWCApCPhiOy9A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true @@ -1642,8 +1668,8 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - tinybench@2.8.0: - resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} tinyh264@0.0.7: resolution: {integrity: sha512-etkBRgYkSFBdAi2Cqk4sZgi+xWs/vhzNgvjO3z2i4WILeEmORiNqxuQ4URJatrWQ9LPNV3WPWAtzsh/LA/XL/g==} @@ -1677,11 +1703,10 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@7.17.0: - resolution: {integrity: sha512-spQxsQvPguduCUfyUvLItvKqK3l8KJ/kqs5Pb/URtzQ5AC53Z6us32St37rpmlt2uESG23lOFpV4UErrmy4dZQ==} - engines: {node: ^18.18.0 || >=20.0.0} + typescript-eslint@8.0.0: + resolution: {integrity: sha512-yQWBJutWL1PmpmDddIOl9/Mi6vZjqNCjqSGBMQ4vsc2Aiodk0SnbQQWPXbSy0HNuKCuGkw1+u4aQ2mO40TdhDQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: @@ -1695,8 +1720,8 @@ packages: unbzip2-stream@1.4.3: resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.13.0: + resolution: {integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==} universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} @@ -1907,17 +1932,17 @@ snapshots: human-id: 1.0.2 prettier: 2.8.8 - '@eslint-community/eslint-utils@4.4.0(eslint@9.7.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.8.0)': dependencies: - eslint: 9.7.0 + eslint: 9.8.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.0': {} - '@eslint/config-array@0.17.0': + '@eslint/config-array@0.17.1': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.5 + debug: 4.3.6 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -1925,7 +1950,7 @@ snapshots: '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.3.6 espree: 10.1.0 globals: 14.0.0 ignore: 5.3.1 @@ -1936,7 +1961,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.7.0': {} + '@eslint/js@9.8.0': {} '@eslint/object-schema@2.1.4': {} @@ -1980,29 +2005,29 @@ snapshots: '@tokenizer/token@0.3.0': {} - '@types/audioworklet@0.0.57': {} + '@types/audioworklet@0.0.58': {} '@types/http-cache-semantics@4.0.4': {} '@types/node@12.20.55': {} - '@types/node@20.14.12': + '@types/node@22.1.0': dependencies: - undici-types: 5.26.5 + undici-types: 6.13.0 '@types/semver@7.5.8': {} '@types/w3c-web-usb@1.0.10': {} - '@typescript-eslint/eslint-plugin@7.17.0(@typescript-eslint/parser@7.17.0(eslint@9.7.0)(typescript@5.5.4))(eslint@9.7.0)(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 7.17.0(eslint@9.7.0)(typescript@5.5.4) - '@typescript-eslint/scope-manager': 7.17.0 - '@typescript-eslint/type-utils': 7.17.0(eslint@9.7.0)(typescript@5.5.4) - '@typescript-eslint/utils': 7.17.0(eslint@9.7.0)(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 7.17.0 - eslint: 9.7.0 + '@typescript-eslint/parser': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.0.0 + '@typescript-eslint/type-utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.0.0 + eslint: 9.8.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -2012,14 +2037,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.17.0(eslint@9.7.0)(typescript@5.5.4)': + '@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4)': dependencies: - '@typescript-eslint/scope-manager': 7.17.0 - '@typescript-eslint/types': 7.17.0 - '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 7.17.0 - debug: 4.3.5 - eslint: 9.7.0 + '@typescript-eslint/scope-manager': 8.0.0 + '@typescript-eslint/types': 8.0.0 + '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.0.0 + debug: 4.3.6 + eslint: 9.8.0 optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -2030,25 +2055,47 @@ snapshots: '@typescript-eslint/types': 7.17.0 '@typescript-eslint/visitor-keys': 7.17.0 - '@typescript-eslint/type-utils@7.17.0(eslint@9.7.0)(typescript@5.5.4)': + '@typescript-eslint/scope-manager@8.0.0': dependencies: - '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4) - '@typescript-eslint/utils': 7.17.0(eslint@9.7.0)(typescript@5.5.4) - debug: 4.3.5 - eslint: 9.7.0 + '@typescript-eslint/types': 8.0.0 + '@typescript-eslint/visitor-keys': 8.0.0 + + '@typescript-eslint/type-utils@8.0.0(eslint@9.8.0)(typescript@5.5.4)': + dependencies: + '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + debug: 4.3.6 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: + - eslint - supports-color '@typescript-eslint/types@7.17.0': {} + '@typescript-eslint/types@8.0.0': {} + '@typescript-eslint/typescript-estree@7.17.0(typescript@5.5.4)': dependencies: '@typescript-eslint/types': 7.17.0 '@typescript-eslint/visitor-keys': 7.17.0 - debug: 4.3.5 + debug: 4.3.6 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@8.0.0(typescript@5.5.4)': + dependencies: + '@typescript-eslint/types': 8.0.0 + '@typescript-eslint/visitor-keys': 8.0.0 + debug: 4.3.6 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -2059,13 +2106,24 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.17.0(eslint@9.7.0)(typescript@5.5.4)': + '@typescript-eslint/utils@7.17.0(eslint@9.8.0)(typescript@5.5.4)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) '@typescript-eslint/scope-manager': 7.17.0 '@typescript-eslint/types': 7.17.0 '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4) - eslint: 9.7.0 + eslint: 9.8.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/utils@8.0.0(eslint@9.8.0)(typescript@5.5.4)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + '@typescript-eslint/scope-manager': 8.0.0 + '@typescript-eslint/types': 8.0.0 + '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.4) + eslint: 9.8.0 transitivePeerDependencies: - supports-color - typescript @@ -2075,6 +2133,11 @@ snapshots: '@typescript-eslint/types': 7.17.0 eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@8.0.0': + dependencies: + '@typescript-eslint/types': 8.0.0 + eslint-visitor-keys: 3.4.3 + '@xhmikosr/archive-type@6.0.1': dependencies: file-type: 18.7.0 @@ -2269,7 +2332,7 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.5: + debug@4.3.6: dependencies: ms: 2.1.2 @@ -2310,12 +2373,12 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import-x@3.1.0(eslint@9.7.0)(typescript@5.5.4): + eslint-plugin-import-x@3.1.0(eslint@9.8.0)(typescript@5.5.4): dependencies: - '@typescript-eslint/utils': 7.17.0(eslint@9.7.0)(typescript@5.5.4) - debug: 4.3.5 + '@typescript-eslint/utils': 7.17.0(eslint@9.8.0)(typescript@5.5.4) + debug: 4.3.6 doctrine: 3.0.0 - eslint: 9.7.0 + eslint: 9.8.0 eslint-import-resolver-node: 0.3.9 get-tsconfig: 4.7.6 is-glob: 4.0.3 @@ -2336,20 +2399,20 @@ snapshots: eslint-visitor-keys@4.0.0: {} - eslint@9.7.0: + eslint@9.8.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) '@eslint-community/regexpp': 4.11.0 - '@eslint/config-array': 0.17.0 + '@eslint/config-array': 0.17.1 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.7.0 + '@eslint/js': 9.8.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5 + debug: 4.3.6 escape-string-regexp: 4.0.0 eslint-scope: 8.0.2 eslint-visitor-keys: 4.0.0 @@ -2968,7 +3031,7 @@ snapshots: through@2.3.8: {} - tinybench@2.8.0: {} + tinybench@2.9.0: {} tinyh264@0.0.7: {} @@ -2999,15 +3062,15 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@7.17.0(eslint@9.7.0)(typescript@5.5.4): + typescript-eslint@8.0.0(eslint@9.8.0)(typescript@5.5.4): dependencies: - '@typescript-eslint/eslint-plugin': 7.17.0(@typescript-eslint/parser@7.17.0(eslint@9.7.0)(typescript@5.5.4))(eslint@9.7.0)(typescript@5.5.4) - '@typescript-eslint/parser': 7.17.0(eslint@9.7.0)(typescript@5.5.4) - '@typescript-eslint/utils': 7.17.0(eslint@9.7.0)(typescript@5.5.4) - eslint: 9.7.0 + '@typescript-eslint/eslint-plugin': 8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4) + '@typescript-eslint/parser': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: + - eslint - supports-color typescript@5.5.4: {} @@ -3017,7 +3080,7 @@ snapshots: buffer: 5.7.1 through: 2.3.8 - undici-types@5.26.5: {} + undici-types@6.13.0: {} universalify@0.1.2: {} diff --git a/toolchain/eslint-config/eslint.config.js b/toolchain/eslint-config/eslint.config.js index 452fe0126..da16d1eab 100644 --- a/toolchain/eslint-config/eslint.config.js +++ b/toolchain/eslint-config/eslint.config.js @@ -32,6 +32,7 @@ export default tslint.config( languageOptions: { parserOptions: { tsconfigRootDir: root, + projectService: true, project: [ "libraries/*/tsconfig.test.json", "libraries/*/tsconfig.build.json", diff --git a/toolchain/eslint-config/package.json b/toolchain/eslint-config/package.json index 9b2ab7d40..0c9466c18 100644 --- a/toolchain/eslint-config/package.json +++ b/toolchain/eslint-config/package.json @@ -8,12 +8,12 @@ "run-eslint": "run-eslint.js" }, "dependencies": { - "@eslint/js": "^9.7.0", - "@types/node": "^20.14.12", - "eslint": "^9.7.0", + "@eslint/js": "^9.8.0", + "@types/node": "^22.1.0", + "eslint": "^9.8.0", "eslint-plugin-import-x": "^3.1.0", "typescript": "^5.5.4", - "typescript-eslint": "^7.17.0" + "typescript-eslint": "^8.0.0" }, "devDependencies": { "prettier": "^3.3.3" diff --git a/toolchain/package-lint/package.json b/toolchain/package-lint/package.json index 9b8676adf..92b3c4954 100644 --- a/toolchain/package-lint/package.json +++ b/toolchain/package-lint/package.json @@ -7,7 +7,7 @@ "scripts": {}, "keywords": [], "dependencies": { - "@types/node": "^20.14.12", + "@types/node": "^22.1.0", "json5": "^2.2.3" }, "author": "", diff --git a/toolchain/test-runner/package.json b/toolchain/test-runner/package.json index 3e67e55f7..ed2caaefc 100644 --- a/toolchain/test-runner/package.json +++ b/toolchain/test-runner/package.json @@ -6,7 +6,7 @@ "run-test": "wrapper.js" }, "devDependencies": { - "@types/node": "^20.14.12", + "@types/node": "^22.1.0", "typescript": "^5.5.4" } }