diff --git a/cli/tsconfig.json b/cli/tsconfig.json index 327092157..0e72dc12f 100644 --- a/cli/tsconfig.json +++ b/cli/tsconfig.json @@ -12,7 +12,9 @@ } ], "compilerOptions": { - "outDir": "dist" + "rootDir": "./src", + "outDir": "dist", + "types": ["node"] }, "include": ["src"] } diff --git a/discojs-web/tsconfig.lib.json b/discojs-web/tsconfig.lib.json index c74c08589..c8c3aae4a 100644 --- a/discojs-web/tsconfig.lib.json +++ b/discojs-web/tsconfig.lib.json @@ -7,6 +7,7 @@ ], "compilerOptions": { "lib": ["DOM"], + "rootDir": "./src", "outDir": "dist" }, "include": ["src"], diff --git a/discojs/src/client/decentralized/peer.ts b/discojs/src/client/decentralized/peer.ts index 22667d68a..01bba5c6e 100644 --- a/discojs/src/client/decentralized/peer.ts +++ b/discojs/src/client/decentralized/peer.ts @@ -137,7 +137,7 @@ export class Peer { : FIRST_HEADER_SIZE + b.length, ); firstChunk.writeUint16BE(messageID); - firstChunk.writeUint8(0 as ChunkID, 2); + firstChunk.writeUint8(0, 2); firstChunk.writeUint8(totalChunkCount, 3); b.copy( firstChunk, @@ -147,7 +147,7 @@ export class Peer { ); return Seq.Indexed([firstChunk]).concat( - Range(1 as ChunkID, Number.POSITIVE_INFINITY) + Range(1, Number.POSITIVE_INFINITY) .zip(tail) .map(([id, raw]) => { const chunk = Buffer.alloc(HEADER_SIZE + raw.length); diff --git a/discojs/src/privacy.spec.ts b/discojs/src/privacy.spec.ts index 6629095b6..451a7ea78 100644 --- a/discojs/src/privacy.spec.ts +++ b/discojs/src/privacy.spec.ts @@ -7,7 +7,6 @@ import { addOptimalNoise, getClippingRadius, } from "./privacy.js"; -import { WeightNormHistory } from "./training/trainer.js"; import * as tf from "@tensorflow/tfjs"; import { List } from "immutable"; @@ -79,17 +78,13 @@ describe("getClippingRadius", () => { List([10]), ]); - expect( - getClippingRadius(weightNormHistory as WeightNormHistory, 5), - ).toEqual([4, 5]); + expect(getClippingRadius(weightNormHistory, 5)).toEqual([4, 5]); }); it("uses smaller window size automatically if needed", () => { const weightNormHistory = List([List([2, 4])]); // Automatically use window size of 2 instead of 10 - expect( - getClippingRadius(weightNormHistory as WeightNormHistory, 10), - ).toEqual([3]); + expect(getClippingRadius(weightNormHistory, 10)).toEqual([3]); }); }); diff --git a/discojs/src/processing/index.ts b/discojs/src/processing/index.ts index 8d6c2110f..1d2d69611 100644 --- a/discojs/src/processing/index.ts +++ b/discojs/src/processing/index.ts @@ -109,7 +109,7 @@ export function postprocess( switch (task.dataType) { case "image": { // cast as typescript doesn't reduce generic type - const index = encoded as DataFormat.ModelEncoded["image"][1]; + const index = encoded; const labels = List(task.trainingInformation.LABEL_LIST); const v = labels.get(index); @@ -118,13 +118,13 @@ export function postprocess( } case "tabular": { // cast as typescript doesn't reduce generic type - const v = encoded as DataFormat.ModelEncoded["tabular"][1]; + const v = encoded; return v as DataFormat.Inferred[D]; } case "text": { // cast as typescript doesn't reduce generic type - const token = encoded as DataFormat.ModelEncoded["text"][1]; + const token = encoded; return task.trainingInformation.tokenizer.decode([ token, diff --git a/discojs/src/serialization/weights.ts b/discojs/src/serialization/weights.ts index 7a452b5c7..52af2c8a4 100644 --- a/discojs/src/serialization/weights.ts +++ b/discojs/src/serialization/weights.ts @@ -29,7 +29,7 @@ function isSerialized(raw: unknown): raw is Serialized { export async function encode(weights: WeightsContainer): Promise { const serialized: Serialized[] = await Promise.all( weights.weights.map(async (t) => ({ - shape: t.shape as number[], + shape: t.shape, data: await t.data<"float32">(), })), ); diff --git a/discojs/src/training/disco.ts b/discojs/src/training/disco.ts index ae6a1dc64..51e7f4154 100644 --- a/discojs/src/training/disco.ts +++ b/discojs/src/training/disco.ts @@ -224,7 +224,8 @@ export class Disco extends EventEmitter<{ await this.#preprocessSplitAndBatch(dataset); // the client fetches the latest weights upon connection - // TODO unsafe cast + // TODO unsafe cast, and eslint rule is buggy + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion this.trainer.model = (await this.#client.connect()) as Model; for await (const [roundNum, round] of enumerate( diff --git a/docs/examples/tsconfig.json b/docs/examples/tsconfig.json index 53efc8087..a25439787 100644 --- a/docs/examples/tsconfig.json +++ b/docs/examples/tsconfig.json @@ -20,6 +20,7 @@ "skipLibCheck": true, "outDir": "dist", + "rootDir": ".", "types": ["node"] }, "include": ["*.ts"] diff --git a/eslint.config.js b/eslint.config.js index 33be2464f..72b6e8cf2 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -41,10 +41,22 @@ export default defineConfigWithVueTs( ignoreRestSiblings: true, }, ], - // allow biome formatting - "no-mixed-spaces-and-tabs": "off", // allow for nicer names "@typescript-eslint/no-namespace": "off", + // rule is buggy, might be necessary to disable it entirely + "@typescript-eslint/no-unnecessary-type-assertion": [ + "error", + { + typesToIgnore: ["Model", "DataType"], + }, + ], + }, + }, + { + files: ["webapp/**"], + rules: { + // Buggy rule in typescript-eslint 8.59 and at least until 8.62. Check if future versions fix it + "@typescript-eslint/no-unnecessary-type-assertion": "off", }, }, { @@ -61,7 +73,6 @@ export default defineConfigWithVueTs( files: ["webapp/cypress/**/*.ts"], }, { ignores: ["**/dist/*"] }, - { ignores: ["docs/examples/**"] }, { ignores: ["**/src/protobuf/"] }, // don't use linter for formatting diff --git a/onnx-converter/tsconfig.lib.json b/onnx-converter/tsconfig.lib.json index 9bea26418..aeebf2596 100644 --- a/onnx-converter/tsconfig.lib.json +++ b/onnx-converter/tsconfig.lib.json @@ -1,5 +1,9 @@ { "extends": "../tsconfig.base.json", - "compilerOptions": { "outDir": "dist" }, + "compilerOptions": { + "rootDir": "./src", + "outDir": "dist", + "types": ["node"] + }, "include": ["src"] } diff --git a/package.json b/package.json index 80ea099e7..c99a474f4 100644 --- a/package.json +++ b/package.json @@ -20,8 +20,8 @@ "eslint-plugin-vue": "10.8.0", "knip": "6.17.1", "prettier": "3.6.2", - "typescript": "5.9.3", - "typescript-eslint": "8.58.0", + "typescript": "6.0.3", + "typescript-eslint": "8.62.0", "vitest": "catalog:" }, "packageManager": "pnpm@11.8.0+sha512.c1f5e7c4cb241c8f174b743851d82f42b802324afc8b0f116b96adb15aa06664948dde36960a3ba1079ba5b4b29dd0140135b94b5b5f5263592249d68e555f26" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c3760ba40..77a27efe2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,13 +41,13 @@ importers: version: 22.19.15 '@vitest/eslint-plugin': specifier: 1.6.12 - version: 1.6.12(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3)(vitest@4.1.9(@types/node@22.19.15)(jsdom@29.0.1(@noble/hashes@1.8.0)(canvas@3.2.3))(vite@8.0.16(@types/node@22.19.15)(jiti@2.7.0)(yaml@2.9.0))) + version: 1.6.12(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)(vitest@4.1.9(@types/node@22.19.15)(jsdom@29.0.1(@noble/hashes@1.8.0)(canvas@3.2.3))(vite@8.0.16(@types/node@22.19.15)(jiti@2.7.0)(yaml@2.9.0))) '@vue/eslint-config-prettier': specifier: 10.2.0 version: 10.2.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(prettier@3.6.2) '@vue/eslint-config-typescript': specifier: 14.7.0 - version: 14.7.0(eslint-plugin-vue@10.8.0(@typescript-eslint/parser@8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(vue-eslint-parser@10.4.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3) + version: 14.7.0(eslint-plugin-vue@10.8.0(@typescript-eslint/parser@8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(vue-eslint-parser@10.4.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) eslint: specifier: 10.0.3 version: 10.0.3(jiti@2.7.0)(supports-color@8.1.1) @@ -56,7 +56,7 @@ importers: version: 6.2.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1)) eslint-plugin-vue: specifier: 10.8.0 - version: 10.8.0(@typescript-eslint/parser@8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(vue-eslint-parser@10.4.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))) + version: 10.8.0(@typescript-eslint/parser@8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(vue-eslint-parser@10.4.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))) knip: specifier: 6.17.1 version: 6.17.1 @@ -64,11 +64,11 @@ importers: specifier: 3.6.2 version: 3.6.2 typescript: - specifier: 5.9.3 - version: 5.9.3 + specifier: 6.0.3 + version: 6.0.3 typescript-eslint: - specifier: 8.58.0 - version: 8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3) + specifier: 8.62.0 + version: 8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) vitest: specifier: 'catalog:' version: 4.1.9(@types/node@22.19.15)(jsdom@29.0.1(@noble/hashes@1.8.0)(canvas@3.2.3))(vite@8.0.16(@types/node@22.19.15)(jiti@2.7.0)(yaml@2.9.0)) @@ -160,7 +160,7 @@ importers: version: 3.1.14 ts-node: specifier: 10.9.2 - version: 10.9.2(@types/node@22.19.15)(typescript@5.9.3) + version: 10.9.2(@types/node@22.19.15)(typescript@6.0.3) vitest: specifier: 'catalog:' version: 4.1.9(@types/node@22.19.15)(jsdom@29.0.1(@noble/hashes@1.8.0)(canvas@3.2.3))(vite@8.0.16(@types/node@22.19.15)(jiti@2.7.0)(yaml@2.9.0)) @@ -203,7 +203,7 @@ importers: version: 3.0.3 ts-node: specifier: 10.9.2 - version: 10.9.2(@types/node@22.19.15)(typescript@5.9.3) + version: 10.9.2(@types/node@22.19.15)(typescript@6.0.3) vitest: specifier: 'catalog:' version: 4.1.9(@types/node@22.19.15)(jsdom@29.0.1(@noble/hashes@1.8.0)(canvas@3.2.3))(vite@8.0.16(@types/node@22.19.15)(jiti@2.7.0)(yaml@2.9.0)) @@ -342,7 +342,7 @@ importers: version: 3.1.14 ts-node: specifier: 10.9.2 - version: 10.9.2(@types/node@22.19.15)(typescript@5.9.3) + version: 10.9.2(@types/node@22.19.15)(typescript@6.0.3) vitest: specifier: 'catalog:' version: 4.1.9(@types/node@22.19.15)(jsdom@29.0.1(@noble/hashes@1.8.0)(canvas@3.2.3))(vite@8.0.16(@types/node@22.19.15)(jiti@2.7.0)(yaml@2.9.0)) @@ -1673,16 +1673,16 @@ packages: '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - '@typescript-eslint/eslint-plugin@8.58.0': - resolution: {integrity: sha512-RLkVSiNuUP1C2ROIWfqX+YcUfLaSnxGE/8M+Y57lopVwg9VTYYfhuz15Yf1IzCKgZj6/rIbYTmJCUSqr76r0Wg==} + '@typescript-eslint/eslint-plugin@8.62.0': + resolution: {integrity: sha512-o+mpz7EYiMzXoySXiKmzlabIvTVqUuK5yLrAedRPRDA0IpPFMUV1IXt6OqljIxX/kumN6EjUYp41Hqelh6p/Dw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.58.0 + '@typescript-eslint/parser': ^8.62.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.58.0': - resolution: {integrity: sha512-rLoGZIf9afaRBYsPUMtvkDWykwXwUPL60HebR4JgTI8mxfFe2cQTu3AGitANp4b9B2QlVru6WzjgB2IzJKiCSA==} + '@typescript-eslint/parser@8.62.0': + resolution: {integrity: sha512-dzHeT2gySzZtLDsuqxU9AkYgIsQoHAHtRBpOqM+Ofzx1Bwrd2RcCjQJ+6iQbsHOIR6NS33bF2W1k3blN1zLDrA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -1694,18 +1694,34 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/project-service@8.62.0': + resolution: {integrity: sha512-wexnCqiTg7BOGtbLDftYpRWlmLq4xfoMd7BKFR6Y75sZS3QmRKLdN3yWLhmIYgqMmP/OXWpj3H8odkb5nGURCQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/scope-manager@8.58.0': resolution: {integrity: sha512-W1Lur1oF50FxSnNdGp3Vs6P+yBRSmZiw4IIjEeYxd8UQJwhUF0gDgDD/W/Tgmh73mxgEU3qX0Bzdl/NGuSPEpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.62.0': + resolution: {integrity: sha512-1lX38kNxXIRb8mEc3lbq5mdHq1Pf2+U0nFU65KfT18mtPxxl0fvjuEE92mHuXPuCtElJhOrddOpyMlM3Z0umEA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/tsconfig-utils@8.58.0': resolution: {integrity: sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.58.0': - resolution: {integrity: sha512-aGsCQImkDIqMyx1u4PrVlbi/krmDsQUs4zAcCV6M7yPcPev+RqVlndsJy9kJ8TLihW9TZ0kbDAzctpLn5o+lOg==} + '@typescript-eslint/tsconfig-utils@8.62.0': + resolution: {integrity: sha512-y2GAdB6ykaXUvuspbYnizQc4oDDz0Tz/Yc7iWrXf9mx8vm/L/0vLHCe0tS2boG96Zy+DivnVDQ9ZUEWoHqqx1g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/type-utils@8.62.0': + resolution: {integrity: sha512-+g5O3j0w2ldzC86Pv6fvbO/xhAonbJFIdf/MKQ1d30gndlsVzUOE83ldfSE15Qrl9fhFjK6AovHs5Wpp6vx86w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -1715,12 +1731,22 @@ packages: resolution: {integrity: sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.62.0': + resolution: {integrity: sha512-KvAclkktORPvM54TgLgA4z9HIV1M8zOgw9ZVNXl9f/8dLYfXYX1wkMXP7qmabpijQRV5bHJLOmoyGQbLMaUYeg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.58.0': resolution: {integrity: sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/typescript-estree@8.62.0': + resolution: {integrity: sha512-+hVbNxtW64pIcZWDPGbyaKF7vp2IBTVY5ma1blwwksrjdsbdqqEKvJWMGbBofei4F6Dovx1M0RJgoFeNu2279A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/utils@8.58.0': resolution: {integrity: sha512-RfeSqcFeHMHlAWzt4TBjWOAtoW9lnsAGiP3GbaX9uVgTYYrMbVnGONEfUCiSss+xMHFl+eHZiipmA8WkQ7FuNA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1728,10 +1754,21 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/utils@8.62.0': + resolution: {integrity: sha512-82r66fi9zYwZ+mTq3vKgwjbZ1PVk/DJzrXFLpG6RnBbdvH8TEGVHIs9H4d2drhkOzf0syZuD/OZvvlu6GDbP4g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/visitor-keys@8.58.0': resolution: {integrity: sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.62.0': + resolution: {integrity: sha512-CY3uyFSRbcQv3nnSv8S0+lDftMVz6P963PoRlxrV7ew/Md564g9ut60PYzdLM5qW4jFn93GBF+Soi90ISAN+GQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vitejs/plugin-vue@6.0.5': resolution: {integrity: sha512-bL3AxKuQySfk1iGcBsQnoRVexTPJq0Z/ixFVM8OhVJAP6ZXXXLtM7NFKWhLl30Kg7uTBqIaPXbh+nuQCuBDedg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4305,8 +4342,8 @@ packages: resolution: {integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==} engines: {node: '>= 18'} - typescript-eslint@8.58.0: - resolution: {integrity: sha512-e2TQzKfaI85fO+F3QywtX+tCTsu/D3WW5LVU6nz8hTFKFZ8yBJ6mSYRpXqdR3mFjPWmO0eWsTa5f+UpAOe/FMA==} + typescript-eslint@8.62.0: + resolution: {integrity: sha512-8QxXi+ZACKX0kaqO4gY8kn0RSD9gFfaHDWwjqtEN48aWCBkX4MJaufWN+c3BzlrXLOxfywDL8CaoqUwcRq4j4Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -5761,40 +5798,49 @@ snapshots: dependencies: '@types/node': 22.19.15 - '@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.62.0(@typescript-eslint/parser@8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.58.0 - '@typescript-eslint/type-utils': 8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.58.0 + '@typescript-eslint/parser': 8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.62.0 + '@typescript-eslint/type-utils': 8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + '@typescript-eslint/utils': 8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.62.0 eslint: 10.0.3(jiti@2.7.0)(supports-color@8.1.1) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)': dependencies: - '@typescript-eslint/scope-manager': 8.58.0 - '@typescript-eslint/types': 8.58.0 - '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.58.0 + '@typescript-eslint/scope-manager': 8.62.0 + '@typescript-eslint/types': 8.62.0 + '@typescript-eslint/typescript-estree': 8.62.0(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.62.0 debug: 4.4.3(supports-color@8.1.1) eslint: 10.0.3(jiti@2.7.0)(supports-color@8.1.1) - typescript: 5.9.3 + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.58.0(typescript@5.9.3)': + '@typescript-eslint/project-service@8.58.0(supports-color@8.1.1)(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@6.0.3) '@typescript-eslint/types': 8.58.0 debug: 4.4.3(supports-color@8.1.1) - typescript: 5.9.3 + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.62.0(typescript@6.0.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.62.0(typescript@6.0.3) + '@typescript-eslint/types': 8.62.0 + debug: 4.4.3(supports-color@8.1.1) + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -5803,47 +5849,84 @@ snapshots: '@typescript-eslint/types': 8.58.0 '@typescript-eslint/visitor-keys': 8.58.0 - '@typescript-eslint/tsconfig-utils@8.58.0(typescript@5.9.3)': + '@typescript-eslint/scope-manager@8.62.0': dependencies: - typescript: 5.9.3 + '@typescript-eslint/types': 8.62.0 + '@typescript-eslint/visitor-keys': 8.62.0 - '@typescript-eslint/type-utils@8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.58.0(typescript@6.0.3)': dependencies: - '@typescript-eslint/types': 8.58.0 - '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3) + typescript: 6.0.3 + + '@typescript-eslint/tsconfig-utils@8.62.0(typescript@6.0.3)': + dependencies: + typescript: 6.0.3 + + '@typescript-eslint/type-utils@8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)': + dependencies: + '@typescript-eslint/types': 8.62.0 + '@typescript-eslint/typescript-estree': 8.62.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) debug: 4.4.3(supports-color@8.1.1) eslint: 10.0.3(jiti@2.7.0)(supports-color@8.1.1) - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color '@typescript-eslint/types@8.58.0': {} - '@typescript-eslint/typescript-estree@8.58.0(typescript@5.9.3)': + '@typescript-eslint/types@8.62.0': {} + + '@typescript-eslint/typescript-estree@8.58.0(supports-color@8.1.1)(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.58.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@5.9.3) + '@typescript-eslint/project-service': 8.58.0(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@6.0.3) '@typescript-eslint/types': 8.58.0 '@typescript-eslint/visitor-keys': 8.58.0 debug: 4.4.3(supports-color@8.1.1) minimatch: 10.2.5 semver: 7.7.3 tinyglobby: 0.2.17 - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@8.62.0(typescript@6.0.3)': + dependencies: + '@typescript-eslint/project-service': 8.62.0(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.62.0(typescript@6.0.3) + '@typescript-eslint/types': 8.62.0 + '@typescript-eslint/visitor-keys': 8.62.0 + debug: 4.4.3(supports-color@8.1.1) + minimatch: 10.2.5 + semver: 7.7.3 + tinyglobby: 0.2.17 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1)) '@typescript-eslint/scope-manager': 8.58.0 '@typescript-eslint/types': 8.58.0 - '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.58.0(supports-color@8.1.1)(typescript@6.0.3) eslint: 10.0.3(jiti@2.7.0)(supports-color@8.1.1) - typescript: 5.9.3 + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1)) + '@typescript-eslint/scope-manager': 8.62.0 + '@typescript-eslint/types': 8.62.0 + '@typescript-eslint/typescript-estree': 8.62.0(typescript@6.0.3) + eslint: 10.0.3(jiti@2.7.0)(supports-color@8.1.1) + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -5852,19 +5935,24 @@ snapshots: '@typescript-eslint/types': 8.58.0 eslint-visitor-keys: 5.0.1 + '@typescript-eslint/visitor-keys@8.62.0': + dependencies: + '@typescript-eslint/types': 8.62.0 + eslint-visitor-keys: 5.0.1 + '@vitejs/plugin-vue@6.0.5(vite@8.0.16(@types/node@22.19.15)(jiti@2.7.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.2 vite: 8.0.16(@types/node@22.19.15)(jiti@2.7.0)(yaml@2.9.0) vue: 3.5.34(typescript@5.9.3) - '@vitest/eslint-plugin@1.6.12(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3)(vitest@4.1.9(@types/node@22.19.15)(jsdom@29.0.1(@noble/hashes@1.8.0)(canvas@3.2.3))(vite@8.0.16(@types/node@22.19.15)(jiti@2.7.0)(yaml@2.9.0)))': + '@vitest/eslint-plugin@1.6.12(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)(vitest@4.1.9(@types/node@22.19.15)(jsdom@29.0.1(@noble/hashes@1.8.0)(canvas@3.2.3))(vite@8.0.16(@types/node@22.19.15)(jiti@2.7.0)(yaml@2.9.0)))': dependencies: '@typescript-eslint/scope-manager': 8.58.0 - '@typescript-eslint/utils': 8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) eslint: 10.0.3(jiti@2.7.0)(supports-color@8.1.1) optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 vitest: 4.1.9(@types/node@22.19.15)(jsdom@29.0.1(@noble/hashes@1.8.0)(canvas@3.2.3))(vite@8.0.16(@types/node@22.19.15)(jiti@2.7.0)(yaml@2.9.0)) transitivePeerDependencies: - supports-color @@ -6032,16 +6120,16 @@ snapshots: transitivePeerDependencies: - '@types/eslint' - '@vue/eslint-config-typescript@14.7.0(eslint-plugin-vue@10.8.0(@typescript-eslint/parser@8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(vue-eslint-parser@10.4.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3)': + '@vue/eslint-config-typescript@14.7.0(eslint-plugin-vue@10.8.0(@typescript-eslint/parser@8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(vue-eslint-parser@10.4.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)': dependencies: - '@typescript-eslint/utils': 8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) eslint: 10.0.3(jiti@2.7.0)(supports-color@8.1.1) - eslint-plugin-vue: 10.8.0(@typescript-eslint/parser@8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(vue-eslint-parser@10.4.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))) + eslint-plugin-vue: 10.8.0(@typescript-eslint/parser@8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(vue-eslint-parser@10.4.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))) fast-glob: 3.3.3 - typescript-eslint: 8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3) + typescript-eslint: 8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) vue-eslint-parser: 10.4.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1)) optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -6885,7 +6973,7 @@ snapshots: optionalDependencies: eslint-config-prettier: 10.1.8(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1)) - eslint-plugin-vue@10.8.0(@typescript-eslint/parser@8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(vue-eslint-parser@10.4.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))): + eslint-plugin-vue@10.8.0(@typescript-eslint/parser@8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(vue-eslint-parser@10.4.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1)) eslint: 10.0.3(jiti@2.7.0)(supports-color@8.1.1) @@ -6896,7 +6984,7 @@ snapshots: vue-eslint-parser: 10.4.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1)) xml-name-validator: 4.0.0 optionalDependencies: - '@typescript-eslint/parser': 8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) eslint-scope@9.1.2: dependencies: @@ -8598,9 +8686,9 @@ snapshots: tree-kill@1.2.2: {} - ts-api-utils@2.5.0(typescript@5.9.3): + ts-api-utils@2.5.0(typescript@6.0.3): dependencies: - typescript: 5.9.3 + typescript: 6.0.3 ts-command-line-args@2.5.1: dependencies: @@ -8609,7 +8697,7 @@ snapshots: command-line-usage: 6.1.3 string-format: 2.0.0 - ts-node@10.9.2(@types/node@22.19.15)(typescript@5.9.3): + ts-node@10.9.2(@types/node@22.19.15)(typescript@6.0.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 @@ -8623,7 +8711,7 @@ snapshots: create-require: 1.1.1 diff: 4.0.4 make-error: 1.3.6 - typescript: 5.9.3 + typescript: 6.0.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 @@ -8653,14 +8741,14 @@ snapshots: media-typer: 1.1.0 mime-types: 3.0.2 - typescript-eslint@8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3): + typescript-eslint@8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.62.0(@typescript-eslint/parser@8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + '@typescript-eslint/parser': 8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.62.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.62.0(eslint@10.0.3(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) eslint: 10.0.3(jiti@2.7.0)(supports-color@8.1.1) - typescript: 5.9.3 + typescript: 6.0.3 transitivePeerDependencies: - supports-color