From 33904d783edcd023c2d65afcef7ca85f0589e120 Mon Sep 17 00:00:00 2001 From: wuls Date: Tue, 19 Nov 2024 14:09:26 +0800 Subject: [PATCH 01/19] feat: let eslint-plugin-qwink support Eslint 9 and 8 simultaneously --- packages/eslint-plugin-qwik/package.json | 10 +++--- packages/eslint-plugin-qwik/qwik.unit.ts | 32 ++++++++++--------- .../eslint-plugin-qwik/tests/tsconfig.json | 6 ++-- .../invalid-capture-class.tsx | 2 +- .../invalid-capture-function-event.tsx | 2 +- .../invalid-capture-function.tsx | 4 +-- .../invalid-capture-symbol.tsx | 2 +- .../valid-lexical-scope/invalid-mutable.tsx | 2 +- .../invalid-use-method-factory.tsx | 2 +- .../invalid-use-method-inline.tsx | 4 +-- .../valid-capture-jsxoutput.tsx | 2 +- .../valid-lexical-scope/valid-constant.tsx | 2 +- .../valid-no-serialize.tsx | 2 +- .../valid-use-method-factory.tsx | 2 +- .../valid-use-task-getter.tsx | 2 +- .../valid-lexical-scope/valid-use-task.tsx | 2 +- 16 files changed, 40 insertions(+), 38 deletions(-) diff --git a/packages/eslint-plugin-qwik/package.json b/packages/eslint-plugin-qwik/package.json index 263fe1a99f9..a253f9f2e6a 100644 --- a/packages/eslint-plugin-qwik/package.json +++ b/packages/eslint-plugin-qwik/package.json @@ -5,15 +5,15 @@ "author": "Builder Team", "bugs": "https://github.com/QwikDev/qwik/issues", "dependencies": { - "jsx-ast-utils": "^3.3.5", - "@typescript-eslint/utils": "^8.12.2" + "@typescript-eslint/utils": "^8.12.2", + "jsx-ast-utils": "^3.3.5" }, "devDependencies": { "@builder.io/qwik": "workspace:^", "@builder.io/qwik-city": "workspace:^", - "@types/eslint": "8.56.10", + "@types/eslint": "9.6.1", "@types/estree": "1.0.5", - "@typescript-eslint/rule-tester": "7.8.0", + "@typescript-eslint/rule-tester": "8.14.0", "redent": "4.0.0" }, "engines": { @@ -32,7 +32,7 @@ "license": "MIT", "main": "dist/index.js", "peerDependencies": { - "eslint": "^8.57.0" + "eslint": "9.15.0" }, "repository": { "type": "git", diff --git a/packages/eslint-plugin-qwik/qwik.unit.ts b/packages/eslint-plugin-qwik/qwik.unit.ts index c411512174a..d2609dc6411 100644 --- a/packages/eslint-plugin-qwik/qwik.unit.ts +++ b/packages/eslint-plugin-qwik/qwik.unit.ts @@ -1,11 +1,11 @@ import * as vitest from 'vitest'; // @ts-ignore -import { RuleTester } from '@typescript-eslint/rule-tester'; - +import { RuleTester, type RuleTesterConfig } from '@typescript-eslint/rule-tester'; import { fileURLToPath } from 'node:url'; import { rules } from './index'; import { readdir, readFile, stat } from 'node:fs/promises'; import { join, dirname } from 'path'; +// import {plugin, parser} from 'typescript-eslint' // https://typescript-eslint.io/packages/rule-tester/#vitest RuleTester.afterAll = vitest.afterAll; @@ -14,22 +14,24 @@ RuleTester.itOnly = vitest.it.only; RuleTester.describe = vitest.describe; const testConfig = { - parser: '@typescript-eslint/parser', - env: { - es6: true, - }, - parserOptions: { - tsconfigRootDir: fileURLToPath(new URL('.', import.meta.url)), - project: ['./tests/tsconfig.json'], - ecmaFeatures: { - jsx: true, + languageOptions: { + parserOptions: { + projectService: { + allowDefaultProject: ['*.ts*'], + }, + sourceType: 'module', + ecmaFeatures: { + jsx: true, + }, + + ecmaVersion: 2024, + project: ['./tests/tsconfig.json'], + tsconfigRootDir: fileURLToPath(new URL('.', import.meta.url)), }, - ecmaVersion: 2020, - sourceType: 'module', }, -}; +} as RuleTesterConfig; -const ruleTester = new RuleTester(testConfig as any); +const ruleTester = new RuleTester(testConfig); interface TestCase { name: string; filename: string; diff --git a/packages/eslint-plugin-qwik/tests/tsconfig.json b/packages/eslint-plugin-qwik/tests/tsconfig.json index 8982e2d060b..2198df838b3 100644 --- a/packages/eslint-plugin-qwik/tests/tsconfig.json +++ b/packages/eslint-plugin-qwik/tests/tsconfig.json @@ -1,9 +1,9 @@ { "compilerOptions": { "incremental": true, - "target": "ES2020", - "module": "ES2020", - "lib": ["es2020", "DOM"], + "target": "ESNext", + "module": "ESNext", + "lib": ["ESNext", "DOM"], "resolveJsonModule": true, "jsx": "react-jsx", "jsxImportSource": "@builder.io/qwik", diff --git a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-class.tsx b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-class.tsx index 6f67d31fe43..5d5af6e8a7f 100644 --- a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-class.tsx +++ b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-class.tsx @@ -5,7 +5,7 @@ export const HelloWorld = component$(() => { class Stuff {} const stuff = new Stuff(); useTask$(() => { - // eslint-disable-next-line no-console + /* eslint no-console: [, { allow: ["log"] }] */ console.log(stuff); }); return
; diff --git a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-function-event.tsx b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-function-event.tsx index 340be012372..1be3e26ab2d 100644 --- a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-function-event.tsx +++ b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-function-event.tsx @@ -1,7 +1,7 @@ // Expect error: { "messageId": "invalidJsxDollar" } import { component$, useTask$ } from '@builder.io/qwik'; export const HelloWorld = component$(() => { - // eslint-disable-next-line no-console + /* eslint no-console: [, { allow: ["log"] }] */ const click = () => console.log(); return ; }); diff --git a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-function.tsx b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-function.tsx index 0e9b23bd7ad..5571d9509d8 100644 --- a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-function.tsx +++ b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-function.tsx @@ -6,14 +6,14 @@ export const HelloWorld = component$(() => { return 'string'; } else { return () => { - // eslint-disable-next-line no-console + /* eslint no-console: [, { allow: ["log"] }] */ console.log(); }; } } const a = getValue(); useTask$(() => { - // eslint-disable-next-line no-console + /* eslint no-console: [, { allow: ["log"] }] */ console.log(a); }); return
; diff --git a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-symbol.tsx b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-symbol.tsx index 77701b1afc9..f4399b57c05 100644 --- a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-symbol.tsx +++ b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-symbol.tsx @@ -4,7 +4,7 @@ import { component$, useTask$ } from '@builder.io/qwik'; export const HelloWorld = component$(() => { const a = Symbol(); useTask$(() => { - // eslint-disable-next-line no-console + /* eslint no-console: [, { allow: ["log"] }] */ console.log(a); }); return
; diff --git a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-mutable.tsx b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-mutable.tsx index 9d0ec62670b..ab19d294c47 100644 --- a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-mutable.tsx +++ b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-mutable.tsx @@ -6,7 +6,7 @@ export const HelloWorld = component$(() => { const divRef = useSignal<{ offsetLeft: number }>(); const handleMouseDown = $((e: MouseEvent) => { - // eslint-disable-next-line no-console + /* eslint no-console: [, { allow: ["log"] }] */ console.log('working'); startX = e.pageX - divRef.value!.offsetLeft; }); diff --git a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-use-method-factory.tsx b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-use-method-factory.tsx index be80bb381a9..d81fbeceb12 100644 --- a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-use-method-factory.tsx +++ b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-use-method-factory.tsx @@ -7,7 +7,7 @@ export const HelloWorld = component$(() => { }; const useMethod = getMethod(); useTask$(() => { - // eslint-disable-next-line no-console + /* eslint no-console: [, { allow: ["log"] }] */ console.log(useMethod); }); return
; diff --git a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-use-method-inline.tsx b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-use-method-inline.tsx index 549e3bcc8d8..38f7a7015b1 100644 --- a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-use-method-inline.tsx +++ b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-use-method-inline.tsx @@ -3,11 +3,11 @@ import { component$, useTask$ } from '@builder.io/qwik'; export const HelloWorld = component$(() => { function useMethod() { - // eslint-disable-next-line no-console + /* eslint no-console: [, { allow: ["log"] }] */ console.log('stuff'); } useTask$(() => { - // eslint-disable-next-line no-console + /* eslint no-console: [, { allow: ["log"] }] */ console.log(useMethod); }); return
; diff --git a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-capture-jsxoutput.tsx b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-capture-jsxoutput.tsx index f7bccc4c7f0..6fa20dbd74b 100644 --- a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-capture-jsxoutput.tsx +++ b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-capture-jsxoutput.tsx @@ -9,7 +9,7 @@ export default component$(() => { state.foo =
Foo
; useTask$(() => { - // eslint-disable-next-line no-console + /* eslint no-console: [, { allow: ["log"] }] */ console.log(state.foo); }); return <>; diff --git a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-constant.tsx b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-constant.tsx index b0a1d65f975..d582d61e0fc 100644 --- a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-constant.tsx +++ b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-constant.tsx @@ -7,7 +7,7 @@ export const HelloWorld = component$(() => { return (
{ - // eslint-disable-next-line no-console + /* eslint no-console: [, { allow: ["log"] }] */ console.log(a); }} >
diff --git a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-no-serialize.tsx b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-no-serialize.tsx index e595fe1d800..61f5d8f5483 100644 --- a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-no-serialize.tsx +++ b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-no-serialize.tsx @@ -10,7 +10,7 @@ export function getFn(): NoSerialize<() => void> { export const HelloWorld = component$(() => { const state: Value = { value: 12, fn: getFn() }; useTask$(() => { - // eslint-disable-next-line no-console + /* eslint no-console: [, { allow: ["log"] }] */ console.log(state.value); }); return
; diff --git a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-use-method-factory.tsx b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-use-method-factory.tsx index c01a5ec4957..9e13c458bbd 100644 --- a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-use-method-factory.tsx +++ b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-use-method-factory.tsx @@ -19,7 +19,7 @@ export const HelloWorld = component$(() => { }, }; useTask$(() => { - // eslint-disable-next-line no-console + /* eslint no-console: [, { allow: ["log"] }] */ console.log(useMethod, obj); }); return
; diff --git a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-use-task-getter.tsx b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-use-task-getter.tsx index f1cff2f4413..8407bd36f3c 100644 --- a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-use-task-getter.tsx +++ b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-use-task-getter.tsx @@ -5,7 +5,7 @@ export const HelloWorld = component$(() => { } const a = getValue(); useTask$(() => { - // eslint-disable-next-line no-console + /* eslint no-console: [, { allow: ["log"] }] */ console.log(a); }); return
; diff --git a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-use-task.tsx b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-use-task.tsx index 1449e707e7b..ff7aa58e94d 100644 --- a/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-use-task.tsx +++ b/packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-use-task.tsx @@ -6,7 +6,7 @@ export const HelloWorld = component$(() => { }; const useMethod = getMethod(); useTask$(() => { - // eslint-disable-next-line no-console + /* eslint no-console: [, { allow: ["log"] }] */ console.log(useMethod); }); return
; From 93f850eb05662ccf202ff278a03647efbd1c0042 Mon Sep 17 00:00:00 2001 From: wuls Date: Tue, 19 Nov 2024 14:10:15 +0800 Subject: [PATCH 02/19] feat: let eslint-plugin-qwink support Eslint 9 and 8 simultaneously --- .changeset/breezy-toes-help.md | 5 + pnpm-lock.yaml | 164 +++++++++++++++++++-------------- 2 files changed, 102 insertions(+), 67 deletions(-) create mode 100644 .changeset/breezy-toes-help.md diff --git a/.changeset/breezy-toes-help.md b/.changeset/breezy-toes-help.md new file mode 100644 index 00000000000..8c456168014 --- /dev/null +++ b/.changeset/breezy-toes-help.md @@ -0,0 +1,5 @@ +--- +'eslint-plugin-qwik': major +--- + +let eslint-plugin-qwink support Eslint 9 and 8 simultaneously diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f4c828f5ec1..00e6c503722 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -438,14 +438,14 @@ importers: specifier: workspace:^ version: link:../qwik-city '@types/eslint': - specifier: 8.56.10 - version: 8.56.10 + specifier: 9.6.1 + version: 9.6.1 '@types/estree': specifier: 1.0.5 version: 1.0.5 '@typescript-eslint/rule-tester': - specifier: 7.8.0 - version: 7.8.0(@eslint/eslintrc@3.1.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: 8.14.0 + version: 8.14.0(eslint@8.57.0)(typescript@5.4.5) redent: specifier: 4.0.0 version: 4.0.0 @@ -2419,67 +2419,79 @@ packages: resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-arm@1.0.5': resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-s390x@1.0.4': resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-x64@1.0.4': resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linuxmusl-arm64@1.0.4': resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.0.4': resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-linux-arm64@0.33.5': resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-linux-arm@0.33.5': resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-linux-s390x@0.33.5': resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-linux-x64@0.33.5': resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-linuxmusl-arm64@0.33.5': resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-linuxmusl-x64@0.33.5': resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-wasm32@0.33.5': resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} @@ -3049,30 +3061,35 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm64-glibc@2.4.1': resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm64-musl@2.4.1': resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [musl] '@parcel/watcher-linux-x64-glibc@2.4.1': resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-x64-musl@2.4.1': resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [musl] '@parcel/watcher-wasm@2.4.0': resolution: {integrity: sha512-MNgQ4WCbBybqQ97KwR/hqJGYTg3+s8qHpgIyFWB2qJOBvoJWbXuJGmm4ZkPLq2bMaANqCZqrXwmKYagZTkMKZA==} @@ -3177,46 +3194,55 @@ packages: resolution: {integrity: sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.19.0': resolution: {integrity: sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.19.0': resolution: {integrity: sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.19.0': resolution: {integrity: sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-powerpc64le-gnu@4.19.0': resolution: {integrity: sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.19.0': resolution: {integrity: sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-s390x-gnu@4.19.0': resolution: {integrity: sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.19.0': resolution: {integrity: sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.19.0': resolution: {integrity: sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.19.0': resolution: {integrity: sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==} @@ -3391,6 +3417,9 @@ packages: '@types/eslint@8.56.10': resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -3571,25 +3600,24 @@ packages: typescript: optional: true - '@typescript-eslint/rule-tester@7.8.0': - resolution: {integrity: sha512-f1wXWeZx8XJB/z9Oyjx0ZLmhvcFelSJ0CVvOurCkrISOZhre+imIj5FQQz1rBy/Ips0dCbVl5G4MWTuzlzj5QQ==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/rule-tester@8.14.0': + resolution: {integrity: sha512-q5Gi0CMFLojXZMvdWTIjOcBtV3qUg2xtUJocBxkd6PZ5YfHw9bd/Q+P5vtBu1Mrjs8OhId5WpOaMqjbUXLLBYA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@eslint/eslintrc': '>=2' - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 '@typescript-eslint/scope-manager@7.16.1': resolution: {integrity: sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@7.8.0': - resolution: {integrity: sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.12.2': resolution: {integrity: sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.14.0': + resolution: {integrity: sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/type-utils@7.16.1': resolution: {integrity: sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==} engines: {node: ^18.18.0 || >=20.0.0} @@ -3608,14 +3636,14 @@ packages: resolution: {integrity: sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@7.8.0': - resolution: {integrity: sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.12.2': resolution: {integrity: sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.14.0': + resolution: {integrity: sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@5.62.0': resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3634,17 +3662,17 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@7.8.0': - resolution: {integrity: sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/typescript-estree@8.12.2': + resolution: {integrity: sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/typescript-estree@8.12.2': - resolution: {integrity: sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==} + '@typescript-eslint/typescript-estree@8.14.0': + resolution: {integrity: sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -3658,18 +3686,18 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@7.8.0': - resolution: {integrity: sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - '@typescript-eslint/utils@8.12.2': resolution: {integrity: sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 + '@typescript-eslint/utils@8.14.0': + resolution: {integrity: sha512-OGqj6uB8THhrHj0Fk27DcHPojW7zKwKkPmHXHvQ58pLYp4hy8CSUdTKykKeh+5vFqTTVmjz0zCOOPKRovdsgHA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3678,14 +3706,14 @@ packages: resolution: {integrity: sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@7.8.0': - resolution: {integrity: sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.12.2': resolution: {integrity: sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.14.0': + resolution: {integrity: sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/analyze-trace@0.10.1': resolution: {integrity: sha512-RnlSOPh14QbopGCApgkSx5UBgGda5MX1cHqp2fsqfiDyCwGL/m1jaeB9fzu7didVS81LQqGZZuxFBcg8YU8EVw==} hasBin: true @@ -12543,6 +12571,11 @@ snapshots: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + '@types/estree-jsx@1.0.5': dependencies: '@types/estree': 1.0.5 @@ -12747,13 +12780,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/rule-tester@7.8.0(@eslint/eslintrc@3.1.0)(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/rule-tester@8.14.0(eslint@8.57.0)(typescript@5.4.5)': dependencies: - '@eslint/eslintrc': 3.1.0 - '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.4.5) + '@typescript-eslint/utils': 8.14.0(eslint@8.57.0)(typescript@5.4.5) ajv: 6.12.6 eslint: 8.57.0 + json-stable-stringify-without-jsonify: 1.0.1 lodash.merge: 4.6.2 semver: 7.6.3 transitivePeerDependencies: @@ -12765,16 +12798,16 @@ snapshots: '@typescript-eslint/types': 7.16.1 '@typescript-eslint/visitor-keys': 7.16.1 - '@typescript-eslint/scope-manager@7.8.0': - dependencies: - '@typescript-eslint/types': 7.8.0 - '@typescript-eslint/visitor-keys': 7.8.0 - '@typescript-eslint/scope-manager@8.12.2': dependencies: '@typescript-eslint/types': 8.12.2 '@typescript-eslint/visitor-keys': 8.12.2 + '@typescript-eslint/scope-manager@8.14.0': + dependencies: + '@typescript-eslint/types': 8.14.0 + '@typescript-eslint/visitor-keys': 8.14.0 + '@typescript-eslint/type-utils@7.16.1(eslint@8.57.0)(typescript@5.4.5)': dependencies: '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.4.5) @@ -12791,10 +12824,10 @@ snapshots: '@typescript-eslint/types@7.16.1': {} - '@typescript-eslint/types@7.8.0': {} - '@typescript-eslint/types@8.12.2': {} + '@typescript-eslint/types@8.14.0': {} + '@typescript-eslint/typescript-estree@5.62.0(supports-color@9.4.0)(typescript@5.4.5)': dependencies: '@typescript-eslint/types': 5.62.0 @@ -12816,20 +12849,20 @@ snapshots: debug: 4.3.7(supports-color@9.4.0) globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.4 + minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.4.5) + ts-api-utils: 1.4.0(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.8.0(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@8.12.2(typescript@5.4.5)': dependencies: - '@typescript-eslint/types': 7.8.0 - '@typescript-eslint/visitor-keys': 7.8.0 + '@typescript-eslint/types': 8.12.2 + '@typescript-eslint/visitor-keys': 8.12.2 debug: 4.3.7(supports-color@9.4.0) - globby: 11.1.0 + fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 @@ -12839,10 +12872,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.12.2(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@8.14.0(typescript@5.4.5)': dependencies: - '@typescript-eslint/types': 8.12.2 - '@typescript-eslint/visitor-keys': 8.12.2 + '@typescript-eslint/types': 8.14.0 + '@typescript-eslint/visitor-keys': 8.14.0 debug: 4.3.7(supports-color@9.4.0) fast-glob: 3.3.2 is-glob: 4.0.3 @@ -12865,26 +12898,23 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@7.8.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/utils@8.12.2(eslint@8.57.0)(typescript@5.4.5)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.8.0 - '@typescript-eslint/types': 7.8.0 - '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + '@typescript-eslint/scope-manager': 8.12.2 + '@typescript-eslint/types': 8.12.2 + '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.4.5) eslint: 8.57.0 - semver: 7.6.3 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.12.2(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/utils@8.14.0(eslint@8.57.0)(typescript@5.4.5)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.0) - '@typescript-eslint/scope-manager': 8.12.2 - '@typescript-eslint/types': 8.12.2 - '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.4.5) + '@typescript-eslint/scope-manager': 8.14.0 + '@typescript-eslint/types': 8.14.0 + '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.4.5) eslint: 8.57.0 transitivePeerDependencies: - supports-color @@ -12900,14 +12930,14 @@ snapshots: '@typescript-eslint/types': 7.16.1 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@7.8.0': + '@typescript-eslint/visitor-keys@8.12.2': dependencies: - '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/types': 8.12.2 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.12.2': + '@typescript-eslint/visitor-keys@8.14.0': dependencies: - '@typescript-eslint/types': 8.12.2 + '@typescript-eslint/types': 8.14.0 eslint-visitor-keys: 3.4.3 '@typescript/analyze-trace@0.10.1': From efb017d3b4e34b87142bd4991e2a47f1d7910cb6 Mon Sep 17 00:00:00 2001 From: wuls Date: Fri, 22 Nov 2024 13:56:00 +0800 Subject: [PATCH 03/19] support 8 and 9 --- package.json | 2 +- packages/eslint-plugin-qwik/index.ts | 89 +++++++++++++++++++--------- packages/qwik-labs/package.json | 4 +- packages/qwik/package.json | 2 +- 4 files changed, 66 insertions(+), 31 deletions(-) diff --git a/package.json b/package.json index b7cb4027e30..9b50675e322 100644 --- a/package.json +++ b/package.json @@ -242,10 +242,10 @@ "start": "concurrently \"npm:build.watch\" \"npm:tsc.watch\" -n build,tsc -c green,cyan", "test": "pnpm build.full && pnpm test.unit && pnpm test.e2e", "test.e2e": "pnpm test.e2e.chromium && pnpm test.e2e.webkit", - "test.e2e.cli": "pnpm --filter qwik-cli-e2e e2e", "test.e2e.chromium": "playwright test starters --browser=chromium --config starters/playwright.config.ts", "test.e2e.chromium.debug": "PWDEBUG=1 playwright test starters --browser=chromium --config starters/playwright.config.ts", "test.e2e.city": "playwright test starters/e2e/qwikcity --browser=chromium --config starters/playwright.config.ts", + "test.e2e.cli": "pnpm --filter qwik-cli-e2e e2e", "test.e2e.firefox": "playwright test starters --browser=firefox --config starters/playwright.config.ts", "test.e2e.webkit": "playwright test starters --browser=webkit --config starters/playwright.config.ts", "test.rust": "make test", diff --git a/packages/eslint-plugin-qwik/index.ts b/packages/eslint-plugin-qwik/index.ts index 158da4a1315..b7ef964f241 100644 --- a/packages/eslint-plugin-qwik/index.ts +++ b/packages/eslint-plugin-qwik/index.ts @@ -9,6 +9,7 @@ import { preferClasslist } from './src/preferClasslist'; import { unusedServer } from './src/unusedServer'; import { useMethodUsage } from './src/useMethodUsage'; import { validLexicalScope } from './src/validLexicalScope'; +import fs from 'fs'; export const rules = { 'use-method-usage': useMethodUsage, @@ -24,37 +25,71 @@ export const rules = { 'no-use-visible-task': noUseVisibleTask, }; -export const configs = { +const recommendedRules = { + 'qwik/use-method-usage': 'error', + 'qwik/valid-lexical-scope': 'error', + 'qwik/no-react-props': 'error', + 'qwik/prefer-classlist': 'warn', + 'qwik/jsx-no-script-url': 'warn', + 'qwik/loader-location': 'warn', + 'qwik/jsx-key': 'warn', + 'qwik/unused-server': 'error', + 'qwik/jsx-img': 'warn', + 'qwik/jsx-a': 'warn', + 'qwik/no-use-visible-task': 'warn', +}; +const strictRules = { + 'qwik/valid-lexical-scope': 'error', + 'qwik/use-method-usage': 'error', + 'qwik/loader-location': 'error', + 'qwik/no-react-props': 'error', + 'qwik/prefer-classlist': 'error', + 'qwik/jsx-no-script-url': 'error', + 'qwik/jsx-key': 'error', + 'qwik/unused-server': 'error', + 'qwik/jsx-img': 'error', + 'qwik/jsx-a': 'error', + 'qwik/no-use-visible-task': 'warn', +}; +const configs = { recommended: { plugins: ['qwik'], - rules: { - 'qwik/use-method-usage': 'error', - 'qwik/valid-lexical-scope': 'error', - 'qwik/no-react-props': 'error', - 'qwik/prefer-classlist': 'warn', - 'qwik/jsx-no-script-url': 'warn', - 'qwik/loader-location': 'warn', - 'qwik/jsx-key': 'warn', - 'qwik/unused-server': 'error', - 'qwik/jsx-img': 'warn', - 'qwik/jsx-a': 'warn', - 'qwik/no-use-visible-task': 'warn', - }, + rules: recommendedRules, }, strict: { plugins: ['qwik'], - rules: { - 'qwik/valid-lexical-scope': 'error', - 'qwik/use-method-usage': 'error', - 'qwik/loader-location': 'error', - 'qwik/no-react-props': 'error', - 'qwik/prefer-classlist': 'error', - 'qwik/jsx-no-script-url': 'error', - 'qwik/jsx-key': 'error', - 'qwik/unused-server': 'error', - 'qwik/jsx-img': 'error', - 'qwik/jsx-a': 'error', - 'qwik/no-use-visible-task': 'warn', - }, + rules: strictRules, + }, +}; + +const pkg = JSON.parse(fs.readFileSync(new URL('./package.json', import.meta.url), 'utf8')); + +const qwikEslintPlugin = { + configs: {}, + meta: { + name: pkg.name, + version: pkg.version, }, + rules, }; + +Object.assign(qwikEslintPlugin.configs, { + recommended: [ + { + plugins: { + qwik: qwikEslintPlugin, + }, + rules: recommendedRules, + }, + ], + strict: [ + { + plugins: { + qwik: qwikEslintPlugin, + }, + rules: strictRules, + }, + ], +}); + +export { configs, qwikEslintPlugin as default }; diff --git a/packages/qwik-labs/package.json b/packages/qwik-labs/package.json index c66608d5148..a303bac3504 100644 --- a/packages/qwik-labs/package.json +++ b/packages/qwik-labs/package.json @@ -38,8 +38,8 @@ ], "main": "./lib/index.qwik.mjs", "peerDependencies": { - "zod": "3.22.4", - "vite": "^5" + "vite": "^5", + "zod": "3.22.4" }, "private": true, "qwik": "./lib/index.qwik.mjs", diff --git a/packages/qwik/package.json b/packages/qwik/package.json index 13514913ce6..2c4a473afff 100644 --- a/packages/qwik/package.json +++ b/packages/qwik/package.json @@ -30,9 +30,9 @@ "devDependencies": { "@builder.io/qwik": "workspace:^", "@builder.io/qwik-dom": "workspace:^", + "ignore": "5.3.1", "image-size": "1.1.1", "kleur": "4.1.5", - "ignore": "5.3.1", "ts-morph": "23.0.0" }, "engines": { From 5c0723e78265427a74e2a44624f3ed8d54ac9307 Mon Sep 17 00:00:00 2001 From: wuls Date: Fri, 22 Nov 2024 14:04:05 +0800 Subject: [PATCH 04/19] upgrade --- package.json | 2 +- packages/insights/package.json | 2 +- packages/qwik-labs/package.json | 2 +- pnpm-lock.yaml | 20 ++++++-------------- 4 files changed, 9 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index cfa7e05465d..d5468c5c298 100644 --- a/package.json +++ b/package.json @@ -114,7 +114,7 @@ "@types/brotli": "1.3.4", "@types/bun": "1.1.6", "@types/cross-spawn": "6.0.6", - "@types/eslint": "8.56.10", + "@types/eslint": "9.6.1", "@types/express": "4.17.21", "@types/node": "20.14.11", "@types/path-browserify": "1.0.2", diff --git a/packages/insights/package.json b/packages/insights/package.json index f8fcc3b11dd..359638442f5 100644 --- a/packages/insights/package.json +++ b/packages/insights/package.json @@ -20,7 +20,7 @@ "@builder.io/vite-plugin-macro": "0.0.7", "@netlify/edge-functions": "2.10.0", "@types/density-clustering": "1.3.3", - "@types/eslint": "8.56.10", + "@types/eslint": "9.6.1", "@types/node": "20.14.11", "@typescript-eslint/eslint-plugin": "7.16.1", "@typescript-eslint/parser": "7.16.1", diff --git a/packages/qwik-labs/package.json b/packages/qwik-labs/package.json index a303bac3504..1c9d7dd6f91 100644 --- a/packages/qwik-labs/package.json +++ b/packages/qwik-labs/package.json @@ -4,7 +4,7 @@ "version": "0.0.1", "devDependencies": { "@builder.io/qwik": "workspace:^", - "@types/eslint": "8.56.10", + "@types/eslint": "9.6.1", "@types/node": "20.14.11", "@typescript-eslint/eslint-plugin": "7.16.1", "@typescript-eslint/parser": "7.16.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 00e6c503722..82e47cb88cb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,8 +80,8 @@ importers: specifier: 6.0.6 version: 6.0.6 '@types/eslint': - specifier: 8.56.10 - version: 8.56.10 + specifier: 9.6.1 + version: 9.6.1 '@types/express': specifier: 4.17.21 version: 4.17.21 @@ -499,8 +499,8 @@ importers: specifier: 1.3.3 version: 1.3.3 '@types/eslint': - specifier: 8.56.10 - version: 8.56.10 + specifier: 9.6.1 + version: 9.6.1 '@types/node': specifier: 20.14.11 version: 20.14.11 @@ -720,8 +720,8 @@ importers: specifier: workspace:^ version: link:../qwik '@types/eslint': - specifier: 8.56.10 - version: 8.56.10 + specifier: 9.6.1 + version: 9.6.1 '@types/node': specifier: 20.14.11 version: 20.14.11 @@ -3414,9 +3414,6 @@ packages: '@types/density-clustering@1.3.3': resolution: {integrity: sha512-p2zEz57kHxWVg39XZ9QQVW6ity4rC3/1cCeLqm2eqqomvOrf8CFYaw7jO8gdYuchO4532ak0Z0f/vBr9irwG/w==} - '@types/eslint@8.56.10': - resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} - '@types/eslint@9.6.1': resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} @@ -12566,11 +12563,6 @@ snapshots: '@types/density-clustering@1.3.3': {} - '@types/eslint@8.56.10': - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 - '@types/eslint@9.6.1': dependencies: '@types/estree': 1.0.5 From 0738804b6d9c57323bff38a090697ad8457eda3e Mon Sep 17 00:00:00 2001 From: wuls Date: Fri, 22 Nov 2024 14:26:18 +0800 Subject: [PATCH 05/19] upgrade --- packages/eslint-plugin-qwik/index.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/eslint-plugin-qwik/index.ts b/packages/eslint-plugin-qwik/index.ts index b7ef964f241..3f0a7d37ebf 100644 --- a/packages/eslint-plugin-qwik/index.ts +++ b/packages/eslint-plugin-qwik/index.ts @@ -1,3 +1,4 @@ +import path from 'path'; import { jsxAtag } from './src/jsxAtag'; import { jsxImg } from './src/jsxImg'; import { jsxKey } from './src/jsxKey'; @@ -9,7 +10,7 @@ import { preferClasslist } from './src/preferClasslist'; import { unusedServer } from './src/unusedServer'; import { useMethodUsage } from './src/useMethodUsage'; import { validLexicalScope } from './src/validLexicalScope'; -import fs from 'fs'; +import pkg from './package.json'; export const rules = { 'use-method-usage': useMethodUsage, @@ -51,7 +52,7 @@ const strictRules = { 'qwik/jsx-a': 'error', 'qwik/no-use-visible-task': 'warn', }; -const configs = { +export const configs = { recommended: { plugins: ['qwik'], rules: recommendedRules, @@ -62,8 +63,6 @@ const configs = { }, }; -const pkg = JSON.parse(fs.readFileSync(new URL('./package.json', import.meta.url), 'utf8')); - const qwikEslintPlugin = { configs: {}, meta: { @@ -92,4 +91,4 @@ Object.assign(qwikEslintPlugin.configs, { ], }); -export { configs, qwikEslintPlugin as default }; +// export { configs, qwikEslintPlugin as default }; From 5ed62c5e467c25f75e18a5482ce5b346572efdf9 Mon Sep 17 00:00:00 2001 From: wuls Date: Fri, 22 Nov 2024 14:40:44 +0800 Subject: [PATCH 06/19] upgrade --- package.json | 2 +- packages/eslint-plugin-qwik/index.ts | 8 +++--- packages/eslint-plugin-qwik/package.json | 4 +-- packages/insights/package.json | 2 +- packages/qwik-labs/package.json | 2 +- .../src/optimizer/src/qwik-binding-map.ts | 28 ------------------- pnpm-lock.yaml | 21 ++++++-------- 7 files changed, 18 insertions(+), 49 deletions(-) diff --git a/package.json b/package.json index d5468c5c298..cfa7e05465d 100644 --- a/package.json +++ b/package.json @@ -114,7 +114,7 @@ "@types/brotli": "1.3.4", "@types/bun": "1.1.6", "@types/cross-spawn": "6.0.6", - "@types/eslint": "9.6.1", + "@types/eslint": "8.56.10", "@types/express": "4.17.21", "@types/node": "20.14.11", "@types/path-browserify": "1.0.2", diff --git a/packages/eslint-plugin-qwik/index.ts b/packages/eslint-plugin-qwik/index.ts index 3f0a7d37ebf..d9d3882077f 100644 --- a/packages/eslint-plugin-qwik/index.ts +++ b/packages/eslint-plugin-qwik/index.ts @@ -1,4 +1,3 @@ -import path from 'path'; import { jsxAtag } from './src/jsxAtag'; import { jsxImg } from './src/jsxImg'; import { jsxKey } from './src/jsxKey'; @@ -12,7 +11,7 @@ import { useMethodUsage } from './src/useMethodUsage'; import { validLexicalScope } from './src/validLexicalScope'; import pkg from './package.json'; -export const rules = { +const rules = { 'use-method-usage': useMethodUsage, 'valid-lexical-scope': validLexicalScope, 'loader-location': loaderLocation, @@ -52,7 +51,8 @@ const strictRules = { 'qwik/jsx-a': 'error', 'qwik/no-use-visible-task': 'warn', }; -export const configs = { + +const configs = { recommended: { plugins: ['qwik'], rules: recommendedRules, @@ -91,4 +91,4 @@ Object.assign(qwikEslintPlugin.configs, { ], }); -// export { configs, qwikEslintPlugin as default }; +export { configs, qwikEslintPlugin as default }; diff --git a/packages/eslint-plugin-qwik/package.json b/packages/eslint-plugin-qwik/package.json index a253f9f2e6a..f2ad42672e5 100644 --- a/packages/eslint-plugin-qwik/package.json +++ b/packages/eslint-plugin-qwik/package.json @@ -11,7 +11,6 @@ "devDependencies": { "@builder.io/qwik": "workspace:^", "@builder.io/qwik-city": "workspace:^", - "@types/eslint": "9.6.1", "@types/estree": "1.0.5", "@typescript-eslint/rule-tester": "8.14.0", "redent": "4.0.0" @@ -32,7 +31,8 @@ "license": "MIT", "main": "dist/index.js", "peerDependencies": { - "eslint": "9.15.0" + "eslint": "9.15.0", + "@types/eslint": "9.6.1" }, "repository": { "type": "git", diff --git a/packages/insights/package.json b/packages/insights/package.json index 359638442f5..f8fcc3b11dd 100644 --- a/packages/insights/package.json +++ b/packages/insights/package.json @@ -20,7 +20,7 @@ "@builder.io/vite-plugin-macro": "0.0.7", "@netlify/edge-functions": "2.10.0", "@types/density-clustering": "1.3.3", - "@types/eslint": "9.6.1", + "@types/eslint": "8.56.10", "@types/node": "20.14.11", "@typescript-eslint/eslint-plugin": "7.16.1", "@typescript-eslint/parser": "7.16.1", diff --git a/packages/qwik-labs/package.json b/packages/qwik-labs/package.json index 1c9d7dd6f91..a303bac3504 100644 --- a/packages/qwik-labs/package.json +++ b/packages/qwik-labs/package.json @@ -4,7 +4,7 @@ "version": "0.0.1", "devDependencies": { "@builder.io/qwik": "workspace:^", - "@types/eslint": "9.6.1", + "@types/eslint": "8.56.10", "@types/node": "20.14.11", "@typescript-eslint/eslint-plugin": "7.16.1", "@typescript-eslint/parser": "7.16.1", diff --git a/packages/qwik/src/optimizer/src/qwik-binding-map.ts b/packages/qwik/src/optimizer/src/qwik-binding-map.ts index cceeb273668..6fd723f7147 100644 --- a/packages/qwik/src/optimizer/src/qwik-binding-map.ts +++ b/packages/qwik/src/optimizer/src/qwik-binding-map.ts @@ -4,14 +4,6 @@ // prettier-ignore export const QWIK_BINDING_MAP = { "darwin": { - "arm64": [ - { - "platform": "darwin", - "arch": "arm64", - "abi": null, - "platformArchABI": "qwik.darwin-arm64.node" - } - ], "x64": [ { "platform": "darwin", @@ -20,25 +12,5 @@ export const QWIK_BINDING_MAP = { "platformArchABI": "qwik.darwin-x64.node" } ] - }, - "win32": { - "x64": [ - { - "platform": "win32", - "arch": "x64", - "abi": "msvc", - "platformArchABI": "qwik.win32-x64-msvc.node" - } - ] - }, - "linux": { - "x64": [ - { - "platform": "linux", - "arch": "x64", - "abi": "gnu", - "platformArchABI": "qwik.linux-x64-gnu.node" - } - ] } }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 82e47cb88cb..01c014b0a9a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,8 +80,8 @@ importers: specifier: 6.0.6 version: 6.0.6 '@types/eslint': - specifier: 9.6.1 - version: 9.6.1 + specifier: 8.56.10 + version: 8.56.10 '@types/express': specifier: 4.17.21 version: 4.17.21 @@ -437,9 +437,6 @@ importers: '@builder.io/qwik-city': specifier: workspace:^ version: link:../qwik-city - '@types/eslint': - specifier: 9.6.1 - version: 9.6.1 '@types/estree': specifier: 1.0.5 version: 1.0.5 @@ -499,8 +496,8 @@ importers: specifier: 1.3.3 version: 1.3.3 '@types/eslint': - specifier: 9.6.1 - version: 9.6.1 + specifier: 8.56.10 + version: 8.56.10 '@types/node': specifier: 20.14.11 version: 20.14.11 @@ -720,8 +717,8 @@ importers: specifier: workspace:^ version: link:../qwik '@types/eslint': - specifier: 9.6.1 - version: 9.6.1 + specifier: 8.56.10 + version: 8.56.10 '@types/node': specifier: 20.14.11 version: 20.14.11 @@ -3414,8 +3411,8 @@ packages: '@types/density-clustering@1.3.3': resolution: {integrity: sha512-p2zEz57kHxWVg39XZ9QQVW6ity4rC3/1cCeLqm2eqqomvOrf8CFYaw7jO8gdYuchO4532ak0Z0f/vBr9irwG/w==} - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + '@types/eslint@8.56.10': + resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -12563,7 +12560,7 @@ snapshots: '@types/density-clustering@1.3.3': {} - '@types/eslint@9.6.1': + '@types/eslint@8.56.10': dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 From 35ccf8398e3aced7407a22862cd67352afed4d18 Mon Sep 17 00:00:00 2001 From: wuls Date: Fri, 22 Nov 2024 14:42:23 +0800 Subject: [PATCH 07/19] upgrade --- package.json | 2 +- packages/eslint-plugin-qwik/index.ts | 8 ++++---- packages/eslint-plugin-qwik/package.json | 4 ++-- packages/insights/package.json | 2 +- packages/qwik-labs/package.json | 2 +- pnpm-lock.yaml | 21 +++++++++------------ 6 files changed, 18 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index d5468c5c298..cfa7e05465d 100644 --- a/package.json +++ b/package.json @@ -114,7 +114,7 @@ "@types/brotli": "1.3.4", "@types/bun": "1.1.6", "@types/cross-spawn": "6.0.6", - "@types/eslint": "9.6.1", + "@types/eslint": "8.56.10", "@types/express": "4.17.21", "@types/node": "20.14.11", "@types/path-browserify": "1.0.2", diff --git a/packages/eslint-plugin-qwik/index.ts b/packages/eslint-plugin-qwik/index.ts index 3f0a7d37ebf..d9d3882077f 100644 --- a/packages/eslint-plugin-qwik/index.ts +++ b/packages/eslint-plugin-qwik/index.ts @@ -1,4 +1,3 @@ -import path from 'path'; import { jsxAtag } from './src/jsxAtag'; import { jsxImg } from './src/jsxImg'; import { jsxKey } from './src/jsxKey'; @@ -12,7 +11,7 @@ import { useMethodUsage } from './src/useMethodUsage'; import { validLexicalScope } from './src/validLexicalScope'; import pkg from './package.json'; -export const rules = { +const rules = { 'use-method-usage': useMethodUsage, 'valid-lexical-scope': validLexicalScope, 'loader-location': loaderLocation, @@ -52,7 +51,8 @@ const strictRules = { 'qwik/jsx-a': 'error', 'qwik/no-use-visible-task': 'warn', }; -export const configs = { + +const configs = { recommended: { plugins: ['qwik'], rules: recommendedRules, @@ -91,4 +91,4 @@ Object.assign(qwikEslintPlugin.configs, { ], }); -// export { configs, qwikEslintPlugin as default }; +export { configs, qwikEslintPlugin as default }; diff --git a/packages/eslint-plugin-qwik/package.json b/packages/eslint-plugin-qwik/package.json index a253f9f2e6a..f2ad42672e5 100644 --- a/packages/eslint-plugin-qwik/package.json +++ b/packages/eslint-plugin-qwik/package.json @@ -11,7 +11,6 @@ "devDependencies": { "@builder.io/qwik": "workspace:^", "@builder.io/qwik-city": "workspace:^", - "@types/eslint": "9.6.1", "@types/estree": "1.0.5", "@typescript-eslint/rule-tester": "8.14.0", "redent": "4.0.0" @@ -32,7 +31,8 @@ "license": "MIT", "main": "dist/index.js", "peerDependencies": { - "eslint": "9.15.0" + "eslint": "9.15.0", + "@types/eslint": "9.6.1" }, "repository": { "type": "git", diff --git a/packages/insights/package.json b/packages/insights/package.json index 359638442f5..f8fcc3b11dd 100644 --- a/packages/insights/package.json +++ b/packages/insights/package.json @@ -20,7 +20,7 @@ "@builder.io/vite-plugin-macro": "0.0.7", "@netlify/edge-functions": "2.10.0", "@types/density-clustering": "1.3.3", - "@types/eslint": "9.6.1", + "@types/eslint": "8.56.10", "@types/node": "20.14.11", "@typescript-eslint/eslint-plugin": "7.16.1", "@typescript-eslint/parser": "7.16.1", diff --git a/packages/qwik-labs/package.json b/packages/qwik-labs/package.json index 1c9d7dd6f91..a303bac3504 100644 --- a/packages/qwik-labs/package.json +++ b/packages/qwik-labs/package.json @@ -4,7 +4,7 @@ "version": "0.0.1", "devDependencies": { "@builder.io/qwik": "workspace:^", - "@types/eslint": "9.6.1", + "@types/eslint": "8.56.10", "@types/node": "20.14.11", "@typescript-eslint/eslint-plugin": "7.16.1", "@typescript-eslint/parser": "7.16.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 82e47cb88cb..01c014b0a9a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,8 +80,8 @@ importers: specifier: 6.0.6 version: 6.0.6 '@types/eslint': - specifier: 9.6.1 - version: 9.6.1 + specifier: 8.56.10 + version: 8.56.10 '@types/express': specifier: 4.17.21 version: 4.17.21 @@ -437,9 +437,6 @@ importers: '@builder.io/qwik-city': specifier: workspace:^ version: link:../qwik-city - '@types/eslint': - specifier: 9.6.1 - version: 9.6.1 '@types/estree': specifier: 1.0.5 version: 1.0.5 @@ -499,8 +496,8 @@ importers: specifier: 1.3.3 version: 1.3.3 '@types/eslint': - specifier: 9.6.1 - version: 9.6.1 + specifier: 8.56.10 + version: 8.56.10 '@types/node': specifier: 20.14.11 version: 20.14.11 @@ -720,8 +717,8 @@ importers: specifier: workspace:^ version: link:../qwik '@types/eslint': - specifier: 9.6.1 - version: 9.6.1 + specifier: 8.56.10 + version: 8.56.10 '@types/node': specifier: 20.14.11 version: 20.14.11 @@ -3414,8 +3411,8 @@ packages: '@types/density-clustering@1.3.3': resolution: {integrity: sha512-p2zEz57kHxWVg39XZ9QQVW6ity4rC3/1cCeLqm2eqqomvOrf8CFYaw7jO8gdYuchO4532ak0Z0f/vBr9irwG/w==} - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + '@types/eslint@8.56.10': + resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -12563,7 +12560,7 @@ snapshots: '@types/density-clustering@1.3.3': {} - '@types/eslint@9.6.1': + '@types/eslint@8.56.10': dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 From fc3aa5330f9c86d9861eb5d7324aa47a05047b07 Mon Sep 17 00:00:00 2001 From: Jerry_wu <409187100@qq.com> Date: Fri, 22 Nov 2024 14:48:03 +0800 Subject: [PATCH 08/19] Update qwik-binding-map.ts --- .../src/optimizer/src/qwik-binding-map.ts | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/packages/qwik/src/optimizer/src/qwik-binding-map.ts b/packages/qwik/src/optimizer/src/qwik-binding-map.ts index 6fd723f7147..cceeb273668 100644 --- a/packages/qwik/src/optimizer/src/qwik-binding-map.ts +++ b/packages/qwik/src/optimizer/src/qwik-binding-map.ts @@ -4,6 +4,14 @@ // prettier-ignore export const QWIK_BINDING_MAP = { "darwin": { + "arm64": [ + { + "platform": "darwin", + "arch": "arm64", + "abi": null, + "platformArchABI": "qwik.darwin-arm64.node" + } + ], "x64": [ { "platform": "darwin", @@ -12,5 +20,25 @@ export const QWIK_BINDING_MAP = { "platformArchABI": "qwik.darwin-x64.node" } ] + }, + "win32": { + "x64": [ + { + "platform": "win32", + "arch": "x64", + "abi": "msvc", + "platformArchABI": "qwik.win32-x64-msvc.node" + } + ] + }, + "linux": { + "x64": [ + { + "platform": "linux", + "arch": "x64", + "abi": "gnu", + "platformArchABI": "qwik.linux-x64-gnu.node" + } + ] } }; From f6d7862156aa6350bf931ca193803d1acb861519 Mon Sep 17 00:00:00 2001 From: wuls Date: Fri, 22 Nov 2024 14:54:59 +0800 Subject: [PATCH 09/19] upgrade --- packages/eslint-plugin-qwik/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/eslint-plugin-qwik/index.ts b/packages/eslint-plugin-qwik/index.ts index d9d3882077f..a7022f5d477 100644 --- a/packages/eslint-plugin-qwik/index.ts +++ b/packages/eslint-plugin-qwik/index.ts @@ -52,7 +52,7 @@ const strictRules = { 'qwik/no-use-visible-task': 'warn', }; -const configs = { +export const configs = { recommended: { plugins: ['qwik'], rules: recommendedRules, @@ -91,4 +91,4 @@ Object.assign(qwikEslintPlugin.configs, { ], }); -export { configs, qwikEslintPlugin as default }; +// export { configs, qwikEslintPlugin as default }; From af55f94827c0ca60813cac4517a76ac5d262e91d Mon Sep 17 00:00:00 2001 From: wuls Date: Fri, 22 Nov 2024 14:56:45 +0800 Subject: [PATCH 10/19] upgrade --- packages/eslint-plugin-qwik/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/eslint-plugin-qwik/index.ts b/packages/eslint-plugin-qwik/index.ts index a7022f5d477..d9d3882077f 100644 --- a/packages/eslint-plugin-qwik/index.ts +++ b/packages/eslint-plugin-qwik/index.ts @@ -52,7 +52,7 @@ const strictRules = { 'qwik/no-use-visible-task': 'warn', }; -export const configs = { +const configs = { recommended: { plugins: ['qwik'], rules: recommendedRules, @@ -91,4 +91,4 @@ Object.assign(qwikEslintPlugin.configs, { ], }); -// export { configs, qwikEslintPlugin as default }; +export { configs, qwikEslintPlugin as default }; From 64b5c11329dd5d415e6bafed9f0879b0a6b0c28f Mon Sep 17 00:00:00 2001 From: wuls Date: Fri, 22 Nov 2024 15:17:00 +0800 Subject: [PATCH 11/19] upgrade --- packages/eslint-plugin-qwik/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eslint-plugin-qwik/index.ts b/packages/eslint-plugin-qwik/index.ts index d9d3882077f..453d03f2685 100644 --- a/packages/eslint-plugin-qwik/index.ts +++ b/packages/eslint-plugin-qwik/index.ts @@ -91,4 +91,4 @@ Object.assign(qwikEslintPlugin.configs, { ], }); -export { configs, qwikEslintPlugin as default }; +export { configs, qwikEslintPlugin as default, rules }; From cce51f089e5bd24fc1ea271f9d48e9f0af4b11a5 Mon Sep 17 00:00:00 2001 From: wuls Date: Fri, 22 Nov 2024 16:01:01 +0800 Subject: [PATCH 12/19] upgrade --- e2e/qwik-cli-e2e/tests/serve.spec.ts | 2 +- e2e/qwik-cli-e2e/utils/index.ts | 2 +- starters/features/playwright/playwright.config.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/e2e/qwik-cli-e2e/tests/serve.spec.ts b/e2e/qwik-cli-e2e/tests/serve.spec.ts index c30d8aa30a9..2ca7ce07700 100644 --- a/e2e/qwik-cli-e2e/tests/serve.spec.ts +++ b/e2e/qwik-cli-e2e/tests/serve.spec.ts @@ -29,7 +29,7 @@ test( const host = `http://localhost:${SERVE_PORT}/`; await assertHostUnused(host); const p = await runCommandUntil( - `npm run dev -- --port ${SERVE_PORT}`, + `pnpm run dev -- --port ${SERVE_PORT}`, global.tmpDir, (output) => { return output.includes(host); diff --git a/e2e/qwik-cli-e2e/utils/index.ts b/e2e/qwik-cli-e2e/utils/index.ts index c67a7636897..cabbfa3cc6d 100644 --- a/e2e/qwik-cli-e2e/utils/index.ts +++ b/e2e/qwik-cli-e2e/utils/index.ts @@ -67,7 +67,7 @@ function replacePackagesWithLocalOnes(tmpDir: string) { for (const { name, absolutePath } of tarballConfig) { patchPackageJsonForPlugin(tmpDir, name, absolutePath); } - execSync('npm i', { + execSync('pnpm i', { cwd: tmpDir, // only output errors stdio: ['ignore', 'ignore', 'inherit'], diff --git a/starters/features/playwright/playwright.config.ts b/starters/features/playwright/playwright.config.ts index 6571b00a469..7f80cd73ec9 100644 --- a/starters/features/playwright/playwright.config.ts +++ b/starters/features/playwright/playwright.config.ts @@ -32,7 +32,7 @@ const config: PlaywrightTestConfig = { ], webServer: { - command: "npm run preview", + command: "pnpm run preview", port: 4173, }, }; From 20a6fd49579fa7fbc98dc7e77f94fa8572bfd285 Mon Sep 17 00:00:00 2001 From: wuls Date: Fri, 22 Nov 2024 16:10:37 +0800 Subject: [PATCH 13/19] upgrade --- e2e/qwik-cli-e2e/tests/serve.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e/qwik-cli-e2e/tests/serve.spec.ts b/e2e/qwik-cli-e2e/tests/serve.spec.ts index 2ca7ce07700..c30d8aa30a9 100644 --- a/e2e/qwik-cli-e2e/tests/serve.spec.ts +++ b/e2e/qwik-cli-e2e/tests/serve.spec.ts @@ -29,7 +29,7 @@ test( const host = `http://localhost:${SERVE_PORT}/`; await assertHostUnused(host); const p = await runCommandUntil( - `pnpm run dev -- --port ${SERVE_PORT}`, + `npm run dev -- --port ${SERVE_PORT}`, global.tmpDir, (output) => { return output.includes(host); From 0bda5461eb8152f43b5351a6ca6d1f60cf04f872 Mon Sep 17 00:00:00 2001 From: wuls Date: Fri, 22 Nov 2024 16:11:46 +0800 Subject: [PATCH 14/19] upgrade --- starters/features/playwright/playwright.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/starters/features/playwright/playwright.config.ts b/starters/features/playwright/playwright.config.ts index 7f80cd73ec9..6571b00a469 100644 --- a/starters/features/playwright/playwright.config.ts +++ b/starters/features/playwright/playwright.config.ts @@ -32,7 +32,7 @@ const config: PlaywrightTestConfig = { ], webServer: { - command: "pnpm run preview", + command: "npm run preview", port: 4173, }, }; From 02cba46b60b40e3b9d72497a57b615605f57a244 Mon Sep 17 00:00:00 2001 From: wuls Date: Fri, 22 Nov 2024 16:23:54 +0800 Subject: [PATCH 15/19] fix --- .changeset/breezy-toes-help.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/breezy-toes-help.md b/.changeset/breezy-toes-help.md index 8c456168014..4dcc47d055c 100644 --- a/.changeset/breezy-toes-help.md +++ b/.changeset/breezy-toes-help.md @@ -2,4 +2,4 @@ 'eslint-plugin-qwik': major --- -let eslint-plugin-qwink support Eslint 9 and 8 simultaneously +let eslint-plugin-qwik support Eslint 9 and 8 simultaneously From 2458862c594b9f64813e9fefb34c2422452e81b8 Mon Sep 17 00:00:00 2001 From: wuls Date: Thu, 28 Nov 2024 09:21:36 +0800 Subject: [PATCH 16/19] fix --- packages/eslint-plugin-qwik/qwik.unit.ts | 2 -- packages/eslint-plugin-qwik/tests/tsconfig.json | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/eslint-plugin-qwik/qwik.unit.ts b/packages/eslint-plugin-qwik/qwik.unit.ts index d2609dc6411..1401012fc94 100644 --- a/packages/eslint-plugin-qwik/qwik.unit.ts +++ b/packages/eslint-plugin-qwik/qwik.unit.ts @@ -1,11 +1,9 @@ import * as vitest from 'vitest'; -// @ts-ignore import { RuleTester, type RuleTesterConfig } from '@typescript-eslint/rule-tester'; import { fileURLToPath } from 'node:url'; import { rules } from './index'; import { readdir, readFile, stat } from 'node:fs/promises'; import { join, dirname } from 'path'; -// import {plugin, parser} from 'typescript-eslint' // https://typescript-eslint.io/packages/rule-tester/#vitest RuleTester.afterAll = vitest.afterAll; diff --git a/packages/eslint-plugin-qwik/tests/tsconfig.json b/packages/eslint-plugin-qwik/tests/tsconfig.json index 2198df838b3..8982e2d060b 100644 --- a/packages/eslint-plugin-qwik/tests/tsconfig.json +++ b/packages/eslint-plugin-qwik/tests/tsconfig.json @@ -1,9 +1,9 @@ { "compilerOptions": { "incremental": true, - "target": "ESNext", - "module": "ESNext", - "lib": ["ESNext", "DOM"], + "target": "ES2020", + "module": "ES2020", + "lib": ["es2020", "DOM"], "resolveJsonModule": true, "jsx": "react-jsx", "jsxImportSource": "@builder.io/qwik", From 1c8abcd94bd7f109fb63b8fbe38f3a0025d0cdcf Mon Sep 17 00:00:00 2001 From: JerryWu <409187100@qq.com> Date: Tue, 10 Dec 2024 21:39:22 +0800 Subject: [PATCH 17/19] feat: upgrade eslint from 8 to 9 --- .eslintrc.cjs | 45 -- .../.eslintrc.cjs => eslint.config.mjs | 47 +- package.json | 9 +- packages/docs/src/routes/demo/.eslintrc.cjs | 42 -- .../docs/src/routes/demo/eslint.config.mjs | 51 ++ .../demo/state/no-serialize/.eslintrc.cjs | 44 -- .../demo/state/no-serialize/eslint.config.mjs | 54 ++ packages/eslint-plugin-qwik/package.json | 3 +- packages/eslint-plugin-qwik/src/jsxAtag.ts | 8 +- packages/eslint-plugin-qwik/src/jsxImg.ts | 9 +- packages/eslint-plugin-qwik/src/jsxKey.ts | 31 +- .../eslint-plugin-qwik/src/jsxNoScriptUrl.ts | 2 +- .../eslint-plugin-qwik/src/loaderLocation.ts | 2 +- .../eslint-plugin-qwik/src/noReactProps.ts | 2 +- .../eslint-plugin-qwik/src/preferClasslist.ts | 2 +- .../eslint-plugin-qwik/src/unusedServer.ts | 2 +- .../src/validLexicalScope.ts | 2 +- packages/insights/eslint.config.mjs | 51 ++ packages/insights/package.json | 9 +- packages/qwik-labs/.eslintrc.cjs | 40 -- packages/qwik-labs/eslint.config.mjs | 49 ++ packages/qwik-labs/package.json | 9 +- .../optimizer/src/plugins/eslint-plugin.ts | 40 +- pnpm-lock.yaml | 597 ++++++++++-------- starters/apps/base/.eslintrc.cjs | 42 -- starters/apps/base/eslint.config.mjs | 53 ++ starters/apps/base/package.json | 3 +- starters/apps/library/.eslintrc.cjs | 40 -- starters/apps/library/eslint.config.mjs | 51 ++ starters/apps/library/package.json | 3 +- 30 files changed, 739 insertions(+), 603 deletions(-) delete mode 100644 .eslintrc.cjs rename packages/insights/.eslintrc.cjs => eslint.config.mjs (51%) delete mode 100644 packages/docs/src/routes/demo/.eslintrc.cjs create mode 100644 packages/docs/src/routes/demo/eslint.config.mjs delete mode 100644 packages/docs/src/routes/demo/state/no-serialize/.eslintrc.cjs create mode 100644 packages/docs/src/routes/demo/state/no-serialize/eslint.config.mjs create mode 100644 packages/insights/eslint.config.mjs delete mode 100644 packages/qwik-labs/.eslintrc.cjs create mode 100644 packages/qwik-labs/eslint.config.mjs delete mode 100644 starters/apps/base/.eslintrc.cjs create mode 100644 starters/apps/base/eslint.config.mjs delete mode 100644 starters/apps/library/.eslintrc.cjs create mode 100644 starters/apps/library/eslint.config.mjs diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index ad3afe7dd8f..00000000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,45 +0,0 @@ -module.exports = { - env: { - browser: true, - es2021: true, - node: true, - }, - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - // Enable this for testing but it makes the lint quite slow - // 'plugin:qwik/recommended', - ], - parser: '@typescript-eslint/parser', - parserOptions: { - ecmaVersion: 12, - sourceType: 'module', - // Needed when using the qwik plugin - // project: ['./tsconfig.json'], - }, - plugins: [ - '@typescript-eslint', - 'no-only-tests', - // 'qwik' - ], - rules: { - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-inferrable-types': 'off', - '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/no-empty-interface': 'off', - '@typescript-eslint/no-namespace': 'off', - '@typescript-eslint/no-empty-function': 'off', - '@typescript-eslint/no-this-alias': 'off', - '@typescript-eslint/ban-types': 'off', - '@typescript-eslint/ban-ts-comment': 'off', - 'prefer-spread': 'off', - 'no-case-declarations': 'off', - 'no-console': ['error', { allow: ['warn', 'error'] }], - 'no-only-tests/no-only-tests': 'error', - '@typescript-eslint/no-unused-vars': 'off', - '@typescript-eslint/no-var-requires': 'off', - curly: 'error', - 'no-new-func': 'error', - }, -}; diff --git a/packages/insights/.eslintrc.cjs b/eslint.config.mjs similarity index 51% rename from packages/insights/.eslintrc.cjs rename to eslint.config.mjs index 03a22c7348e..8cac28ea74d 100644 --- a/packages/insights/.eslintrc.cjs +++ b/eslint.config.mjs @@ -1,26 +1,29 @@ -module.exports = { - root: true, - env: { - browser: true, - es2021: true, - node: true, - }, - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:qwik/recommended', - ], - parser: '@typescript-eslint/parser', - parserOptions: { - tsconfigRootDir: __dirname, - project: ['./tsconfig.json'], - ecmaVersion: 2021, - sourceType: 'module', - ecmaFeatures: { - jsx: true, +import eslint from '@eslint/js'; +import tseslint from 'typescript-eslint'; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; +import typescript from '@typescript-eslint/eslint-plugin'; +const __dirname = dirname(fileURLToPath(import.meta.url)); +import globals from 'globals'; + +export default tseslint.config(eslint.configs.recommended, tseslint.configs.recommended, { + languageOptions: { + parserOptions: { + sourceType: 'module', + ecmaFeatures: { + jsx: true, + }, + globals: { + ...globals.node, + ...globals.es2021, + ...globals.browser, + }, + ecmaVersion: 2021, + project: ['./tsconfig.json'], + tsconfigRootDir: __dirname, }, }, - plugins: ['@typescript-eslint'], + plugins: { '@typescript-eslint': typescript }, rules: { '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', @@ -39,4 +42,4 @@ module.exports = { '@typescript-eslint/consistent-type-imports': 'warn', '@typescript-eslint/no-unnecessary-condition': 'warn', }, -}; +}); diff --git a/package.json b/package.json index cfa7e05465d..963140e4a9c 100644 --- a/package.json +++ b/package.json @@ -114,7 +114,7 @@ "@types/brotli": "1.3.4", "@types/bun": "1.1.6", "@types/cross-spawn": "6.0.6", - "@types/eslint": "8.56.10", + "@types/eslint": "9.6.1", "@types/express": "4.17.21", "@types/node": "20.14.11", "@types/path-browserify": "1.0.2", @@ -123,8 +123,9 @@ "@types/semver": "7.5.8", "@types/tmp": "0.2.6", "@types/which-pm-runs": "1.0.2", - "@typescript-eslint/eslint-plugin": "7.16.1", - "@typescript-eslint/parser": "7.16.1", + "@typescript-eslint/eslint-plugin": "8.18.0", + "typescript-eslint": "8.18.0", + "globals": "15.13.0", "all-contributors-cli": "6.26.1", "brotli": "1.3.3", "concurrently": "8.2.2", @@ -133,7 +134,7 @@ "csstype": "3.1.3", "dotenv": "16.4.5", "esbuild": "0.20.2", - "eslint": "8.57.0", + "eslint": "9.16.0", "eslint-plugin-no-only-tests": "3.1.0", "eslint-plugin-qwik": "workspace:^", "execa": "8.0.1", diff --git a/packages/docs/src/routes/demo/.eslintrc.cjs b/packages/docs/src/routes/demo/.eslintrc.cjs deleted file mode 100644 index 33807f70b69..00000000000 --- a/packages/docs/src/routes/demo/.eslintrc.cjs +++ /dev/null @@ -1,42 +0,0 @@ -module.exports = { - root: true, - env: { - browser: true, - es2021: true, - node: true, - }, - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - // 'plugin:qwik/recommended', - ], - parser: '@typescript-eslint/parser', - parserOptions: { - tsconfigRootDir: __dirname, - project: ['./tsconfig.json'], - ecmaVersion: 2021, - sourceType: 'module', - ecmaFeatures: { - jsx: true, - }, - }, - plugins: ['@typescript-eslint'], - rules: { - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-inferrable-types': 'off', - '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/no-empty-interface': 'off', - '@typescript-eslint/no-namespace': 'off', - '@typescript-eslint/no-empty-function': 'off', - '@typescript-eslint/no-this-alias': 'off', - '@typescript-eslint/ban-types': 'off', - '@typescript-eslint/ban-ts-comment': 'off', - 'prefer-spread': 'off', - 'no-case-declarations': 'off', - 'no-console': 'off', - '@typescript-eslint/no-unused-vars': ['error'], - '@typescript-eslint/consistent-type-imports': 'warn', - 'qwik/no-react-props': 'off', - }, -}; diff --git a/packages/docs/src/routes/demo/eslint.config.mjs b/packages/docs/src/routes/demo/eslint.config.mjs new file mode 100644 index 00000000000..b58d5376689 --- /dev/null +++ b/packages/docs/src/routes/demo/eslint.config.mjs @@ -0,0 +1,51 @@ +import eslint from '@eslint/js'; +import tseslint from 'typescript-eslint'; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; +import typescript from '@typescript-eslint/eslint-plugin'; +const __dirname = dirname(fileURLToPath(import.meta.url)); +import globals from 'globals'; + +export default tseslint.config( + eslint.configs.recommended, + tseslint.configs.recommended, + { + languageOptions: { + parserOptions: { + sourceType: 'module', + ecmaFeatures: { + jsx: true, + }, + globals: { + ...globals.node, + ...globals.es2021, + ...globals.browser, + }, + ecmaVersion: 2021, + project: ['./tsconfig.json'], + tsconfigRootDir: __dirname, + }, + }, + plugins: { + '@typescript-eslint': typescript, + }, + rules: { + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-inferrable-types': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-empty-interface': 'off', + '@typescript-eslint/no-namespace': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-this-alias': 'off', + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + 'prefer-spread': 'off', + 'no-case-declarations': 'off', + 'no-console': 'off', + '@typescript-eslint/no-unused-vars': ['error'], + '@typescript-eslint/consistent-type-imports': 'warn', + 'qwik/no-react-props': 'off', + }, + } +); diff --git a/packages/docs/src/routes/demo/state/no-serialize/.eslintrc.cjs b/packages/docs/src/routes/demo/state/no-serialize/.eslintrc.cjs deleted file mode 100644 index 342a734ad12..00000000000 --- a/packages/docs/src/routes/demo/state/no-serialize/.eslintrc.cjs +++ /dev/null @@ -1,44 +0,0 @@ -// REMOVE THIS FILE ONCE: https://github.com/QwikDev/qwik/issues/3719 is fixed -module.exports = { - root: true, - env: { - browser: true, - es2021: true, - node: true, - }, - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:qwik/recommended', - ], - parser: '@typescript-eslint/parser', - parserOptions: { - tsconfigRootDir: __dirname, - project: ['../../tsconfig.json'], - ecmaVersion: 2021, - sourceType: 'module', - ecmaFeatures: { - jsx: true, - }, - }, - plugins: ['@typescript-eslint'], - rules: { - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-inferrable-types': 'off', - '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/no-empty-interface': 'off', - '@typescript-eslint/no-namespace': 'off', - '@typescript-eslint/no-empty-function': 'off', - '@typescript-eslint/no-this-alias': 'off', - '@typescript-eslint/ban-types': 'off', - '@typescript-eslint/ban-ts-comment': 'off', - 'prefer-spread': 'off', - 'no-case-declarations': 'off', - 'no-console': 'off', - '@typescript-eslint/no-unused-vars': ['error'], - '@typescript-eslint/consistent-type-imports': 'warn', - 'qwik/no-react-props': 'off', - 'qwik/valid-lexical-scope': 'off', - }, -}; diff --git a/packages/docs/src/routes/demo/state/no-serialize/eslint.config.mjs b/packages/docs/src/routes/demo/state/no-serialize/eslint.config.mjs new file mode 100644 index 00000000000..bb3c1d7f39c --- /dev/null +++ b/packages/docs/src/routes/demo/state/no-serialize/eslint.config.mjs @@ -0,0 +1,54 @@ +import eslint from '@eslint/js'; +import tseslint from 'typescript-eslint'; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; +import typescript from '@typescript-eslint/eslint-plugin'; +import qwik from 'eslint-plugin-qwik'; +const __dirname = dirname(fileURLToPath(import.meta.url)); +import globals from 'globals'; + +export default tseslint.config( + eslint.configs.recommended, + tseslint.configs.recommended, + qwik.configs.recommended, + { + languageOptions: { + parserOptions: { + sourceType: 'module', + ecmaFeatures: { + jsx: true, + }, + globals: { + ...globals.node, + ...globals.es2021, + ...globals.browser, + }, + ecmaVersion: 2021, + project: ['../../tsconfig.json'], + tsconfigRootDir: __dirname, + }, + }, + plugins: { + '@typescript-eslint': typescript, + }, + rules: { + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-inferrable-types': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-empty-interface': 'off', + '@typescript-eslint/no-namespace': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-this-alias': 'off', + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + 'prefer-spread': 'off', + 'no-case-declarations': 'off', + 'no-console': 'off', + '@typescript-eslint/no-unused-vars': ['error'], + '@typescript-eslint/consistent-type-imports': 'warn', + 'qwik/no-react-props': 'off', + 'qwik/valid-lexical-scope': 'off', + }, + } +); diff --git a/packages/eslint-plugin-qwik/package.json b/packages/eslint-plugin-qwik/package.json index d6a0b0b43a0..ee36e87d3bb 100644 --- a/packages/eslint-plugin-qwik/package.json +++ b/packages/eslint-plugin-qwik/package.json @@ -13,7 +13,8 @@ "@builder.io/qwik-city": "workspace:^", "@types/estree": "1.0.5", "@typescript-eslint/rule-tester": "8.14.0", - "redent": "4.0.0" + "redent": "4.0.0", + "@types/jsx-ast-utils": "3.3.1" }, "engines": { "node": ">=16.8.0 <18.0.0 || >=18.11" diff --git a/packages/eslint-plugin-qwik/src/jsxAtag.ts b/packages/eslint-plugin-qwik/src/jsxAtag.ts index 2974f961016..713c29ee08e 100644 --- a/packages/eslint-plugin-qwik/src/jsxAtag.ts +++ b/packages/eslint-plugin-qwik/src/jsxAtag.ts @@ -1,6 +1,12 @@ import { ESLintUtils, TSESTree } from '@typescript-eslint/utils'; -const createRule = ESLintUtils.RuleCreator(() => 'https://qwik.dev/docs/advanced/dollar/'); +interface RuleOptions { + recommended: string; +} + +const createRule = ESLintUtils.RuleCreator( + () => 'https://qwik.dev/docs/advanced/dollar/' +); export const jsxAtag = createRule({ defaultOptions: [], diff --git a/packages/eslint-plugin-qwik/src/jsxImg.ts b/packages/eslint-plugin-qwik/src/jsxImg.ts index 70139b59115..dffe80f0d9a 100644 --- a/packages/eslint-plugin-qwik/src/jsxImg.ts +++ b/packages/eslint-plugin-qwik/src/jsxImg.ts @@ -1,7 +1,10 @@ import { ESLintUtils, TSESTree } from '@typescript-eslint/utils'; -import { QwikEslintExamples } from '../examples'; +import type { QwikEslintExamples } from '../examples'; +interface RuleOptions { + recommended: string; +} -const createRule = ESLintUtils.RuleCreator( +const createRule = ESLintUtils.RuleCreator( (name) => `https://qwik.dev/docs/advanced/eslint/#${name}` ); @@ -148,7 +151,7 @@ function imgImportName(value: string) { return `Img${toPascalCase(value)}`; } -function toPascalCase(string) { +function toPascalCase(string: string) { return `${string}` .toLowerCase() .replace(new RegExp(/[-_]+/, 'g'), ' ') diff --git a/packages/eslint-plugin-qwik/src/jsxKey.ts b/packages/eslint-plugin-qwik/src/jsxKey.ts index a6d497bc24b..01ca764bcfd 100644 --- a/packages/eslint-plugin-qwik/src/jsxKey.ts +++ b/packages/eslint-plugin-qwik/src/jsxKey.ts @@ -1,6 +1,5 @@ import jsxAstUtils from 'jsx-ast-utils'; -import { QwikEslintExamples } from '../examples'; - +import type { QwikEslintExamples } from '../examples'; // ------------------------------------------------------------------------------ // Rule Definition // ------------------------------------------------------------------------------ @@ -110,20 +109,20 @@ export const jsxKey = { return returnStatements; } - - function isKeyAfterSpread(attributes) { - let hasFoundSpread = false; - return attributes.some((attribute) => { - if (attribute.type === 'JSXSpreadAttribute') { - hasFoundSpread = true; - return false; - } - if (attribute.type !== 'JSXAttribute') { - return false; - } - return hasFoundSpread && jsxAstUtils.propName(attribute) === 'key'; - }); - } + // never used + // function isKeyAfterSpread(attributes) { + // let hasFoundSpread = false; + // return attributes.some((attribute) => { + // if (attribute.type === 'JSXSpreadAttribute') { + // hasFoundSpread = true; + // return false; + // } + // if (attribute.type !== 'JSXAttribute') { + // return false; + // } + // return hasFoundSpread && jsxAstUtils.propName(attribute) === 'key'; + // }); + // } /** * Checks if the given node is a function expression or arrow function, and checks if there is a diff --git a/packages/eslint-plugin-qwik/src/jsxNoScriptUrl.ts b/packages/eslint-plugin-qwik/src/jsxNoScriptUrl.ts index 120a9104b5b..a8b3f5c068f 100644 --- a/packages/eslint-plugin-qwik/src/jsxNoScriptUrl.ts +++ b/packages/eslint-plugin-qwik/src/jsxNoScriptUrl.ts @@ -1,5 +1,5 @@ import { ASTUtils } from '@typescript-eslint/utils'; -import { QwikEslintExamples } from '../examples'; +import type { QwikEslintExamples } from '../examples'; const { getStaticValue } = ASTUtils; // A javascript: URL can contain leading C0 control or \u0020 SPACE, diff --git a/packages/eslint-plugin-qwik/src/loaderLocation.ts b/packages/eslint-plugin-qwik/src/loaderLocation.ts index 095e3470213..e8a56ec0732 100644 --- a/packages/eslint-plugin-qwik/src/loaderLocation.ts +++ b/packages/eslint-plugin-qwik/src/loaderLocation.ts @@ -1,6 +1,6 @@ /* eslint-disable no-console */ import type { Rule } from 'eslint'; -import { QwikEslintExamples } from '../examples'; +import type { QwikEslintExamples } from '../examples'; export const ROUTE_FNS: Record = { loader$: true, diff --git a/packages/eslint-plugin-qwik/src/noReactProps.ts b/packages/eslint-plugin-qwik/src/noReactProps.ts index f7cd57e20fa..5c322600469 100644 --- a/packages/eslint-plugin-qwik/src/noReactProps.ts +++ b/packages/eslint-plugin-qwik/src/noReactProps.ts @@ -1,6 +1,6 @@ import type { TSESLint } from '@typescript-eslint/utils'; import jsxAstUtils from 'jsx-ast-utils'; -import { QwikEslintExamples } from '../examples'; +import type { QwikEslintExamples } from '../examples'; const reactSpecificProps = [ { from: 'className', to: 'class' }, diff --git a/packages/eslint-plugin-qwik/src/preferClasslist.ts b/packages/eslint-plugin-qwik/src/preferClasslist.ts index 9cf3bdde816..5993113989f 100644 --- a/packages/eslint-plugin-qwik/src/preferClasslist.ts +++ b/packages/eslint-plugin-qwik/src/preferClasslist.ts @@ -2,7 +2,7 @@ import type { TSESTree as T } from '@typescript-eslint/utils'; import jsxAstUtils from 'jsx-ast-utils'; -import { QwikEslintExamples } from '../examples'; +import type { QwikEslintExamples } from '../examples'; export const preferClasslist = { meta: { diff --git a/packages/eslint-plugin-qwik/src/unusedServer.ts b/packages/eslint-plugin-qwik/src/unusedServer.ts index f059f1e0c6c..2c9878a351f 100644 --- a/packages/eslint-plugin-qwik/src/unusedServer.ts +++ b/packages/eslint-plugin-qwik/src/unusedServer.ts @@ -1,6 +1,6 @@ /* eslint-disable no-console */ import type { Rule } from 'eslint'; -import { QwikEslintExamples } from '../examples'; +import type { QwikEslintExamples } from '../examples'; export const unusedServer: Rule.RuleModule = { meta: { diff --git a/packages/eslint-plugin-qwik/src/validLexicalScope.ts b/packages/eslint-plugin-qwik/src/validLexicalScope.ts index cf4c65d7cee..39aa81e13fc 100644 --- a/packages/eslint-plugin-qwik/src/validLexicalScope.ts +++ b/packages/eslint-plugin-qwik/src/validLexicalScope.ts @@ -4,7 +4,7 @@ import ts from 'typescript'; import type { Identifier } from 'estree'; import redent from 'redent'; import type { RuleContext, Scope } from '@typescript-eslint/utils/dist/ts-eslint'; -import { QwikEslintExamples } from '../examples'; +import type { QwikEslintExamples } from '../examples'; const createRule = ESLintUtils.RuleCreator( (name) => `https://qwik.dev/docs/advanced/eslint/#${name}` diff --git a/packages/insights/eslint.config.mjs b/packages/insights/eslint.config.mjs new file mode 100644 index 00000000000..6048131181f --- /dev/null +++ b/packages/insights/eslint.config.mjs @@ -0,0 +1,51 @@ +import eslint from '@eslint/js'; +import tseslint from 'typescript-eslint'; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; +import typescript from '@typescript-eslint/eslint-plugin'; +import qwik from 'eslint-plugin-qwik'; +const __dirname = dirname(fileURLToPath(import.meta.url)); +import globals from 'globals'; + +export default tseslint.config( + eslint.configs.recommended, + tseslint.configs.recommended, + qwik.configs.recommended, + { + languageOptions: { + parserOptions: { + sourceType: 'module', + ecmaFeatures: { + jsx: true, + }, + globals: { + ...globals.node, + ...globals.es2021, + ...globals.browser, + }, + ecmaVersion: 2021, + project: ['./tsconfig.json'], + tsconfigRootDir: __dirname, + }, + }, + plugins: { + '@typescript-eslint': typescript, + }, + rules: { + '@typescript-eslint/no-inferrable-types': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-empty-interface': 'off', + '@typescript-eslint/no-namespace': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-this-alias': 'off', + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + 'prefer-spread': 'off', + 'no-case-declarations': 'off', + 'no-console': 'off', + '@typescript-eslint/no-unused-vars': ['error'], + '@typescript-eslint/consistent-type-imports': 'warn', + '@typescript-eslint/no-unnecessary-condition': 'warn', + }, + } +); diff --git a/packages/insights/package.json b/packages/insights/package.json index 55033571683..a8cfb39359d 100644 --- a/packages/insights/package.json +++ b/packages/insights/package.json @@ -19,13 +19,14 @@ "@builder.io/vite-plugin-macro": "0.0.7", "@netlify/edge-functions": "2.10.0", "@types/density-clustering": "1.3.3", - "@types/eslint": "8.56.10", + "@types/eslint": "9.6.1", "@types/node": "20.14.11", - "@typescript-eslint/eslint-plugin": "7.16.1", - "@typescript-eslint/parser": "7.16.1", + "@typescript-eslint/eslint-plugin": "8.18.0", "autoprefixer": "10.4.19", "better-sqlite3": "9.6.0", - "eslint": "8.57.0", + "eslint": "9.16.0", + "globals": "15.13.0", + "typescript-eslint": "8.18.0", "eslint-plugin-qwik": "workspace:^", "netlify-cli": "17.37.2", "postcss": "8.4.39", diff --git a/packages/qwik-labs/.eslintrc.cjs b/packages/qwik-labs/.eslintrc.cjs deleted file mode 100644 index 5752982cd9a..00000000000 --- a/packages/qwik-labs/.eslintrc.cjs +++ /dev/null @@ -1,40 +0,0 @@ -module.exports = { - root: true, - env: { - browser: true, - es2021: true, - node: true, - }, - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:qwik/recommended', - ], - parser: '@typescript-eslint/parser', - parserOptions: { - tsconfigRootDir: __dirname, - project: ['./tsconfig.json', './tsconfig-vite.json'], - ecmaVersion: 2021, - sourceType: 'module', - ecmaFeatures: { - jsx: true, - }, - }, - plugins: ['@typescript-eslint'], - rules: { - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-inferrable-types': 'off', - '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/no-empty-interface': 'off', - '@typescript-eslint/no-namespace': 'off', - '@typescript-eslint/no-empty-function': 'off', - '@typescript-eslint/no-this-alias': 'off', - '@typescript-eslint/ban-types': 'off', - '@typescript-eslint/ban-ts-comment': 'off', - 'prefer-spread': 'off', - 'no-case-declarations': 'off', - 'no-console': 'off', - '@typescript-eslint/no-unused-vars': ['error'], - }, -}; diff --git a/packages/qwik-labs/eslint.config.mjs b/packages/qwik-labs/eslint.config.mjs new file mode 100644 index 00000000000..aab040b4e97 --- /dev/null +++ b/packages/qwik-labs/eslint.config.mjs @@ -0,0 +1,49 @@ +import eslint from '@eslint/js'; +import tseslint from 'typescript-eslint'; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; +import typescript from '@typescript-eslint/eslint-plugin'; +import qwik from 'eslint-plugin-qwik'; +const __dirname = dirname(fileURLToPath(import.meta.url)); +import globals from 'globals'; + +export default tseslint.config( + eslint.configs.recommended, + tseslint.configs.recommended, + qwik.configs.recommended, + { + languageOptions: { + parserOptions: { + sourceType: 'module', + ecmaFeatures: { + jsx: true, + }, + globals: { + ...globals.node, + ...globals.es2021, + ...globals.browser, + }, + ecmaVersion: 2021, + project: ['./tsconfig.json', './tsconfig-vite.json'], + tsconfigRootDir: __dirname, + }, + }, + plugins: { '@typescript-eslint': typescript }, + rules: { + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-inferrable-types': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-empty-interface': 'off', + '@typescript-eslint/no-namespace': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-this-alias': 'off', + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + 'prefer-spread': 'off', + 'no-case-declarations': 'off', + 'no-console': 'off', + '@typescript-eslint/no-unused-vars': ['error'], + }, + } +); diff --git a/packages/qwik-labs/package.json b/packages/qwik-labs/package.json index a303bac3504..54f965a224d 100644 --- a/packages/qwik-labs/package.json +++ b/packages/qwik-labs/package.json @@ -4,17 +4,18 @@ "version": "0.0.1", "devDependencies": { "@builder.io/qwik": "workspace:^", - "@types/eslint": "8.56.10", + "@types/eslint": "9.6.1", "@types/node": "20.14.11", - "@typescript-eslint/eslint-plugin": "7.16.1", - "@typescript-eslint/parser": "7.16.1", - "eslint": "8.57.0", + "@typescript-eslint/eslint-plugin": "8.18.0", + "eslint": "9.16.0", + "typescript-eslint": "8.18.0", "eslint-plugin-qwik": "workspace:^", "np": "10.0.1", "prettier": "3.3.3", "typescript": "5.4.5", "undici": "*", "vite": "5.3.5", + "globals": "15.13.0", "zod": "3.22.4" }, "engines": { diff --git a/packages/qwik/src/optimizer/src/plugins/eslint-plugin.ts b/packages/qwik/src/optimizer/src/plugins/eslint-plugin.ts index d9ac856fa3d..141dd62859e 100644 --- a/packages/qwik/src/optimizer/src/plugins/eslint-plugin.ts +++ b/packages/qwik/src/optimizer/src/plugins/eslint-plugin.ts @@ -1,7 +1,8 @@ import type { Rollup } from 'vite'; import type { ESLint, Linter } from 'eslint'; import type { OptimizerSystem } from '../types'; - +import qwik from 'eslint-plugin-qwik'; +import globals from 'globals'; export interface QwikLinter { lint(ctx: Rollup.PluginContext, code: string, id: string): void; } @@ -20,26 +21,27 @@ export async function createLinter( if (invalidEslintConfig) { const options: ESLint.Options = { cache: true, - useEslintrc: false, - overrideConfig: { - root: true, - env: { - browser: true, - es2021: true, - node: true, - }, - extends: ['plugin:qwik/recommended'], - parser: '@typescript-eslint/parser', - parserOptions: { - tsconfigRootDir: rootDir, - project: tsconfigFileNames, - ecmaVersion: 2021, - sourceType: 'module', - ecmaFeatures: { - jsx: true, + overrideConfig: [ + qwik.configs.recommended, + { + languageOptions: { + parserOptions: { + globals: { + ...globals.node, + ...globals.es2021, + ...globals.browser, + }, + tsconfigRootDir: rootDir, + project: tsconfigFileNames, + ecmaVersion: 2021, + sourceType: 'module', + ecmaFeatures: { + jsx: true, + }, + }, }, }, - }, + ], }; eslint = new module.ESLint(options) as ESLint; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 53f5e296b4d..bbbbf54f317 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,8 +80,8 @@ importers: specifier: 6.0.6 version: 6.0.6 '@types/eslint': - specifier: 8.56.10 - version: 8.56.10 + specifier: 9.6.1 + version: 9.6.1 '@types/express': specifier: 4.17.21 version: 4.17.21 @@ -107,11 +107,8 @@ importers: specifier: 1.0.2 version: 1.0.2 '@typescript-eslint/eslint-plugin': - specifier: 7.16.1 - version: 7.16.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/parser': - specifier: 7.16.1 - version: 7.16.1(eslint@8.57.0)(typescript@5.4.5) + specifier: 8.18.0 + version: 8.18.0(@typescript-eslint/parser@8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) all-contributors-cli: specifier: 6.26.1 version: 6.26.1 @@ -137,8 +134,8 @@ importers: specifier: 0.20.2 version: 0.20.2 eslint: - specifier: 8.57.0 - version: 8.57.0 + specifier: 9.16.0 + version: 9.16.0(jiti@1.21.0) eslint-plugin-no-only-tests: specifier: 3.1.0 version: 3.1.0 @@ -151,6 +148,9 @@ importers: express: specifier: 4.20.0 version: 4.20.0 + globals: + specifier: 15.13.0 + version: 15.13.0 install: specifier: 0.13.0 version: 0.13.0 @@ -214,6 +214,9 @@ importers: typescript: specifier: 5.4.5 version: 5.4.5 + typescript-eslint: + specifier: 8.18.0 + version: 8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) undici: specifier: '*' version: 6.6.2 @@ -426,7 +429,7 @@ importers: dependencies: '@typescript-eslint/utils': specifier: ^8.12.2 - version: 8.12.2(eslint@8.57.0)(typescript@5.4.5) + version: 8.12.2(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) jsx-ast-utils: specifier: ^3.3.5 version: 3.3.5 @@ -440,9 +443,12 @@ importers: '@types/estree': specifier: 1.0.5 version: 1.0.5 + '@types/jsx-ast-utils': + specifier: 3.3.1 + version: 3.3.1 '@typescript-eslint/rule-tester': specifier: 8.14.0 - version: 8.14.0(eslint@8.57.0)(typescript@5.4.5) + version: 8.14.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) redent: specifier: 4.0.0 version: 4.0.0 @@ -493,17 +499,14 @@ importers: specifier: 1.3.3 version: 1.3.3 '@types/eslint': - specifier: 8.56.10 - version: 8.56.10 + specifier: 9.6.1 + version: 9.6.1 '@types/node': specifier: 20.14.11 version: 20.14.11 '@typescript-eslint/eslint-plugin': - specifier: 7.16.1 - version: 7.16.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/parser': - specifier: 7.16.1 - version: 7.16.1(eslint@8.57.0)(typescript@5.4.5) + specifier: 8.18.0 + version: 8.18.0(@typescript-eslint/parser@8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) autoprefixer: specifier: 10.4.19 version: 10.4.19(postcss@8.4.39) @@ -511,11 +514,14 @@ importers: specifier: 9.6.0 version: 9.6.0 eslint: - specifier: 8.57.0 - version: 8.57.0 + specifier: 9.16.0 + version: 9.16.0(jiti@1.21.0) eslint-plugin-qwik: specifier: workspace:^ version: link:../eslint-plugin-qwik + globals: + specifier: 15.13.0 + version: 15.13.0 netlify-cli: specifier: 17.37.2 version: 17.37.2(@types/express@4.17.21)(@types/node@20.14.11)(bufferutil@4.0.8)(picomatch@3.0.1)(utf-8-validate@5.0.10) @@ -534,6 +540,9 @@ importers: typescript: specifier: 5.4.5 version: 5.4.5 + typescript-eslint: + specifier: 8.18.0 + version: 8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) undici: specifier: '*' version: 6.6.2 @@ -714,23 +723,23 @@ importers: specifier: workspace:^ version: link:../qwik '@types/eslint': - specifier: 8.56.10 - version: 8.56.10 + specifier: 9.6.1 + version: 9.6.1 '@types/node': specifier: 20.14.11 version: 20.14.11 '@typescript-eslint/eslint-plugin': - specifier: 7.16.1 - version: 7.16.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/parser': - specifier: 7.16.1 - version: 7.16.1(eslint@8.57.0)(typescript@5.4.5) + specifier: 8.18.0 + version: 8.18.0(@typescript-eslint/parser@8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) eslint: - specifier: 8.57.0 - version: 8.57.0 + specifier: 9.16.0 + version: 9.16.0(jiti@1.21.0) eslint-plugin-qwik: specifier: workspace:^ version: link:../eslint-plugin-qwik + globals: + specifier: 15.13.0 + version: 15.13.0 np: specifier: 10.0.1 version: 10.0.1(typescript@5.4.5) @@ -740,6 +749,9 @@ importers: typescript: specifier: 5.4.5 version: 5.4.5 + typescript-eslint: + specifier: 8.18.0 + version: 8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) undici: specifier: '*' version: 6.6.2 @@ -2297,12 +2309,6 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/eslint-utils@4.4.1': resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2313,17 +2319,37 @@ packages: resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.19.1': + resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.9.1': + resolution: {integrity: sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==} + 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@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.16.0': + resolution: {integrity: sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.5': + resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.4': + resolution: {integrity: sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@fastify/accept-negotiator@1.1.0': resolution: {integrity: sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ==} @@ -2360,10 +2386,13 @@ packages: '@floating-ui/utils@0.2.4': resolution: {integrity: sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==} - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} @@ -2373,9 +2402,13 @@ packages: resolution: {integrity: sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==} engines: {node: '>=10.10.0'} - '@humanwhocodes/object-schema@2.0.2': - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} - deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.1': + resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} + engines: {node: '>=18.18'} '@iarna/toml@2.2.5': resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} @@ -3401,8 +3434,8 @@ packages: '@types/density-clustering@1.3.3': resolution: {integrity: sha512-p2zEz57kHxWVg39XZ9QQVW6ity4rC3/1cCeLqm2eqqomvOrf8CFYaw7jO8gdYuchO4532ak0Z0f/vBr9irwG/w==} - '@types/eslint@8.56.10': - resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -3410,6 +3443,9 @@ packages: '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/express-serve-static-core@4.17.43': resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} @@ -3446,6 +3482,9 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/jsx-ast-utils@3.3.1': + resolution: {integrity: sha512-au6/M8boVMhGJfZXghOLRBD4iKGxYJHF6fwFnVpUR6l1Pm51B6DG80ckwubjdankpVhIXJ1jgdGiQ0r717wIkg==} + '@types/leaflet@1.9.12': resolution: {integrity: sha512-BK7XS+NyRI291HIo0HCfE18Lp8oA30H1gpi1tf0mF3TgiCEzanQjOqNZ4x126SXzzi2oNSZhZ5axJp1k0iM6jg==} @@ -3560,26 +3599,20 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@7.16.1': - resolution: {integrity: sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/eslint-plugin@8.18.0': + resolution: {integrity: sha512-NR2yS7qUqCL7AIxdJUQf2MKKNDVNaig/dEB0GBLU7D+ZdHgK1NoH/3wsgO3OnPVipn51tG3MAwaODEGil70WEw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: 5.4.5 - '@typescript-eslint/parser@7.16.1': - resolution: {integrity: sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/parser@8.18.0': + resolution: {integrity: sha512-hgUZ3kTEpVzKaK3uNibExUYm6SKKOmTU2BOxBSvOYwtJEPdVQ70kZJpPjstlnhCHcuc2WGfSbpKlb/69ttyN5Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + eslint: ^8.57.0 || ^9.0.0 + typescript: 5.4.5 '@typescript-eslint/rule-tester@8.14.0': resolution: {integrity: sha512-q5Gi0CMFLojXZMvdWTIjOcBtV3qUg2xtUJocBxkd6PZ5YfHw9bd/Q+P5vtBu1Mrjs8OhId5WpOaMqjbUXLLBYA==} @@ -3587,10 +3620,6 @@ packages: peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/scope-manager@7.16.1': - resolution: {integrity: sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.12.2': resolution: {integrity: sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3599,24 +3628,21 @@ packages: resolution: {integrity: sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@7.16.1': - resolution: {integrity: sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@8.18.0': + resolution: {integrity: sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.18.0': + resolution: {integrity: sha512-er224jRepVAVLnMF2Q7MZJCq5CsdH2oqjP4dT7K6ij09Kyd+R21r7UVJrF0buMVdZS5QRhDzpvzAxHxabQadow==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + eslint: ^8.57.0 || ^9.0.0 + typescript: 5.4.5 '@typescript-eslint/types@5.62.0': resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/types@7.16.1': - resolution: {integrity: sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.12.2': resolution: {integrity: sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3625,6 +3651,10 @@ packages: resolution: {integrity: sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.18.0': + resolution: {integrity: sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@5.62.0': resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3634,15 +3664,6 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@7.16.1': - resolution: {integrity: sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/typescript-estree@8.12.2': resolution: {integrity: sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3661,11 +3682,11 @@ packages: typescript: optional: true - '@typescript-eslint/utils@7.16.1': - resolution: {integrity: sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/typescript-estree@8.18.0': + resolution: {integrity: sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + typescript: 5.4.5 '@typescript-eslint/utils@8.12.2': resolution: {integrity: sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==} @@ -3679,14 +3700,17 @@ packages: peerDependencies: eslint: ^8.57.0 || ^9.0.0 + '@typescript-eslint/utils@8.18.0': + resolution: {integrity: sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: 5.4.5 + '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/visitor-keys@7.16.1': - resolution: {integrity: sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.12.2': resolution: {integrity: sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3695,6 +3719,10 @@ packages: resolution: {integrity: sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.18.0': + resolution: {integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/analyze-trace@0.10.1': resolution: {integrity: sha512-RnlSOPh14QbopGCApgkSx5UBgGda5MX1cHqp2fsqfiDyCwGL/m1jaeB9fzu7didVS81LQqGZZuxFBcg8YU8EVw==} hasBin: true @@ -3821,6 +3849,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -4661,6 +4694,10 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + crossws@0.1.1: resolution: {integrity: sha512-c9c/o7bS3OjsdpSkvexpka0JNlesBF2JU9B2V1yNsYGwRbAafxhJQ7VI9b48D5bpONz/oxbPGMzBojy9sXoQIQ==} @@ -4945,10 +4982,6 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} @@ -5406,9 +5439,9 @@ packages: resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} engines: {node: '>=5.0.0'} - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} @@ -5418,11 +5451,19 @@ packages: resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.16.0: + resolution: {integrity: sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true esniff@2.0.1: resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} @@ -5432,9 +5473,9 @@ packages: resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -5684,9 +5725,9 @@ packages: resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==} engines: {node: '>=14'} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} file-type@18.7.0: resolution: {integrity: sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw==} @@ -5753,9 +5794,9 @@ packages: find-yarn-workspace-root2@1.2.16: resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} @@ -5989,14 +6030,14 @@ packages: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} engines: {node: '>=10'} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} + globals@15.13.0: + resolution: {integrity: sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==} + engines: {node: '>=18'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -9184,9 +9225,6 @@ packages: text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -9315,12 +9353,6 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: 5.4.5 - ts-api-utils@1.4.0: resolution: {integrity: sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==} engines: {node: '>=16'} @@ -9389,10 +9421,6 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -9446,6 +9474,13 @@ packages: typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + typescript-eslint@8.18.0: + resolution: {integrity: sha512-Xq2rRjn6tzVpAyHr3+nmSg1/9k9aIHnJ2iZeOH7cfGOWqTkXTm3kwpQglEuLGdNrYvPF+2gtAs+/KF5rjVo+WQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: 5.4.5 + typescript@5.4.5: resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} engines: {node: '>=14.17'} @@ -11195,24 +11230,33 @@ snapshots: '@esbuild/win32-x64@0.23.1': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + '@eslint-community/eslint-utils@4.4.1(eslint@9.16.0(jiti@1.21.0))': dependencies: - eslint: 8.57.0 + eslint: 9.16.0(jiti@1.21.0) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.1(eslint@8.57.0)': + '@eslint-community/regexpp@4.11.1': {} + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/config-array@0.19.1': dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 + '@eslint/object-schema': 2.1.5 + debug: 4.3.7(supports-color@9.4.0) + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color - '@eslint-community/regexpp@4.11.1': {} + '@eslint/core@0.9.1': + dependencies: + '@types/json-schema': 7.0.15 - '@eslint/eslintrc@2.1.4': + '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 debug: 4.3.7(supports-color@9.4.0) - espree: 9.6.1 - globals: 13.24.0 + espree: 10.2.0 + globals: 14.0.0 ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -11221,11 +11265,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/eslintrc@3.1.0': + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 debug: 4.3.7(supports-color@9.4.0) - espree: 10.2.0 + espree: 10.3.0 globals: 14.0.0 ignore: 5.3.1 import-fresh: 3.3.0 @@ -11235,7 +11279,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.0': {} + '@eslint/js@9.16.0': {} + + '@eslint/object-schema@2.1.5': {} + + '@eslint/plugin-kit@0.2.4': + dependencies: + levn: 0.4.1 '@fastify/accept-negotiator@1.1.0': {} @@ -11285,19 +11335,20 @@ snapshots: '@floating-ui/utils@0.2.4': {} - '@humanwhocodes/config-array@0.11.14': + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': dependencies: - '@humanwhocodes/object-schema': 2.0.2 - debug: 4.3.7(supports-color@9.4.0) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 '@humanwhocodes/module-importer@1.0.1': {} '@humanwhocodes/momoa@2.0.4': {} - '@humanwhocodes/object-schema@2.0.2': {} + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.1': {} '@iarna/toml@2.2.5': {} @@ -12498,7 +12549,7 @@ snapshots: '@types/density-clustering@1.3.3': {} - '@types/eslint@8.56.10': + '@types/eslint@9.6.1': dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 @@ -12509,6 +12560,8 @@ snapshots: '@types/estree@1.0.5': {} + '@types/estree@1.0.6': {} + '@types/express-serve-static-core@4.17.43': dependencies: '@types/node': 20.14.11 @@ -12553,6 +12606,11 @@ snapshots: '@types/json-schema@7.0.15': {} + '@types/jsx-ast-utils@3.3.1': + dependencies: + '@types/estree': 1.0.5 + '@types/estree-jsx': 1.0.5 + '@types/leaflet@1.9.12': dependencies: '@types/geojson': 7946.0.14 @@ -12671,43 +12729,41 @@ snapshots: '@types/node': 20.14.11 optional: true - '@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/eslint-plugin@8.18.0(@typescript-eslint/parser@8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 7.16.1(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.16.1 - '@typescript-eslint/type-utils': 7.16.1(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.16.1(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.16.1 - eslint: 8.57.0 + '@typescript-eslint/parser': 8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + '@typescript-eslint/scope-manager': 8.18.0 + '@typescript-eslint/type-utils': 8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + '@typescript-eslint/utils': 8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 8.18.0 + eslint: 9.16.0(jiti@1.21.0) graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.4.5) - optionalDependencies: + ts-api-utils: 1.4.0(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/parser@8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': dependencies: - '@typescript-eslint/scope-manager': 7.16.1 - '@typescript-eslint/types': 7.16.1 - '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.16.1 + '@typescript-eslint/scope-manager': 8.18.0 + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 8.18.0 debug: 4.3.7(supports-color@9.4.0) - eslint: 8.57.0 - optionalDependencies: + eslint: 9.16.0(jiti@1.21.0) typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/rule-tester@8.14.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/rule-tester@8.14.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': dependencies: '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.4.5) - '@typescript-eslint/utils': 8.14.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 8.14.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) ajv: 6.12.6 - eslint: 8.57.0 + eslint: 9.16.0(jiti@1.21.0) json-stable-stringify-without-jsonify: 1.0.1 lodash.merge: 4.6.2 semver: 7.6.3 @@ -12715,11 +12771,6 @@ snapshots: - supports-color - typescript - '@typescript-eslint/scope-manager@7.16.1': - dependencies: - '@typescript-eslint/types': 7.16.1 - '@typescript-eslint/visitor-keys': 7.16.1 - '@typescript-eslint/scope-manager@8.12.2': dependencies: '@typescript-eslint/types': 8.12.2 @@ -12730,26 +12781,30 @@ snapshots: '@typescript-eslint/types': 8.14.0 '@typescript-eslint/visitor-keys': 8.14.0 - '@typescript-eslint/type-utils@7.16.1(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/scope-manager@8.18.0': dependencies: - '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.4.5) - '@typescript-eslint/utils': 7.16.1(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/visitor-keys': 8.18.0 + + '@typescript-eslint/type-utils@8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': + dependencies: + '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.4.5) + '@typescript-eslint/utils': 8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) debug: 4.3.7(supports-color@9.4.0) - eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.4.5) - optionalDependencies: + eslint: 9.16.0(jiti@1.21.0) + ts-api-utils: 1.4.0(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: - supports-color '@typescript-eslint/types@5.62.0': {} - '@typescript-eslint/types@7.16.1': {} - '@typescript-eslint/types@8.12.2': {} '@typescript-eslint/types@8.14.0': {} + '@typescript-eslint/types@8.18.0': {} + '@typescript-eslint/typescript-estree@5.62.0(supports-color@9.4.0)(typescript@5.4.5)': dependencies: '@typescript-eslint/types': 5.62.0 @@ -12764,21 +12819,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.16.1(typescript@5.4.5)': - dependencies: - '@typescript-eslint/types': 7.16.1 - '@typescript-eslint/visitor-keys': 7.16.1 - debug: 4.3.7(supports-color@9.4.0) - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.4.0(typescript@5.4.5) - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.12.2(typescript@5.4.5)': dependencies: '@typescript-eslint/types': 8.12.2 @@ -12809,47 +12849,56 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.16.1(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@8.18.0(typescript@5.4.5)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 7.16.1 - '@typescript-eslint/types': 7.16.1 - '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.4.5) - eslint: 8.57.0 + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/visitor-keys': 8.18.0 + debug: 4.3.7(supports-color@9.4.0) + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.4.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color - - typescript - '@typescript-eslint/utils@8.12.2(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/utils@8.12.2(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@1.21.0)) '@typescript-eslint/scope-manager': 8.12.2 '@typescript-eslint/types': 8.12.2 '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.4.5) - eslint: 8.57.0 + eslint: 9.16.0(jiti@1.21.0) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.14.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/utils@8.14.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@1.21.0)) '@typescript-eslint/scope-manager': 8.14.0 '@typescript-eslint/types': 8.14.0 '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.4.5) - eslint: 8.57.0 + eslint: 9.16.0(jiti@1.21.0) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@5.62.0': + '@typescript-eslint/utils@8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@1.21.0)) + '@typescript-eslint/scope-manager': 8.18.0 + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.4.5) + eslint: 9.16.0(jiti@1.21.0) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color - '@typescript-eslint/visitor-keys@7.16.1': + '@typescript-eslint/visitor-keys@5.62.0': dependencies: - '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 '@typescript-eslint/visitor-keys@8.12.2': @@ -12862,6 +12911,11 @@ snapshots: '@typescript-eslint/types': 8.14.0 eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@8.18.0': + dependencies: + '@typescript-eslint/types': 8.18.0 + eslint-visitor-keys: 4.2.0 + '@typescript/analyze-trace@0.10.1': dependencies: chalk: 4.1.2 @@ -13050,10 +13104,16 @@ snapshots: dependencies: acorn: 8.12.1 + acorn-jsx@5.3.2(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + acorn-walk@8.3.2: {} acorn@8.12.1: {} + acorn@8.14.0: {} + agent-base@6.0.2(supports-color@9.4.0): dependencies: debug: 4.3.7(supports-color@9.4.0) @@ -13976,6 +14036,12 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + crossws@0.1.1: {} crypto-random-string@4.0.0: @@ -14228,10 +14294,6 @@ snapshots: dlv@1.1.3: {} - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-helpers@5.2.1: dependencies: '@babel/runtime': 7.23.9 @@ -14766,7 +14828,7 @@ snapshots: eslint-plugin-no-only-tests@3.1.0: {} - eslint-scope@7.2.2: + eslint-scope@8.2.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -14775,46 +14837,46 @@ snapshots: eslint-visitor-keys@4.1.0: {} - eslint@8.57.0: + eslint-visitor-keys@4.2.0: {} + + eslint@9.16.0(jiti@1.21.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.11.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@1.21.0)) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.19.1 + '@eslint/core': 0.9.1 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.16.0 + '@eslint/plugin-kit': 0.2.4 + '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 + '@humanwhocodes/retry': 0.4.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 debug: 4.3.7(supports-color@9.4.0) - doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 + optionalDependencies: + jiti: 1.21.0 transitivePeerDependencies: - supports-color @@ -14831,11 +14893,11 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 4.1.0 - espree@9.6.1: + espree@10.3.0: dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) - eslint-visitor-keys: 3.4.3 + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 esprima@4.0.1: {} @@ -15188,9 +15250,9 @@ snapshots: escape-string-regexp: 5.0.0 is-unicode-supported: 1.3.0 - file-entry-cache@6.0.1: + file-entry-cache@8.0.0: dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 file-type@18.7.0: dependencies: @@ -15276,11 +15338,10 @@ snapshots: micromatch: 4.0.5 pkg-dir: 4.2.0 - flat-cache@3.2.0: + flat-cache@4.0.1: dependencies: flatted: 3.3.1 keyv: 4.5.4 - rimraf: 3.0.2 flatted@3.3.1: {} @@ -15523,12 +15584,10 @@ snapshots: dependencies: ini: 2.0.0 - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - globals@14.0.0: {} + globals@15.13.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -19456,8 +19515,6 @@ snapshots: text-hex@1.0.0: {} - text-table@0.2.0: {} - thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -19556,10 +19613,6 @@ snapshots: trough@2.2.0: {} - ts-api-utils@1.3.0(typescript@5.4.5): - dependencies: - typescript: 5.4.5 - ts-api-utils@1.4.0(typescript@5.4.5): dependencies: typescript: 5.4.5 @@ -19623,8 +19676,6 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-fest@0.20.2: {} - type-fest@0.21.3: {} type-fest@0.8.1: {} @@ -19682,6 +19733,16 @@ snapshots: dependencies: is-typedarray: 1.0.0 + typescript-eslint@8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5): + dependencies: + '@typescript-eslint/eslint-plugin': 8.18.0(@typescript-eslint/parser@8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + '@typescript-eslint/parser': 8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + '@typescript-eslint/utils': 8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + eslint: 9.16.0(jiti@1.21.0) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + typescript@5.4.5: {} ufo@1.5.4: {} diff --git a/starters/apps/base/.eslintrc.cjs b/starters/apps/base/.eslintrc.cjs deleted file mode 100644 index 70dc5d0392a..00000000000 --- a/starters/apps/base/.eslintrc.cjs +++ /dev/null @@ -1,42 +0,0 @@ -module.exports = { - root: true, - env: { - browser: true, - es2021: true, - node: true, - }, - extends: [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:qwik/recommended", - ], - parser: "@typescript-eslint/parser", - parserOptions: { - tsconfigRootDir: __dirname, - project: ["./tsconfig.json"], - ecmaVersion: 2021, - sourceType: "module", - ecmaFeatures: { - jsx: true, - }, - }, - plugins: ["@typescript-eslint"], - rules: { - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/no-inferrable-types": "off", - "@typescript-eslint/no-non-null-assertion": "off", - "@typescript-eslint/no-empty-interface": "off", - "@typescript-eslint/no-namespace": "off", - "@typescript-eslint/no-empty-function": "off", - "@typescript-eslint/no-this-alias": "off", - "@typescript-eslint/ban-types": "off", - "@typescript-eslint/ban-ts-comment": "off", - "prefer-spread": "off", - "no-case-declarations": "off", - "no-console": "off", - "@typescript-eslint/no-unused-vars": ["error"], - "@typescript-eslint/consistent-type-imports": "warn", - "@typescript-eslint/no-unnecessary-condition": "warn", - }, -}; diff --git a/starters/apps/base/eslint.config.mjs b/starters/apps/base/eslint.config.mjs new file mode 100644 index 00000000000..45c4cc02d8c --- /dev/null +++ b/starters/apps/base/eslint.config.mjs @@ -0,0 +1,53 @@ +import eslint from "@eslint/js"; +import tseslint from "typescript-eslint"; +import { fileURLToPath } from "url"; +import { dirname } from "path"; +import typescript from "@typescript-eslint/eslint-plugin"; +import qwik from "eslint-plugin-qwik"; +const __dirname = dirname(fileURLToPath(import.meta.url)); +import globals from "globals"; + +export default tseslint.config( + eslint.configs.recommended, + tseslint.configs.recommended, + qwik.configs.recommended, + { + languageOptions: { + parserOptions: { + sourceType: "module", + ecmaFeatures: { + jsx: true, + }, + globals: { + ...globals.node, + ...globals.es2021, + ...globals.browser, + }, + ecmaVersion: 2021, + project: ["./tsconfig.json"], + tsconfigRootDir: __dirname, + }, + }, + plugins: { + "@typescript-eslint": typescript, + }, + rules: { + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/explicit-module-boundary-types": "off", + "@typescript-eslint/no-inferrable-types": "off", + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-empty-interface": "off", + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/no-empty-function": "off", + "@typescript-eslint/no-this-alias": "off", + "@typescript-eslint/ban-types": "off", + "@typescript-eslint/ban-ts-comment": "off", + "prefer-spread": "off", + "no-case-declarations": "off", + "no-console": "off", + "@typescript-eslint/no-unused-vars": ["error"], + "@typescript-eslint/consistent-type-imports": "warn", + "@typescript-eslint/no-unnecessary-condition": "warn", + }, + }, +); diff --git a/starters/apps/base/package.json b/starters/apps/base/package.json index b6cab10066c..9da6f18c3db 100644 --- a/starters/apps/base/package.json +++ b/starters/apps/base/package.json @@ -21,7 +21,8 @@ "@types/eslint": "latest", "@types/node": "latest", "@typescript-eslint/eslint-plugin": "latest", - "@typescript-eslint/parser": "latest", + "typescript-eslint": "latest", + "globals": "latest", "eslint": "latest", "eslint-plugin-qwik": "latest", "prettier": "latest", diff --git a/starters/apps/library/.eslintrc.cjs b/starters/apps/library/.eslintrc.cjs deleted file mode 100644 index 32abdc809f2..00000000000 --- a/starters/apps/library/.eslintrc.cjs +++ /dev/null @@ -1,40 +0,0 @@ -module.exports = { - root: true, - env: { - browser: true, - es2021: true, - node: true, - }, - extends: [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:qwik/recommended", - ], - parser: "@typescript-eslint/parser", - parserOptions: { - tsconfigRootDir: __dirname, - project: ["./tsconfig.json"], - ecmaVersion: 2021, - sourceType: "module", - ecmaFeatures: { - jsx: true, - }, - }, - plugins: ["@typescript-eslint"], - rules: { - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/no-inferrable-types": "off", - "@typescript-eslint/no-non-null-assertion": "off", - "@typescript-eslint/no-empty-interface": "off", - "@typescript-eslint/no-namespace": "off", - "@typescript-eslint/no-empty-function": "off", - "@typescript-eslint/no-this-alias": "off", - "@typescript-eslint/ban-types": "off", - "@typescript-eslint/ban-ts-comment": "off", - "prefer-spread": "off", - "no-case-declarations": "off", - "no-console": "off", - "@typescript-eslint/no-unused-vars": ["error"], - }, -}; diff --git a/starters/apps/library/eslint.config.mjs b/starters/apps/library/eslint.config.mjs new file mode 100644 index 00000000000..b69807562ea --- /dev/null +++ b/starters/apps/library/eslint.config.mjs @@ -0,0 +1,51 @@ +import eslint from "@eslint/js"; +import tseslint from "typescript-eslint"; +import { fileURLToPath } from "url"; +import { dirname } from "path"; +import typescript from "@typescript-eslint/eslint-plugin"; +import qwik from "eslint-plugin-qwik"; +const __dirname = dirname(fileURLToPath(import.meta.url)); +import globals from "globals"; + +export default tseslint.config( + eslint.configs.recommended, + tseslint.configs.recommended, + qwik.configs.recommended, + { + languageOptions: { + parserOptions: { + sourceType: "module", + ecmaFeatures: { + jsx: true, + }, + globals: { + ...globals.node, + ...globals.es2021, + ...globals.browser, + }, + ecmaVersion: 2021, + project: ["./tsconfig.json"], + tsconfigRootDir: __dirname, + }, + }, + plugins: { + "@typescript-eslint": typescript, + }, + rules: { + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/explicit-module-boundary-types": "off", + "@typescript-eslint/no-inferrable-types": "off", + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-empty-interface": "off", + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/no-empty-function": "off", + "@typescript-eslint/no-this-alias": "off", + "@typescript-eslint/ban-types": "off", + "@typescript-eslint/ban-ts-comment": "off", + "prefer-spread": "off", + "no-case-declarations": "off", + "no-console": "off", + "@typescript-eslint/no-unused-vars": ["error"], + }, + }, +); diff --git a/starters/apps/library/package.json b/starters/apps/library/package.json index ed7ab48d57b..ba2cb2261b7 100644 --- a/starters/apps/library/package.json +++ b/starters/apps/library/package.json @@ -37,8 +37,9 @@ "@types/eslint": "latest", "@types/node": "latest", "@typescript-eslint/eslint-plugin": "latest", - "@typescript-eslint/parser": "latest", + "typescript-eslint": "latest", "eslint": "latest", + "globals": "latest", "eslint-plugin-qwik": "latest", "np": "^8.0.4", "prettier": "latest", From ba551e6d30e5b6cdd0c245ba78e7dd7772ac9ce4 Mon Sep 17 00:00:00 2001 From: JerryWu <409187100@qq.com> Date: Sat, 8 Feb 2025 11:41:53 +0800 Subject: [PATCH 18/19] reinistall to clean pnpm lock --- pnpm-lock.yaml | 251 +++++-------------------------------------------- 1 file changed, 21 insertions(+), 230 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 13d24b7a47d..19818a04930 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -440,25 +440,15 @@ importers: '@builder.io/qwik-city': specifier: workspace:^ version: link:../qwik-city -<<<<<<< HEAD -======= '@types/eslint': specifier: 9.6.1 version: 9.6.1 ->>>>>>> main '@types/estree': specifier: 1.0.5 version: 1.0.5 - '@types/jsx-ast-utils': - specifier: 3.3.1 - version: 3.3.1 '@typescript-eslint/rule-tester': specifier: 8.14.0 -<<<<<<< HEAD version: 8.14.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) -======= - version: 8.14.0(eslint@8.57.0)(typescript@5.4.5) ->>>>>>> main redent: specifier: 4.0.0 version: 4.0.0 @@ -2333,8 +2323,12 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.1': - resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} + '@eslint/config-array@0.19.2': + resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.10.0': + resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/core@0.9.1': @@ -2353,12 +2347,12 @@ packages: resolution: {integrity: sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.5': - resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} + '@eslint/object-schema@2.1.6': + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.4': - resolution: {integrity: sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==} + '@eslint/plugin-kit@0.2.5': + resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@fastify/accept-negotiator@1.1.0': @@ -2449,79 +2443,67 @@ packages: resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-arm@1.0.5': resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-s390x@1.0.4': resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-x64@1.0.4': resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] - libc: [glibc] '@img/sharp-libvips-linuxmusl-arm64@1.0.4': resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] - libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.0.4': resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] - libc: [musl] '@img/sharp-linux-arm64@0.33.5': resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - libc: [glibc] '@img/sharp-linux-arm@0.33.5': resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - libc: [glibc] '@img/sharp-linux-s390x@0.33.5': resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - libc: [glibc] '@img/sharp-linux-x64@0.33.5': resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - libc: [glibc] '@img/sharp-linuxmusl-arm64@0.33.5': resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - libc: [musl] '@img/sharp-linuxmusl-x64@0.33.5': resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - libc: [musl] '@img/sharp-wasm32@0.33.5': resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} @@ -3091,35 +3073,30 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] - libc: [glibc] '@parcel/watcher-linux-arm64-glibc@2.4.1': resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - libc: [glibc] '@parcel/watcher-linux-arm64-musl@2.4.1': resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - libc: [musl] '@parcel/watcher-linux-x64-glibc@2.4.1': resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] - libc: [glibc] '@parcel/watcher-linux-x64-musl@2.4.1': resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] - libc: [musl] '@parcel/watcher-wasm@2.4.0': resolution: {integrity: sha512-MNgQ4WCbBybqQ97KwR/hqJGYTg3+s8qHpgIyFWB2qJOBvoJWbXuJGmm4ZkPLq2bMaANqCZqrXwmKYagZTkMKZA==} @@ -3224,55 +3201,46 @@ packages: resolution: {integrity: sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==} cpu: [arm] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.19.0': resolution: {integrity: sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==} cpu: [arm] os: [linux] - libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.19.0': resolution: {integrity: sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==} cpu: [arm64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.19.0': resolution: {integrity: sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==} cpu: [arm64] os: [linux] - libc: [musl] '@rollup/rollup-linux-powerpc64le-gnu@4.19.0': resolution: {integrity: sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==} cpu: [ppc64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.19.0': resolution: {integrity: sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==} cpu: [riscv64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-s390x-gnu@4.19.0': resolution: {integrity: sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==} cpu: [s390x] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.19.0': resolution: {integrity: sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==} cpu: [x64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-musl@4.19.0': resolution: {integrity: sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==} cpu: [x64] os: [linux] - libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.19.0': resolution: {integrity: sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==} @@ -3447,9 +3415,6 @@ packages: '@types/eslint@9.6.1': resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -3495,9 +3460,6 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/jsx-ast-utils@3.3.1': - resolution: {integrity: sha512-au6/M8boVMhGJfZXghOLRBD4iKGxYJHF6fwFnVpUR6l1Pm51B6DG80ckwubjdankpVhIXJ1jgdGiQ0r717wIkg==} - '@types/leaflet@1.9.12': resolution: {integrity: sha512-BK7XS+NyRI291HIo0HCfE18Lp8oA30H1gpi1tf0mF3TgiCEzanQjOqNZ4x126SXzzi2oNSZhZ5axJp1k0iM6jg==} @@ -3633,13 +3595,6 @@ packages: peerDependencies: eslint: ^8.57.0 || ^9.0.0 -<<<<<<< HEAD -======= - '@typescript-eslint/scope-manager@7.16.1': - resolution: {integrity: sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==} - engines: {node: ^18.18.0 || >=20.0.0} - ->>>>>>> main '@typescript-eslint/scope-manager@8.12.2': resolution: {integrity: sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3648,7 +3603,6 @@ packages: resolution: {integrity: sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} -<<<<<<< HEAD '@typescript-eslint/scope-manager@8.18.0': resolution: {integrity: sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3656,11 +3610,6 @@ packages: '@typescript-eslint/type-utils@8.18.0': resolution: {integrity: sha512-er224jRepVAVLnMF2Q7MZJCq5CsdH2oqjP4dT7K6ij09Kyd+R21r7UVJrF0buMVdZS5QRhDzpvzAxHxabQadow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} -======= - '@typescript-eslint/type-utils@7.16.1': - resolution: {integrity: sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==} - engines: {node: ^18.18.0 || >=20.0.0} ->>>>>>> main peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: 5.4.5 @@ -3669,13 +3618,6 @@ packages: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} -<<<<<<< HEAD -======= - '@typescript-eslint/types@7.16.1': - resolution: {integrity: sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==} - engines: {node: ^18.18.0 || >=20.0.0} - ->>>>>>> main '@typescript-eslint/types@8.12.2': resolution: {integrity: sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3684,13 +3626,10 @@ packages: resolution: {integrity: sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} -<<<<<<< HEAD '@typescript-eslint/types@8.18.0': resolution: {integrity: sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} -======= ->>>>>>> main '@typescript-eslint/typescript-estree@5.62.0': resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3700,19 +3639,6 @@ packages: typescript: optional: true -<<<<<<< HEAD - '@typescript-eslint/typescript-estree@8.12.2': - resolution: {integrity: sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==} -======= - '@typescript-eslint/typescript-estree@7.16.1': - resolution: {integrity: sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/typescript-estree@8.12.2': resolution: {integrity: sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3724,7 +3650,6 @@ packages: '@typescript-eslint/typescript-estree@8.14.0': resolution: {integrity: sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ==} ->>>>>>> main engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -3732,24 +3657,12 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.14.0': - resolution: {integrity: sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - -<<<<<<< HEAD '@typescript-eslint/typescript-estree@8.18.0': resolution: {integrity: sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: 5.4.5 -======= ->>>>>>> main '@typescript-eslint/utils@8.12.2': resolution: {integrity: sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3762,7 +3675,6 @@ packages: peerDependencies: eslint: ^8.57.0 || ^9.0.0 -<<<<<<< HEAD '@typescript-eslint/utils@8.18.0': resolution: {integrity: sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3770,19 +3682,10 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: 5.4.5 -======= ->>>>>>> main '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} -<<<<<<< HEAD -======= - '@typescript-eslint/visitor-keys@7.16.1': - resolution: {integrity: sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==} - engines: {node: ^18.18.0 || >=20.0.0} - ->>>>>>> main '@typescript-eslint/visitor-keys@8.12.2': resolution: {integrity: sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3791,13 +3694,10 @@ packages: resolution: {integrity: sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} -<<<<<<< HEAD '@typescript-eslint/visitor-keys@8.18.0': resolution: {integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} -======= ->>>>>>> main '@typescript/analyze-trace@0.10.1': resolution: {integrity: sha512-RnlSOPh14QbopGCApgkSx5UBgGda5MX1cHqp2fsqfiDyCwGL/m1jaeB9fzu7didVS81LQqGZZuxFBcg8YU8EVw==} hasBin: true @@ -11313,14 +11213,18 @@ snapshots: '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.19.1': + '@eslint/config-array@0.19.2': dependencies: - '@eslint/object-schema': 2.1.5 + '@eslint/object-schema': 2.1.6 debug: 4.3.7(supports-color@9.4.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color + '@eslint/core@0.10.0': + dependencies: + '@types/json-schema': 7.0.15 + '@eslint/core@0.9.1': dependencies: '@types/json-schema': 7.0.15 @@ -11355,10 +11259,11 @@ snapshots: '@eslint/js@9.16.0': {} - '@eslint/object-schema@2.1.5': {} + '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.2.4': + '@eslint/plugin-kit@0.2.5': dependencies: + '@eslint/core': 0.10.0 levn: 0.4.1 '@fastify/accept-negotiator@1.1.0': {} @@ -12623,11 +12528,6 @@ snapshots: '@types/density-clustering@1.3.3': {} - '@types/eslint@9.6.1': - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 - '@types/eslint@9.6.1': dependencies: '@types/estree': 1.0.5 @@ -12685,11 +12585,6 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/jsx-ast-utils@3.3.1': - dependencies: - '@types/estree': 1.0.5 - '@types/estree-jsx': 1.0.5 - '@types/leaflet@1.9.12': dependencies: '@types/geojson': 7946.0.14 @@ -12837,21 +12732,12 @@ snapshots: transitivePeerDependencies: - supports-color -<<<<<<< HEAD '@typescript-eslint/rule-tester@8.14.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': dependencies: '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.4.5) '@typescript-eslint/utils': 8.14.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) ajv: 6.12.6 eslint: 9.16.0(jiti@1.21.0) -======= - '@typescript-eslint/rule-tester@8.14.0(eslint@8.57.0)(typescript@5.4.5)': - dependencies: - '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.4.5) - '@typescript-eslint/utils': 8.14.0(eslint@8.57.0)(typescript@5.4.5) - ajv: 6.12.6 - eslint: 8.57.0 ->>>>>>> main json-stable-stringify-without-jsonify: 1.0.1 lodash.merge: 4.6.2 semver: 7.6.3 @@ -12859,28 +12745,12 @@ snapshots: - supports-color - typescript -<<<<<<< HEAD -======= - '@typescript-eslint/scope-manager@7.16.1': - dependencies: - '@typescript-eslint/types': 7.16.1 - '@typescript-eslint/visitor-keys': 7.16.1 - ->>>>>>> main '@typescript-eslint/scope-manager@8.12.2': dependencies: '@typescript-eslint/types': 8.12.2 '@typescript-eslint/visitor-keys': 8.12.2 '@typescript-eslint/scope-manager@8.14.0': -<<<<<<< HEAD -======= - dependencies: - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/visitor-keys': 8.14.0 - - '@typescript-eslint/type-utils@7.16.1(eslint@8.57.0)(typescript@5.4.5)': ->>>>>>> main dependencies: '@typescript-eslint/types': 8.14.0 '@typescript-eslint/visitor-keys': 8.14.0 @@ -12903,20 +12773,12 @@ snapshots: '@typescript-eslint/types@5.62.0': {} -<<<<<<< HEAD -======= - '@typescript-eslint/types@7.16.1': {} - ->>>>>>> main '@typescript-eslint/types@8.12.2': {} '@typescript-eslint/types@8.14.0': {} -<<<<<<< HEAD '@typescript-eslint/types@8.18.0': {} -======= ->>>>>>> main '@typescript-eslint/typescript-estree@5.62.0(supports-color@9.4.0)(typescript@5.4.5)': dependencies: '@typescript-eslint/types': 5.62.0 @@ -12931,24 +12793,6 @@ snapshots: transitivePeerDependencies: - supports-color -<<<<<<< HEAD -======= - '@typescript-eslint/typescript-estree@7.16.1(typescript@5.4.5)': - dependencies: - '@typescript-eslint/types': 7.16.1 - '@typescript-eslint/visitor-keys': 7.16.1 - debug: 4.3.7(supports-color@9.4.0) - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.4.0(typescript@5.4.5) - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - ->>>>>>> main '@typescript-eslint/typescript-estree@8.12.2(typescript@5.4.5)': dependencies: '@typescript-eslint/types': 8.12.2 @@ -12965,7 +12809,6 @@ snapshots: - supports-color '@typescript-eslint/typescript-estree@8.14.0(typescript@5.4.5)': -<<<<<<< HEAD dependencies: '@typescript-eslint/types': 8.14.0 '@typescript-eslint/visitor-keys': 8.14.0 @@ -12981,34 +12824,6 @@ snapshots: - supports-color '@typescript-eslint/typescript-estree@8.18.0(typescript@5.4.5)': -======= - dependencies: - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/visitor-keys': 8.14.0 - debug: 4.3.7(supports-color@9.4.0) - fast-glob: 3.3.2 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.4.0(typescript@5.4.5) - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@7.16.1(eslint@8.57.0)(typescript@5.4.5)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 7.16.1 - '@typescript-eslint/types': 7.16.1 - '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.4.5) - eslint: 8.57.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/utils@8.12.2(eslint@8.57.0)(typescript@5.4.5)': ->>>>>>> main dependencies: '@typescript-eslint/types': 8.18.0 '@typescript-eslint/visitor-keys': 8.18.0 @@ -13033,7 +12848,6 @@ snapshots: - supports-color - typescript -<<<<<<< HEAD '@typescript-eslint/utils@8.14.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@1.21.0)) @@ -13041,20 +12855,10 @@ snapshots: '@typescript-eslint/types': 8.14.0 '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.4.5) eslint: 9.16.0(jiti@1.21.0) -======= - '@typescript-eslint/utils@8.14.0(eslint@8.57.0)(typescript@5.4.5)': - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.0) - '@typescript-eslint/scope-manager': 8.14.0 - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.4.5) - eslint: 8.57.0 ->>>>>>> main transitivePeerDependencies: - supports-color - typescript -<<<<<<< HEAD '@typescript-eslint/utils@8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@1.21.0)) @@ -13066,21 +12870,11 @@ snapshots: transitivePeerDependencies: - supports-color -======= ->>>>>>> main '@typescript-eslint/visitor-keys@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 -<<<<<<< HEAD -======= - '@typescript-eslint/visitor-keys@7.16.1': - dependencies: - '@typescript-eslint/types': 7.16.1 - eslint-visitor-keys: 3.4.3 - ->>>>>>> main '@typescript-eslint/visitor-keys@8.12.2': dependencies: '@typescript-eslint/types': 8.12.2 @@ -13091,14 +12885,11 @@ snapshots: '@typescript-eslint/types': 8.14.0 eslint-visitor-keys: 3.4.3 -<<<<<<< HEAD '@typescript-eslint/visitor-keys@8.18.0': dependencies: '@typescript-eslint/types': 8.18.0 eslint-visitor-keys: 4.2.0 -======= ->>>>>>> main '@typescript/analyze-trace@0.10.1': dependencies: chalk: 4.1.2 @@ -15026,11 +14817,11 @@ snapshots: dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@1.21.0)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.1 + '@eslint/config-array': 0.19.2 '@eslint/core': 0.9.1 '@eslint/eslintrc': 3.2.0 '@eslint/js': 9.16.0 - '@eslint/plugin-kit': 0.2.4 + '@eslint/plugin-kit': 0.2.5 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.1 From fa82495b39c32c6795880de1308c68cb267a8a28 Mon Sep 17 00:00:00 2001 From: JerryWu <409187100@qq.com> Date: Sat, 8 Feb 2025 14:16:13 +0800 Subject: [PATCH 19/19] upgrade --- .eslintignore | 1 + eslint.config.mjs | 77 +++++---- package.json | 7 +- packages/eslint-plugin-qwik/package.json | 3 +- pnpm-lock.yaml | 210 ++++++++++++++++++++++- tsconfig.json | 3 +- 6 files changed, 255 insertions(+), 46 deletions(-) diff --git a/.eslintignore b/.eslintignore index ec0b06b7b51..c054bc2ed06 100644 --- a/.eslintignore +++ b/.eslintignore @@ -31,3 +31,4 @@ starters/apps/base starters/apps/library starters/templates vite.config.ts +packages/eslint-plugin-qwik diff --git a/eslint.config.mjs b/eslint.config.mjs index 8cac28ea74d..62806d017bc 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -3,43 +3,50 @@ import tseslint from 'typescript-eslint'; import { fileURLToPath } from 'url'; import { dirname } from 'path'; import typescript from '@typescript-eslint/eslint-plugin'; +import { includeIgnoreFile } from '@eslint/compat'; const __dirname = dirname(fileURLToPath(import.meta.url)); import globals from 'globals'; - -export default tseslint.config(eslint.configs.recommended, tseslint.configs.recommended, { - languageOptions: { - parserOptions: { - sourceType: 'module', - ecmaFeatures: { - jsx: true, +const gitignorePath = fileURLToPath(import.meta.resolve('./.eslintignore')); +const gitignorePathConfig = includeIgnoreFile(gitignorePath); +export default tseslint.config( + gitignorePathConfig, + { + languageOptions: { + parserOptions: { + sourceType: 'module', + ecmaFeatures: { + jsx: true, + }, + globals: { + ...globals.node, + ...globals.es2021, + ...globals.browser, + }, + ecmaVersion: 2021, + project: ['./tsconfig.json'], + tsconfigRootDir: __dirname, }, - globals: { - ...globals.node, - ...globals.es2021, - ...globals.browser, - }, - ecmaVersion: 2021, - project: ['./tsconfig.json'], - tsconfigRootDir: __dirname, + }, + plugins: { '@typescript-eslint': typescript }, + rules: { + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-inferrable-types': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-empty-interface': 'off', + '@typescript-eslint/no-namespace': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-this-alias': 'off', + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + 'prefer-spread': 'off', + 'no-case-declarations': 'off', + 'no-console': 'off', + '@typescript-eslint/no-unused-vars': ['error'], + '@typescript-eslint/consistent-type-imports': 'warn', + '@typescript-eslint/no-unnecessary-condition': 'warn', }, }, - plugins: { '@typescript-eslint': typescript }, - rules: { - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-inferrable-types': 'off', - '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/no-empty-interface': 'off', - '@typescript-eslint/no-namespace': 'off', - '@typescript-eslint/no-empty-function': 'off', - '@typescript-eslint/no-this-alias': 'off', - '@typescript-eslint/ban-types': 'off', - '@typescript-eslint/ban-ts-comment': 'off', - 'prefer-spread': 'off', - 'no-case-declarations': 'off', - 'no-console': 'off', - '@typescript-eslint/no-unused-vars': ['error'], - '@typescript-eslint/consistent-type-imports': 'warn', - '@typescript-eslint/no-unnecessary-condition': 'warn', - }, -}); + eslint.configs.recommended, + tseslint.configs.recommended +); diff --git a/package.json b/package.json index 735c3c3ab9e..440738af604 100644 --- a/package.json +++ b/package.json @@ -115,6 +115,7 @@ "@changesets/get-github-info": "0.6.0", "@changesets/types": "6.0.0", "@clack/prompts": "0.7.0", + "@eslint/compat": "^1.2.6", "@eslint/eslintrc": "3.1.0", "@mdx-js/mdx": "3.0.1", "@microsoft/api-documenter": "7.24.2", @@ -136,9 +137,7 @@ "@types/semver": "7.5.8", "@types/tmp": "0.2.6", "@types/which-pm-runs": "1.0.2", - "@typescript-eslint/eslint-plugin": "8.18.0", - "typescript-eslint": "8.18.0", - "globals": "15.13.0", + "@typescript-eslint/eslint-plugin": "8.23.0", "all-contributors-cli": "6.26.1", "brotli": "1.3.3", "concurrently": "8.2.2", @@ -152,6 +151,7 @@ "eslint-plugin-qwik": "workspace:^", "execa": "8.0.1", "express": "4.20.0", + "globals": "15.13.0", "install": "0.13.0", "memfs": "4.14.0", "monaco-editor": "0.45.0", @@ -173,6 +173,7 @@ "tree-kill": "1.2.2", "tsx": "4.19.1", "typescript": "5.4.5", + "typescript-eslint": "8.23.0", "undici": "*", "vfile": "6.0.2", "vite": "5.3.5", diff --git a/packages/eslint-plugin-qwik/package.json b/packages/eslint-plugin-qwik/package.json index ab5ec4089f5..c2e131ceec4 100644 --- a/packages/eslint-plugin-qwik/package.json +++ b/packages/eslint-plugin-qwik/package.json @@ -14,7 +14,8 @@ "@types/estree": "1.0.5", "@typescript-eslint/rule-tester": "8.14.0", "redent": "4.0.0", - "@types/eslint": "9.6.1" + "@types/eslint": "9.6.1", + "@types/jsx-ast-utils": "3.3.1" }, "engines": { "node": ">=16.8.0 <18.0.0 || >=18.11" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 19818a04930..349e9f1ec91 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -43,6 +43,9 @@ importers: '@clack/prompts': specifier: 0.7.0 version: 0.7.0 + '@eslint/compat': + specifier: ^1.2.6 + version: 1.2.6(eslint@9.16.0(jiti@1.21.0)) '@eslint/eslintrc': specifier: 3.1.0 version: 3.1.0 @@ -107,8 +110,8 @@ importers: specifier: 1.0.2 version: 1.0.2 '@typescript-eslint/eslint-plugin': - specifier: 8.18.0 - version: 8.18.0(@typescript-eslint/parser@8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + specifier: 8.23.0 + version: 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) all-contributors-cli: specifier: 6.26.1 version: 6.26.1 @@ -215,8 +218,8 @@ importers: specifier: 5.4.5 version: 5.4.5 typescript-eslint: - specifier: 8.18.0 - version: 8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + specifier: 8.23.0 + version: 8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) undici: specifier: '*' version: 6.6.2 @@ -446,6 +449,9 @@ importers: '@types/estree': specifier: 1.0.5 version: 1.0.5 + '@types/jsx-ast-utils': + specifier: 3.3.1 + version: 3.3.1 '@typescript-eslint/rule-tester': specifier: 8.14.0 version: 8.14.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) @@ -506,7 +512,7 @@ importers: version: 20.14.11 '@typescript-eslint/eslint-plugin': specifier: 8.18.0 - version: 8.18.0(@typescript-eslint/parser@8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + version: 8.18.0(@typescript-eslint/parser@8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) autoprefixer: specifier: 10.4.19 version: 10.4.19(postcss@8.4.39) @@ -730,7 +736,7 @@ importers: version: 20.14.11 '@typescript-eslint/eslint-plugin': specifier: 8.18.0 - version: 8.18.0(@typescript-eslint/parser@8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + version: 8.18.0(@typescript-eslint/parser@8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) eslint: specifier: 9.16.0 version: 9.16.0(jiti@1.21.0) @@ -2323,6 +2329,15 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint/compat@1.2.6': + resolution: {integrity: sha512-k7HNCqApoDHM6XzT30zGoETj+D+uUcZUb+IVAJmar3u6bvHf7hhHJcWx09QHj4/a2qrKZMWU0E16tvkiAdv06Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^9.10.0 + peerDependenciesMeta: + eslint: + optional: true + '@eslint/config-array@0.19.2': resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3328,6 +3343,7 @@ packages: '@supabase/auth-helpers-shared@0.6.3': resolution: {integrity: sha512-xYQRLFeFkL4ZfwC7p9VKcarshj3FB2QJMgJPydvOY7J5czJe6xSG5/wM1z63RmAzGbCkKg+dzpq61oeSyWiGBQ==} + deprecated: This package is now deprecated - please use the @supabase/ssr package instead. peerDependencies: '@supabase/supabase-js': ^2.19.0 @@ -3460,6 +3476,9 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/jsx-ast-utils@3.3.1': + resolution: {integrity: sha512-au6/M8boVMhGJfZXghOLRBD4iKGxYJHF6fwFnVpUR6l1Pm51B6DG80ckwubjdankpVhIXJ1jgdGiQ0r717wIkg==} + '@types/leaflet@1.9.12': resolution: {integrity: sha512-BK7XS+NyRI291HIo0HCfE18Lp8oA30H1gpi1tf0mF3TgiCEzanQjOqNZ4x126SXzzi2oNSZhZ5axJp1k0iM6jg==} @@ -3582,6 +3601,14 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: 5.4.5 + '@typescript-eslint/eslint-plugin@8.23.0': + resolution: {integrity: sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: 5.4.5 + '@typescript-eslint/parser@8.18.0': resolution: {integrity: sha512-hgUZ3kTEpVzKaK3uNibExUYm6SKKOmTU2BOxBSvOYwtJEPdVQ70kZJpPjstlnhCHcuc2WGfSbpKlb/69ttyN5Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3589,6 +3616,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: 5.4.5 + '@typescript-eslint/parser@8.23.0': + resolution: {integrity: sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: 5.4.5 + '@typescript-eslint/rule-tester@8.14.0': resolution: {integrity: sha512-q5Gi0CMFLojXZMvdWTIjOcBtV3qUg2xtUJocBxkd6PZ5YfHw9bd/Q+P5vtBu1Mrjs8OhId5WpOaMqjbUXLLBYA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3607,6 +3641,10 @@ packages: resolution: {integrity: sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.23.0': + resolution: {integrity: sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/type-utils@8.18.0': resolution: {integrity: sha512-er224jRepVAVLnMF2Q7MZJCq5CsdH2oqjP4dT7K6ij09Kyd+R21r7UVJrF0buMVdZS5QRhDzpvzAxHxabQadow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3614,6 +3652,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: 5.4.5 + '@typescript-eslint/type-utils@8.23.0': + resolution: {integrity: sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: 5.4.5 + '@typescript-eslint/types@5.62.0': resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3630,6 +3675,10 @@ packages: resolution: {integrity: sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.23.0': + resolution: {integrity: sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@5.62.0': resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3663,6 +3712,12 @@ packages: peerDependencies: typescript: 5.4.5 + '@typescript-eslint/typescript-estree@8.23.0': + resolution: {integrity: sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: 5.4.5 + '@typescript-eslint/utils@8.12.2': resolution: {integrity: sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3682,6 +3737,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: 5.4.5 + '@typescript-eslint/utils@8.23.0': + resolution: {integrity: sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: 5.4.5 + '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3698,6 +3760,10 @@ packages: resolution: {integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.23.0': + resolution: {integrity: sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/analyze-trace@0.10.1': resolution: {integrity: sha512-RnlSOPh14QbopGCApgkSx5UBgGda5MX1cHqp2fsqfiDyCwGL/m1jaeB9fzu7didVS81LQqGZZuxFBcg8YU8EVw==} hasBin: true @@ -6921,6 +6987,7 @@ packages: lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. lodash.includes@4.3.0: resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} @@ -6936,6 +7003,7 @@ packages: lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. lodash.isinteger@4.0.4: resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} @@ -9333,6 +9401,12 @@ packages: peerDependencies: typescript: 5.4.5 + ts-api-utils@2.0.1: + resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: 5.4.5 + ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -9455,6 +9529,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: 5.4.5 + typescript-eslint@8.23.0: + resolution: {integrity: sha512-/LBRo3HrXr5LxmrdYSOCvoAMm7p2jNizNfbIpCgvG4HMsnoprRUOce/+8VJ9BDYWW68rqIENE/haVLWPeFZBVQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: 5.4.5 + typescript@5.4.5: resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} engines: {node: '>=14.17'} @@ -11213,6 +11294,10 @@ snapshots: '@eslint-community/regexpp@4.12.1': {} + '@eslint/compat@1.2.6(eslint@9.16.0(jiti@1.21.0))': + optionalDependencies: + eslint: 9.16.0(jiti@1.21.0) + '@eslint/config-array@0.19.2': dependencies: '@eslint/object-schema': 2.1.6 @@ -12585,6 +12670,11 @@ snapshots: '@types/json-schema@7.0.15': {} + '@types/jsx-ast-utils@3.3.1': + dependencies: + '@types/estree': 1.0.5 + '@types/estree-jsx': 1.0.5 + '@types/leaflet@1.9.12': dependencies: '@types/geojson': 7946.0.14 @@ -12720,6 +12810,40 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/eslint-plugin@8.18.0(@typescript-eslint/parser@8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': + dependencies: + '@eslint-community/regexpp': 4.11.1 + '@typescript-eslint/parser': 8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + '@typescript-eslint/scope-manager': 8.18.0 + '@typescript-eslint/type-utils': 8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + '@typescript-eslint/utils': 8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 8.18.0 + eslint: 9.16.0(jiti@1.21.0) + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + ts-api-utils: 1.4.0(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/type-utils': 8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + '@typescript-eslint/utils': 8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 8.23.0 + eslint: 9.16.0(jiti@1.21.0) + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + ts-api-utils: 2.0.1(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/parser@8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': dependencies: '@typescript-eslint/scope-manager': 8.18.0 @@ -12732,6 +12856,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': + dependencies: + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 8.23.0 + debug: 4.3.7(supports-color@9.4.0) + eslint: 9.16.0(jiti@1.21.0) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/rule-tester@8.14.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': dependencies: '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.4.5) @@ -12760,6 +12896,11 @@ snapshots: '@typescript-eslint/types': 8.18.0 '@typescript-eslint/visitor-keys': 8.18.0 + '@typescript-eslint/scope-manager@8.23.0': + dependencies: + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/visitor-keys': 8.23.0 + '@typescript-eslint/type-utils@8.18.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': dependencies: '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.4.5) @@ -12771,6 +12912,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': + dependencies: + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.4.5) + '@typescript-eslint/utils': 8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + debug: 4.3.7(supports-color@9.4.0) + eslint: 9.16.0(jiti@1.21.0) + ts-api-utils: 2.0.1(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/types@5.62.0': {} '@typescript-eslint/types@8.12.2': {} @@ -12779,6 +12931,8 @@ snapshots: '@typescript-eslint/types@8.18.0': {} + '@typescript-eslint/types@8.23.0': {} + '@typescript-eslint/typescript-estree@5.62.0(supports-color@9.4.0)(typescript@5.4.5)': dependencies: '@typescript-eslint/types': 5.62.0 @@ -12837,6 +12991,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.23.0(typescript@5.4.5)': + dependencies: + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/visitor-keys': 8.23.0 + debug: 4.3.7(supports-color@9.4.0) + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 2.0.1(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@8.12.2(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@1.21.0)) @@ -12870,6 +13038,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5)': + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@1.21.0)) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.4.5) + eslint: 9.16.0(jiti@1.21.0) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 @@ -12890,6 +13069,11 @@ snapshots: '@typescript-eslint/types': 8.18.0 eslint-visitor-keys: 4.2.0 + '@typescript-eslint/visitor-keys@8.23.0': + dependencies: + '@typescript-eslint/types': 8.23.0 + eslint-visitor-keys: 4.2.0 + '@typescript/analyze-trace@0.10.1': dependencies: chalk: 4.1.2 @@ -19591,6 +19775,10 @@ snapshots: dependencies: typescript: 5.4.5 + ts-api-utils@2.0.1(typescript@5.4.5): + dependencies: + typescript: 5.4.5 + ts-interface-checker@0.1.13: {} ts-morph@23.0.0: @@ -19717,6 +19905,16 @@ snapshots: transitivePeerDependencies: - supports-color + typescript-eslint@8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5): + dependencies: + '@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + '@typescript-eslint/parser': 8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + '@typescript-eslint/utils': 8.23.0(eslint@9.16.0(jiti@1.21.0))(typescript@5.4.5) + eslint: 9.16.0(jiti@1.21.0) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + typescript@5.4.5: {} ufo@1.5.4: {} diff --git a/tsconfig.json b/tsconfig.json index bb7e1c84ac0..651d73b660a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -61,6 +61,7 @@ "packages/create-qwik/dist", "packages/qwik/src", "packages/*/lib", - "scripts/eslint-docs.ts" + "scripts/eslint-docs.ts", + "packages/eslint-plugin-qwik" ] }