From ed976919f63d0255c8a7dbefc7cd9ccc5964298b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=97=8D+85CD?= <50108258+kwaa@users.noreply.github.com> Date: Tue, 1 Jul 2025 14:52:49 +0800 Subject: [PATCH] refactor(eslint): use moeru config (#170) * refactor(eslint): use moeru config * chore: disable prefer let * chore: lint code * chore: lint code * fix: lint code --- docs/scripts/update-references.ts | 1 - eslint.config.ts | 32 +-- package.json | 2 +- packages/generate-object/src/index.ts | 2 +- packages/stream-object/src/index.ts | 2 +- packages/stream-text/src/index.ts | 12 +- packages/stream-text/test/tool.test.ts | 8 +- .../src/extract-reasoning-stream.ts | 12 +- .../utils-reasoning/test/deepseek.test.ts | 2 +- packages/utils-stream/src/_sleep.ts | 2 +- .../utils-stream/src/to-async-iterator.ts | 1 - pnpm-lock.yaml | 258 +++++++++++++----- pnpm-workspace.yaml | 3 +- 13 files changed, 213 insertions(+), 124 deletions(-) diff --git a/docs/scripts/update-references.ts b/docs/scripts/update-references.ts index 31e802c..be44019 100644 --- a/docs/scripts/update-references.ts +++ b/docs/scripts/update-references.ts @@ -1,4 +1,3 @@ -/* eslint-disable @masknet/no-top-level */ import { findWorkspaceDir } from '@pnpm/find-workspace-dir' import { glob, readFile, writeFile } from 'node:fs/promises' import { resolve } from 'node:path' diff --git a/eslint.config.ts b/eslint.config.ts index a855986..74cd777 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -1,27 +1,11 @@ -import { GLOB_MARKDOWN_CODE, GLOB_TESTS } from '@antfu/eslint-config' -import { defineConfig } from '@importantimport/eslint-config' +import { defineConfig } from '@moeru/eslint-config' export default defineConfig({ + preferLet: false, typescript: { tsconfigPath: './tsconfig.json' }, -}, [{ - ignores: [ - 'docs/components/ui/**/*.tsx', - ], -}, { - rules: { - '@masknet/no-default-error': 'off', - '@masknet/no-then': 'off', - 'sonarjs/todo-tag': 'warn', - }, -}, { - files: [...GLOB_TESTS, GLOB_MARKDOWN_CODE], - rules: { - '@masknet/no-top-level': 'off', - '@masknet/unicode-specific-set': 'off', - }, -}, { - ignores: [ - 'cspell.config.yaml', - 'cspell.config.yml', - ], -}]) +}) + .append({ + ignores: [ + 'docs/components/ui/**/*.tsx', + ], + }) diff --git a/package.json b/package.json index 6d7c99f..4856d05 100644 --- a/package.json +++ b/package.json @@ -14,8 +14,8 @@ }, "devDependencies": { "@antfu/eslint-config": "^4.13.0", - "@importantimport/eslint-config": "^1.0.0-beta.2", "@importantimport/tsconfig": "^1.0.0-beta.2", + "@moeru/eslint-config": "catalog:", "@pnpm/find-workspace-dir": "^1000.1.0", "@types/eslint": "^9.6.1", "@types/node": "^22.15.18", diff --git a/packages/generate-object/src/index.ts b/packages/generate-object/src/index.ts index eea96a9..1d94b76 100644 --- a/packages/generate-object/src/index.ts +++ b/packages/generate-object/src/index.ts @@ -19,7 +19,7 @@ type GenerateObjectOutputOption = 'array' | 'object' export async function generateObject(options: GenerateObjectOptions & { output: 'array' }): Promise>>> export async function generateObject(options: GenerateObjectOptions & { output: 'object' }): Promise>> export async function generateObject(options: GenerateObjectOptions): Promise>> -// eslint-disable-next-line func-style +// eslint-disable-next-line prefer-arrow/prefer-arrow-functions export async function generateObject(options: GenerateObjectOptions & { output?: GenerateObjectOutputOption }) { const { schema: schemaValidator } = options diff --git a/packages/stream-object/src/index.ts b/packages/stream-object/src/index.ts index 9981e53..deb0a6d 100644 --- a/packages/stream-object/src/index.ts +++ b/packages/stream-object/src/index.ts @@ -52,7 +52,7 @@ export async function streamObject( options: StreamObjectExtraOptions & StreamObjectOptions ): Promise & { elementStream: undefined, partialObjectStream: ReadableStream>> }> -// eslint-disable-next-line func-style +// eslint-disable-next-line prefer-arrow/prefer-arrow-functions export async function streamObject( options: StreamObjectExtraOptions & StreamObjectOptions diff --git a/packages/stream-text/src/index.ts b/packages/stream-text/src/index.ts index c2ae204..46be50b 100644 --- a/packages/stream-text/src/index.ts +++ b/packages/stream-text/src/index.ts @@ -139,19 +139,13 @@ export const streamText = async (options: StreamTextOptions): Promise const chunkStream = new ReadableStream({ - start(controller) { - chunkCtrl = controller - }, + start: controller => chunkCtrl = controller, }) const stepStream = new ReadableStream({ - start(controller) { - stepCtrl = controller - }, + start: controller => stepCtrl = controller, }) const textStream = new ReadableStream({ - start(controller) { - textCtrl = controller - }, + start: controller => textCtrl = controller, }) // constraints diff --git a/packages/stream-text/test/tool.test.ts b/packages/stream-text/test/tool.test.ts index a73c15e..48a73d5 100644 --- a/packages/stream-text/test/tool.test.ts +++ b/packages/stream-text/test/tool.test.ts @@ -142,7 +142,7 @@ describe('@xsai/stream-text', () => { tools: [weather], }) - await expect(textStream.pipeTo(new WritableStream({ write() {} }))).resolves.toBeUndefined() + await expect(textStream.pipeTo(new WritableStream({ write: () => {} }))).resolves.toBeUndefined() expect(chunks.length).toBeGreaterThan(0) }, 20000) @@ -170,7 +170,7 @@ describe('@xsai/stream-text', () => { tools: [weather], }) - await expect(textStream.pipeTo(new WritableStream({ write() {} }))).resolves.toBeUndefined() + await expect(textStream.pipeTo(new WritableStream({ write: () => {} }))).resolves.toBeUndefined() expect(steps.length).toBeGreaterThan(0) }, 20000) @@ -198,7 +198,7 @@ describe('@xsai/stream-text', () => { tools: [weather], }) - await expect(textStream.pipeTo(new WritableStream({ write() {} }))).resolves.toBeUndefined() + await expect(textStream.pipeTo(new WritableStream({ write: () => {} }))).resolves.toBeUndefined() expect(steps.length).toBeGreaterThan(0) }, 20000) @@ -307,7 +307,7 @@ describe('@xsai/stream-text', () => { }) await expect( - textStream.pipeTo(new WritableStream({ write() {} })), + textStream.pipeTo(new WritableStream({ write: () => {} })), ).rejects.toThrow() }, 20000) diff --git a/packages/utils-reasoning/src/extract-reasoning-stream.ts b/packages/utils-reasoning/src/extract-reasoning-stream.ts index 77537a0..62a8d34 100644 --- a/packages/utils-reasoning/src/extract-reasoning-stream.ts +++ b/packages/utils-reasoning/src/extract-reasoning-stream.ts @@ -17,14 +17,10 @@ export const extractReasoningStream = (stream: ReadableStream, options: let reasoningStreamController: ReadableStreamDefaultController let textStreamController: ReadableStreamDefaultController const reasoningStream = new ReadableStream({ - start(controller) { - reasoningStreamController = controller - }, + start: controller => reasoningStreamController = controller, }) const textStream = new ReadableStream({ - start(controller) { - textStreamController = controller - }, + start: controller => textStreamController = controller, }) // state for the stream parsing @@ -56,7 +52,7 @@ export const extractReasoningStream = (stream: ReadableStream, options: stream.pipeTo( new WritableStream({ - close() { + close: () => { if (buffer.length > 0) { if (isReasoning) { reasoningStreamController?.enqueue(buffer) @@ -68,7 +64,7 @@ export const extractReasoningStream = (stream: ReadableStream, options: reasoningStreamController?.close() textStreamController?.close() }, - write(chunk) { + write: (chunk) => { buffer += chunk while (true) { diff --git a/packages/utils-reasoning/test/deepseek.test.ts b/packages/utils-reasoning/test/deepseek.test.ts index e947378..40e2d71 100644 --- a/packages/utils-reasoning/test/deepseek.test.ts +++ b/packages/utils-reasoning/test/deepseek.test.ts @@ -95,7 +95,7 @@ describe('extractReasoning', () => { }) const randomSplitTextToStream = (text: string): ReadableStream => new ReadableStream({ - start(controller) { + start: (controller) => { let index = 0 while (index < text.length) { // eslint-disable-next-line sonarjs/pseudo-random diff --git a/packages/utils-stream/src/_sleep.ts b/packages/utils-stream/src/_sleep.ts index 12da39d..8c273d2 100644 --- a/packages/utils-stream/src/_sleep.ts +++ b/packages/utils-stream/src/_sleep.ts @@ -1,4 +1,4 @@ export const sleep = async (delay: number) => delay === 0 ? Promise.resolve() - // eslint-disable-next-line @masknet/no-timer, @masknet/prefer-timer-id + // eslint-disable-next-line @masknet/prefer-timer-id : new Promise(resolve => setTimeout(resolve, delay)) diff --git a/packages/utils-stream/src/to-async-iterator.ts b/packages/utils-stream/src/to-async-iterator.ts index 532f425..ef22322 100644 --- a/packages/utils-stream/src/to-async-iterator.ts +++ b/packages/utils-stream/src/to-async-iterator.ts @@ -1,5 +1,4 @@ /** @see {@link https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream#browser_compatibility} */ -// eslint-disable-next-line func-style export async function* toAsyncIterator( stream: ReadableStream, ): AsyncGenerator { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2c9c645..cbc8da0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,40 +6,15 @@ settings: catalogs: default: - '@moeru/std': + '@moeru/eslint-config': specifier: ^0.1.0-beta.4 version: 0.1.0-beta.4 '@vitest/coverage-v8': specifier: ^3.1.3 version: 3.1.3 - type-fest: - specifier: ^4.41.0 - version: 4.41.0 vitest: specifier: ^3.1.3 version: 3.1.3 - schema: - '@valibot/to-json-schema': - specifier: ^1.0.0 - version: 1.0.0 - arktype: - specifier: ^2.1.16 - version: 2.1.16 - effect: - specifier: ^3.14.5 - version: 3.14.5 - sury: - specifier: ^10.0.0-rc.4 - version: 10.0.0-rc.4 - valibot: - specifier: ^1.0.0 - version: 1.0.0 - zod: - specifier: ^3.25.0 - version: 3.25.20 - zod-to-json-schema: - specifier: ^3.24.5 - version: 3.24.5 importers: @@ -47,13 +22,13 @@ importers: devDependencies: '@antfu/eslint-config': specifier: ^4.13.0 - version: 4.13.0(@typescript-eslint/utils@8.32.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3))(@vue/compiler-sfc@3.5.13)(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.18)(lightningcss@1.29.2)(sass-embedded@1.81.0)(terser@5.36.0)) - '@importantimport/eslint-config': - specifier: ^1.0.0-beta.2 - version: 1.0.0-beta.2(@antfu/eslint-config@4.13.0(@typescript-eslint/utils@8.32.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3))(@vue/compiler-sfc@3.5.13)(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.18)(lightningcss@1.29.2)(sass-embedded@1.81.0)(terser@5.36.0)))(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3) + version: 4.13.0(@typescript-eslint/utils@8.35.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3))(@vue/compiler-sfc@3.5.13)(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.18)(lightningcss@1.29.2)(sass-embedded@1.81.0)(terser@5.36.0)) '@importantimport/tsconfig': specifier: ^1.0.0-beta.2 version: 1.0.0-beta.2 + '@moeru/eslint-config': + specifier: 'catalog:' + version: 0.1.0-beta.4(@antfu/eslint-config@4.13.0(@typescript-eslint/utils@8.35.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3))(@vue/compiler-sfc@3.5.13)(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.18)(lightningcss@1.29.2)(sass-embedded@1.81.0)(terser@5.36.0)))(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3) '@pnpm/find-workspace-dir': specifier: ^1000.1.0 version: 1000.1.0 @@ -1154,12 +1129,6 @@ packages: cpu: [x64] os: [win32] - '@importantimport/eslint-config@1.0.0-beta.2': - resolution: {integrity: sha512-5Tn/7WsRbMbpl9utHZDvmhWc+SuRlXTNqkbML8vFEOuyNO3bfpWk87uRJOb1oGUZoUj+S941znP/kVKnIa+SSA==} - peerDependencies: - '@antfu/eslint-config': ^4.3.0 - eslint: ^9.21.0 - '@importantimport/tsconfig@1.0.0-beta.2': resolution: {integrity: sha512-18mPKqsupk3L6hsTrQEA78MVGABBePVh616h3MNl3Hw6e2tt2i/rhYiVEEZjIdBKYyXch37ATz7LsQxW8ZP69A==} @@ -1211,6 +1180,17 @@ packages: '@moeru-ai/cosine-similarity@1.0.0-beta.1': resolution: {integrity: sha512-rBBJWUBqivldEPDgj/aeG5kZ67Uz4boqkqcncf44fV3xOAhGEFI9MjDZzoSWjweP/sBqkUNA12N6Y5NgVi0NTA==} + '@moeru/eslint-config@0.1.0-beta.4': + resolution: {integrity: sha512-Gd6DEOmhB64U2+ugrpSZZlaZTGMJFes3yclyxFtUzVeyUk6R/cpX8iHDhm5MrJzLsI0uNb+QB4mc+nP9EcFHXw==} + hasBin: true + peerDependencies: + '@antfu/eslint-config': ^4.12.0 + eslint: ^9.25.1 + eslint-plugin-oxlint: ^1.3.0 + peerDependenciesMeta: + eslint-plugin-oxlint: + optional: true + '@moeru/std@0.1.0-beta.4': resolution: {integrity: sha512-L2EPYM0x83MyOP96r80VJmd2BoK/VUlyUtkv3ybCLinIbOOvyYxi4BUxLBcDSxAxoRqp5YsfPniUN+xMPuToFg==} @@ -2237,6 +2217,12 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/project-service@8.35.1': + resolution: {integrity: sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/scope-manager@8.28.0': resolution: {integrity: sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2245,6 +2231,16 @@ packages: resolution: {integrity: sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.35.1': + resolution: {integrity: sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.35.1': + resolution: {integrity: sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/type-utils@8.32.1': resolution: {integrity: sha512-mv9YpQGA8iIsl5KyUPi+FGLm7+bA4fgXaeRcFKRDRwDMu4iwrSHeDPipwueNXhdIIZltwCJv+NkxftECbIZWfA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2260,6 +2256,10 @@ packages: resolution: {integrity: sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.35.1': + resolution: {integrity: sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.28.0': resolution: {integrity: sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2272,6 +2272,12 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/typescript-estree@8.35.1': + resolution: {integrity: sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/utils@8.28.0': resolution: {integrity: sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2286,6 +2292,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/utils@8.35.1': + resolution: {integrity: sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/visitor-keys@8.28.0': resolution: {integrity: sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2294,6 +2307,10 @@ packages: resolution: {integrity: sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.35.1': + resolution: {integrity: sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/vfs@1.6.1': resolution: {integrity: sha512-JwoxboBh7Oz1v38tPbkrZ62ZXNHAk9bJ7c9x0eI5zBfBnBYGhURdbnh7Z4smN/MV48Y5OCcZb58n972UtbazsA==} peerDependencies: @@ -3188,6 +3205,9 @@ packages: eslint-flat-config-utils@2.0.1: resolution: {integrity: sha512-brf0eAgQ6JlKj3bKfOTuuI7VcCZvi8ZCD1MMTVoEvS/d38j8cByZViLFALH/36+eqB17ukmfmKq3bWzGvizejA==} + eslint-flat-config-utils@2.1.0: + resolution: {integrity: sha512-6fjOJ9tS0k28ketkUcQ+kKptB4dBZY2VijMZ9rGn8Cwnn1SH0cZBoPXT8AHBFHxmHcLFQK9zbELDinZ2Mr1rng==} + eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} @@ -3217,8 +3237,8 @@ packages: peerDependencies: eslint: '*' - eslint-plugin-de-morgan@1.2.1: - resolution: {integrity: sha512-lzh5DWqdogO6kasbGdWNHy6XOMajv4CRQnEiv/XJFpL1xxG0hxF2uxF+KAkcTzR+w85l4nWoqGbI39ZF+sk4+g==} + eslint-plugin-de-morgan@1.3.0: + resolution: {integrity: sha512-UHCQ4XyDaEeSmk7lI0O1TEcsSBkvdyY8FV4H9TN2DvBfKV45SJR/qZ/rYwzt8JSBIbMXy8S0vNBhzngnpIreJw==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: eslint: '>=8.0.0' @@ -3257,14 +3277,14 @@ packages: resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} engines: {node: '>=5.0.0'} - eslint-plugin-perfectionist@4.10.1: - resolution: {integrity: sha512-GXwFfL47RfBLZRGQdrvGZw9Ali2T2GPW8p4Gyj2fyWQ9396R/HgJMf0m9kn7D6WXRwrINfTDGLS+QYIeok9qEg==} + eslint-plugin-perfectionist@4.13.0: + resolution: {integrity: sha512-dsPwXwV7IrG26PJ+h1crQ1f5kxay/gQAU0NJnbVTQc91l5Mz9kPjyIZ7fXgie+QSgi8a+0TwGbfaJx+GIhzuoQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: eslint: '>=8.45.0' - eslint-plugin-perfectionist@4.13.0: - resolution: {integrity: sha512-dsPwXwV7IrG26PJ+h1crQ1f5kxay/gQAU0NJnbVTQc91l5Mz9kPjyIZ7fXgie+QSgi8a+0TwGbfaJx+GIhzuoQ==} + eslint-plugin-perfectionist@4.15.0: + resolution: {integrity: sha512-pC7PgoXyDnEXe14xvRUhBII8A3zRgggKqJFx2a82fjrItDs1BSI7zdZnQtM2yQvcyod6/ujmzb7ejKPx8lZTnw==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: eslint: '>=8.45.0' @@ -3274,14 +3294,23 @@ packages: peerDependencies: eslint: ^9.0.0 + eslint-plugin-prefer-arrow@1.2.3: + resolution: {integrity: sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==} + peerDependencies: + eslint: '>=2.0.0' + + eslint-plugin-prefer-let@4.0.0: + resolution: {integrity: sha512-X4ep5PMO1320HKaNC9DM5+p6XvOhwv+RcqGjhv3aiw9iAtHhiFtdIUB5l0Zya0iM22ys2BGKzrNI9Xpw/ZHooQ==} + engines: {node: '>=0.10.0'} + eslint-plugin-regexp@2.7.0: resolution: {integrity: sha512-U8oZI77SBtH8U3ulZ05iu0qEzIizyEDXd+BWHvyVxTOjGwcDcvy/kEpgFG4DYca2ByRLiVPFZ2GeH7j1pdvZTA==} engines: {node: ^18 || >=20} peerDependencies: eslint: '>=8.44.0' - eslint-plugin-sonarjs@3.0.2: - resolution: {integrity: sha512-LxjbfwI7ypENeTmGyKmDyNux3COSkMi7H/6Cal5StSLQ6edf0naP45SZR43OclaNR7WfhVTZdhOn63q3/Y6puQ==} + eslint-plugin-sonarjs@3.0.4: + resolution: {integrity: sha512-ftQcP811kRJNXapqpQXHErEoVOdTPfYPPYd7n3AExIPwv4qWKKHf4slFvXmodiOnfgy1Tl3waPZZLD7lcvJOtw==} peerDependencies: eslint: ^8.0.0 || ^9.0.0 @@ -3337,6 +3366,10 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint@9.26.0: resolution: {integrity: sha512-Hx0MOjPh6uK9oq9nVsATZKE/Wlbai7KFjfCuw9UHaguDW3x+HF0O5nIi3ud39TWgrTjTO5nHxmL3R1eANinWHQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4833,6 +4866,10 @@ packages: remark@15.0.1: resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==} + requireindex@1.2.0: + resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} + engines: {node: '>=0.10.5'} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -5040,6 +5077,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} + hasBin: true + send@1.2.0: resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} engines: {node: '>= 18'} @@ -5663,7 +5705,7 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@antfu/eslint-config@4.13.0(@typescript-eslint/utils@8.32.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3))(@vue/compiler-sfc@3.5.13)(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.18)(lightningcss@1.29.2)(sass-embedded@1.81.0)(terser@5.36.0))': + '@antfu/eslint-config@4.13.0(@typescript-eslint/utils@8.35.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3))(@vue/compiler-sfc@3.5.13)(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.18)(lightningcss@1.29.2)(sass-embedded@1.81.0)(terser@5.36.0))': dependencies: '@antfu/install-pkg': 1.1.0 '@clack/prompts': 0.10.1 @@ -5672,7 +5714,7 @@ snapshots: '@stylistic/eslint-plugin': 4.2.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3) '@typescript-eslint/eslint-plugin': 8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3) '@typescript-eslint/parser': 8.32.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3) - '@vitest/eslint-plugin': 1.1.44(@typescript-eslint/utils@8.32.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.18)(lightningcss@1.29.2)(sass-embedded@1.81.0)(terser@5.36.0)) + '@vitest/eslint-plugin': 1.1.44(@typescript-eslint/utils@8.35.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.18)(lightningcss@1.29.2)(sass-embedded@1.81.0)(terser@5.36.0)) ansis: 3.17.0 cac: 6.7.14 eslint: 9.26.0(jiti@2.4.2) @@ -5811,7 +5853,7 @@ snapshots: dependencies: '@types/eslint': 9.6.1 '@types/estree': 1.0.6 - '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/types': 8.32.1 comment-parser: 1.4.1 esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 @@ -6168,19 +6210,6 @@ snapshots: '@img/sharp-win32-x64@0.33.5': optional: true - '@importantimport/eslint-config@1.0.0-beta.2(@antfu/eslint-config@4.13.0(@typescript-eslint/utils@8.32.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3))(@vue/compiler-sfc@3.5.13)(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.18)(lightningcss@1.29.2)(sass-embedded@1.81.0)(terser@5.36.0)))(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)': - dependencies: - '@antfu/eslint-config': 4.13.0(@typescript-eslint/utils@8.32.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3))(@vue/compiler-sfc@3.5.13)(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.18)(lightningcss@1.29.2)(sass-embedded@1.81.0)(terser@5.36.0)) - '@masknet/eslint-plugin': 0.3.0(eslint@9.26.0(jiti@2.4.2)) - defu: 6.1.4 - eslint: 9.26.0(jiti@2.4.2) - eslint-plugin-de-morgan: 1.2.1(eslint@9.26.0(jiti@2.4.2)) - eslint-plugin-perfectionist: 4.10.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3) - eslint-plugin-sonarjs: 3.0.2(eslint@9.26.0(jiti@2.4.2)) - transitivePeerDependencies: - - supports-color - - typescript - '@importantimport/tsconfig@1.0.0-beta.2': {} '@isaacs/cliui@8.0.2': @@ -6272,6 +6301,22 @@ snapshots: '@moeru-ai/cosine-similarity@1.0.0-beta.1': {} + '@moeru/eslint-config@0.1.0-beta.4(@antfu/eslint-config@4.13.0(@typescript-eslint/utils@8.35.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3))(@vue/compiler-sfc@3.5.13)(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.18)(lightningcss@1.29.2)(sass-embedded@1.81.0)(terser@5.36.0)))(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)': + dependencies: + '@antfu/eslint-config': 4.13.0(@typescript-eslint/utils@8.35.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3))(@vue/compiler-sfc@3.5.13)(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.18)(lightningcss@1.29.2)(sass-embedded@1.81.0)(terser@5.36.0)) + '@masknet/eslint-plugin': 0.3.0(eslint@9.26.0(jiti@2.4.2)) + '@moeru/std': 0.1.0-beta.4 + eslint: 9.26.0(jiti@2.4.2) + eslint-flat-config-utils: 2.1.0 + eslint-plugin-de-morgan: 1.3.0(eslint@9.26.0(jiti@2.4.2)) + eslint-plugin-perfectionist: 4.15.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3) + eslint-plugin-prefer-arrow: 1.2.3(eslint@9.26.0(jiti@2.4.2)) + eslint-plugin-prefer-let: 4.0.0 + eslint-plugin-sonarjs: 3.0.4(eslint@9.26.0(jiti@2.4.2)) + transitivePeerDependencies: + - supports-color + - typescript + '@moeru/std@0.1.0-beta.4': {} '@napi-rs/wasm-runtime@0.2.9': @@ -7246,6 +7291,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/project-service@8.35.1(typescript@5.6.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.35.1(typescript@5.6.3) + '@typescript-eslint/types': 8.35.1 + debug: 4.4.0 + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/scope-manager@8.28.0': dependencies: '@typescript-eslint/types': 8.28.0 @@ -7256,6 +7310,15 @@ snapshots: '@typescript-eslint/types': 8.32.1 '@typescript-eslint/visitor-keys': 8.32.1 + '@typescript-eslint/scope-manager@8.35.1': + dependencies: + '@typescript-eslint/types': 8.35.1 + '@typescript-eslint/visitor-keys': 8.35.1 + + '@typescript-eslint/tsconfig-utils@8.35.1(typescript@5.6.3)': + dependencies: + typescript: 5.6.3 + '@typescript-eslint/type-utils@8.32.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)': dependencies: '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.6.3) @@ -7271,6 +7334,8 @@ snapshots: '@typescript-eslint/types@8.32.1': {} + '@typescript-eslint/types@8.35.1': {} + '@typescript-eslint/typescript-estree@8.28.0(typescript@5.6.3)': dependencies: '@typescript-eslint/types': 8.28.0 @@ -7299,6 +7364,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.35.1(typescript@5.6.3)': + dependencies: + '@typescript-eslint/project-service': 8.35.1(typescript@5.6.3) + '@typescript-eslint/tsconfig-utils': 8.35.1(typescript@5.6.3) + '@typescript-eslint/types': 8.35.1 + '@typescript-eslint/visitor-keys': 8.35.1 + debug: 4.4.0 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.1 + ts-api-utils: 2.1.0(typescript@5.6.3) + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@8.28.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)': dependencies: '@eslint-community/eslint-utils': 4.5.1(eslint@9.26.0(jiti@2.4.2)) @@ -7321,6 +7402,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@8.35.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.26.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.35.1 + '@typescript-eslint/types': 8.35.1 + '@typescript-eslint/typescript-estree': 8.35.1(typescript@5.6.3) + eslint: 9.26.0(jiti@2.4.2) + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@8.28.0': dependencies: '@typescript-eslint/types': 8.28.0 @@ -7331,6 +7423,11 @@ snapshots: '@typescript-eslint/types': 8.32.1 eslint-visitor-keys: 4.2.0 + '@typescript-eslint/visitor-keys@8.35.1': + dependencies: + '@typescript-eslint/types': 8.35.1 + eslint-visitor-keys: 4.2.1 + '@typescript/vfs@1.6.1(typescript@5.6.3)': dependencies: debug: 4.4.0 @@ -7415,9 +7512,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.1.44(@typescript-eslint/utils@8.32.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.18)(lightningcss@1.29.2)(sass-embedded@1.81.0)(terser@5.36.0))': + '@vitest/eslint-plugin@1.1.44(@typescript-eslint/utils@8.35.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.18)(lightningcss@1.29.2)(sass-embedded@1.81.0)(terser@5.36.0))': dependencies: - '@typescript-eslint/utils': 8.32.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3) + '@typescript-eslint/utils': 8.35.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3) eslint: 9.26.0(jiti@2.4.2) optionalDependencies: typescript: 5.6.3 @@ -8363,6 +8460,10 @@ snapshots: dependencies: pathe: 2.0.3 + eslint-flat-config-utils@2.1.0: + dependencies: + pathe: 2.0.3 + eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 @@ -8390,7 +8491,7 @@ snapshots: '@es-joy/jsdoccomment': 0.50.0 eslint: 9.26.0(jiti@2.4.2) - eslint-plugin-de-morgan@1.2.1(eslint@9.26.0(jiti@2.4.2)): + eslint-plugin-de-morgan@1.3.0(eslint@9.26.0(jiti@2.4.2)): dependencies: eslint: 9.26.0(jiti@2.4.2) @@ -8463,20 +8564,20 @@ snapshots: eslint-plugin-no-only-tests@3.3.0: {} - eslint-plugin-perfectionist@4.10.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3): + eslint-plugin-perfectionist@4.13.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3): dependencies: - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/utils': 8.28.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3) + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/utils': 8.32.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3) eslint: 9.26.0(jiti@2.4.2) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-perfectionist@4.13.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3): + eslint-plugin-perfectionist@4.15.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3): dependencies: - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/utils': 8.32.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3) + '@typescript-eslint/types': 8.35.1 + '@typescript-eslint/utils': 8.35.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.6.3) eslint: 9.26.0(jiti@2.4.2) natural-orderby: 5.0.0 transitivePeerDependencies: @@ -8493,6 +8594,14 @@ snapshots: tinyglobby: 0.2.12 yaml-eslint-parser: 1.3.0 + eslint-plugin-prefer-arrow@1.2.3(eslint@9.26.0(jiti@2.4.2)): + dependencies: + eslint: 9.26.0(jiti@2.4.2) + + eslint-plugin-prefer-let@4.0.0: + dependencies: + requireindex: 1.2.0 + eslint-plugin-regexp@2.7.0(eslint@9.26.0(jiti@2.4.2)): dependencies: '@eslint-community/eslint-utils': 4.5.1(eslint@9.26.0(jiti@2.4.2)) @@ -8504,7 +8613,7 @@ snapshots: regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-sonarjs@3.0.2(eslint@9.26.0(jiti@2.4.2)): + eslint-plugin-sonarjs@3.0.4(eslint@9.26.0(jiti@2.4.2)): dependencies: '@eslint-community/regexpp': 4.12.1 builtin-modules: 3.3.0 @@ -8512,9 +8621,10 @@ snapshots: eslint: 9.26.0(jiti@2.4.2) functional-red-black-tree: 1.0.1 jsx-ast-utils: 3.3.5 + lodash.merge: 4.6.2 minimatch: 9.0.5 scslre: 0.3.0 - semver: 7.7.1 + semver: 7.7.2 typescript: 5.6.3 eslint-plugin-toml@0.12.0(eslint@9.26.0(jiti@2.4.2)): @@ -8590,6 +8700,8 @@ snapshots: eslint-visitor-keys@4.2.0: {} + eslint-visitor-keys@4.2.1: {} + eslint@9.26.0(jiti@2.4.2): dependencies: '@eslint-community/eslint-utils': 4.5.1(eslint@9.26.0(jiti@2.4.2)) @@ -10573,6 +10685,8 @@ snapshots: transitivePeerDependencies: - supports-color + requireindex@1.2.0: {} + resolve-from@4.0.0: {} resolve-pkg-maps@1.0.0: {} @@ -10782,6 +10896,8 @@ snapshots: semver@7.7.1: {} + semver@7.7.2: {} + send@1.2.0: dependencies: debug: 4.4.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index df45c59..91039ea 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -6,7 +6,8 @@ packages: - packages-top/* catalog: - '@moeru/std': ^0.1.0-beta.4 + '@moeru/eslint-config': &std ^0.1.0-beta.4 + '@moeru/std': *std '@vitest/coverage-v8': &vitest ^3.1.3 type-fest: ^4.41.0 vitest: *vitest