diff --git a/.changeset/brown-ants-burn.md b/.changeset/brown-ants-burn.md new file mode 100644 index 00000000..a0c2ae94 --- /dev/null +++ b/.changeset/brown-ants-burn.md @@ -0,0 +1,5 @@ +--- +'@tanstack/eslint-config': minor +--- + +chore: update @stylistic/eslint-plugin diff --git a/.changeset/slow-cougars-cut.md b/.changeset/slow-cougars-cut.md new file mode 100644 index 00000000..abeab9bb --- /dev/null +++ b/.changeset/slow-cougars-cut.md @@ -0,0 +1,6 @@ +--- +'@tanstack/config': minor +'@tanstack/eslint-config': minor +--- + +feat: add eslint-plugin-pnpm diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..dbb16dab --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,5 @@ +// @ts-check + +import { tanstackConfig } from './packages/eslint-config/src/index.js' + +export default [...tanstackConfig] diff --git a/integrations/react/tests/build.test.ts b/integrations/react/tests/build.test.ts index 38456dd9..474a9c85 100644 --- a/integrations/react/tests/build.test.ts +++ b/integrations/react/tests/build.test.ts @@ -1,4 +1,4 @@ -import { readdirSync, readFileSync } from 'node:fs' +import { readFileSync, readdirSync } from 'node:fs' import { fileURLToPath } from 'node:url' import { dirname, resolve } from 'node:path' import { describe, expect, it } from 'vitest' diff --git a/integrations/vanilla/tests/build.test.ts b/integrations/vanilla/tests/build.test.ts index 7942c1b3..84e0ce83 100644 --- a/integrations/vanilla/tests/build.test.ts +++ b/integrations/vanilla/tests/build.test.ts @@ -1,4 +1,4 @@ -import { readdirSync, readFileSync } from 'node:fs' +import { readFileSync, readdirSync } from 'node:fs' import { fileURLToPath } from 'node:url' import { dirname, resolve } from 'node:path' import { describe, expect, it } from 'vitest' diff --git a/integrations/vue/tests/build.test.ts b/integrations/vue/tests/build.test.ts index 056b4588..8691bf80 100644 --- a/integrations/vue/tests/build.test.ts +++ b/integrations/vue/tests/build.test.ts @@ -1,4 +1,4 @@ -import { readdirSync, readFileSync } from 'node:fs' +import { readFileSync, readdirSync } from 'node:fs' import { fileURLToPath } from 'node:url' import { dirname, resolve } from 'node:path' import { describe, expect, it } from 'vitest' diff --git a/package.json b/package.json index 2876beed..da26304c 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "test:ci": "nx run-many --targets=test:eslint,test:types,test:build,test:sherif,build", "test:build": "nx affected --target=test:build", "test:types": "nx affected --target=test:types", - "test:eslint": "nx affected --target=test:eslint", + "test:eslint": "eslint '**/*'", "test:format": "pnpm run prettier --check", "test:sherif": "sherif", "build": "nx affected --target=build", @@ -27,6 +27,12 @@ "changeset:version": "changeset version && pnpm install --no-frozen-lockfile && pnpm prettier:write", "changeset:publish": "changeset publish" }, + "nx": { + "includedScripts": [ + "test:eslint", + "test:sherif" + ] + }, "devDependencies": { "@changesets/cli": "catalog:", "@svitejs/changesets-changelog-github-compact": "catalog:", diff --git a/packages/config/package.json b/packages/config/package.json index 21cbb168..c589f6f3 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -16,7 +16,6 @@ }, "scripts": { "test:types": "tsc", - "test:eslint": "eslint ./src", "test:build": "publint --strict", "build": "vite build" }, diff --git a/packages/eslint-config/eslint.config.js b/packages/eslint-config/eslint.config.js deleted file mode 100644 index 0763486d..00000000 --- a/packages/eslint-config/eslint.config.js +++ /dev/null @@ -1,5 +0,0 @@ -// @ts-check - -import { tanstackConfig } from './src/index.js' - -export default [...tanstackConfig] diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index d95b4917..1bddd82e 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -16,7 +16,6 @@ }, "scripts": { "test:types": "tsc", - "test:eslint": "eslint ./src", "test:build": "publint --strict" }, "type": "module", @@ -41,9 +40,12 @@ "@stylistic/eslint-plugin": "catalog:", "eslint-plugin-import-x": "catalog:", "eslint-plugin-n": "catalog:", + "eslint-plugin-pnpm": "catalog:", "globals": "catalog:", + "jsonc-eslint-parser": "catalog:", "typescript-eslint": "catalog:", - "vue-eslint-parser": "catalog:" + "vue-eslint-parser": "catalog:", + "yaml-eslint-parser": "catalog:" }, "devDependencies": { "@types/eslint": "catalog:", diff --git a/packages/eslint-config/src/import.js b/packages/eslint-config/src/import.js index 8cdd6e99..0191ee8a 100644 --- a/packages/eslint-config/src/import.js +++ b/packages/eslint-config/src/import.js @@ -10,8 +10,6 @@ export const importRules = { 'import/newline-after-import': 'error', /** No require() or module.exports */ 'import/no-commonjs': 'error', - /** No import loops */ - 'import/no-cycle': 'error', /** Reports if a resolved path is imported more than once */ 'import/no-duplicates': 'error', /** Stylistic preference */ diff --git a/packages/eslint-config/src/index.js b/packages/eslint-config/src/index.js index db435e65..596c7c0a 100644 --- a/packages/eslint-config/src/index.js +++ b/packages/eslint-config/src/index.js @@ -1,8 +1,11 @@ import tseslint from 'typescript-eslint' -import vueparser from 'vue-eslint-parser' -import stylisticJs from '@stylistic/eslint-plugin' -import pluginImport from 'eslint-plugin-import-x' -import pluginNode from 'eslint-plugin-n' +import jsoncParser from 'jsonc-eslint-parser' +import vueParser from 'vue-eslint-parser' +import yamlParser from 'yaml-eslint-parser' +import stylisticPlugin from '@stylistic/eslint-plugin' +import importPlugin from 'eslint-plugin-import-x' +import nodePlugin from 'eslint-plugin-n' +import pnpmPlugin from 'eslint-plugin-pnpm' import globals from 'globals' import { javascriptRules } from './javascript.js' import { importRules } from './import.js' @@ -10,9 +13,6 @@ import { typescriptRules } from './typescript.js' import { nodeRules } from './node.js' import { stylisticRules } from './stylistic.js' -const JS_GLOB_INCLUDE = ['**/*.{js,ts,tsx}'] -const VUE_GLOB_INCLUDE = ['**/*.vue'] - const GLOB_EXCLUDE = [ '**/.nx/**', '**/.svelte-kit/**', @@ -32,10 +32,10 @@ const jsRules = { } const jsPlugins = { - '@stylistic/js': stylisticJs, + '@stylistic': stylisticPlugin, '@typescript-eslint': tseslint.plugin, - import: pluginImport, - node: pluginNode, + import: importPlugin, + node: nodePlugin, } /** @type {import('eslint').Linter.Config[]} */ @@ -45,8 +45,8 @@ export const tanstackConfig = [ ignores: GLOB_EXCLUDE, }, { - name: 'tanstack/setup', - files: JS_GLOB_INCLUDE, + name: 'tanstack/javascript', + files: ['**/*.{js,ts,tsx}'], languageOptions: { sourceType: 'module', ecmaVersion: 2020, @@ -66,9 +66,9 @@ export const tanstackConfig = [ }, { name: 'tanstack/vue', - files: VUE_GLOB_INCLUDE, + files: ['**/*.vue'], languageOptions: { - parser: vueparser, + parser: vueParser, parserOptions: { sourceType: 'module', ecmaVersion: 2020, @@ -84,4 +84,33 @@ export const tanstackConfig = [ plugins: jsPlugins, rules: jsRules, }, + { + name: 'tanstack/package-json', + files: ['package.json', '**/package.json'], + languageOptions: { + parser: jsoncParser, + }, + plugins: { + pnpm: pnpmPlugin, + }, + rules: { + 'pnpm/json-enforce-catalog': 'error', + 'pnpm/json-valid-catalog': 'error', + 'pnpm/json-prefer-workspace-settings': 'error', + }, + }, + { + name: 'tanstack/pnpm-workspace', + files: ['pnpm-workspace.yaml'], + languageOptions: { + parser: yamlParser, + }, + plugins: { + pnpm: pnpmPlugin, + }, + rules: { + 'pnpm/yaml-no-unused-catalog-item': 'error', + 'pnpm/yaml-no-duplicate-catalog-item': 'error', + }, + }, ] diff --git a/packages/eslint-config/src/stylistic.js b/packages/eslint-config/src/stylistic.js index 51160dfd..ca00adb7 100644 --- a/packages/eslint-config/src/stylistic.js +++ b/packages/eslint-config/src/stylistic.js @@ -3,5 +3,5 @@ /** @type {import('eslint').Linter.RulesRecord} */ export const stylisticRules = { /** Enforce consistency of spacing after the start of a comment */ - '@stylistic/js/spaced-comment': 'error', + '@stylistic/spaced-comment': 'error', } diff --git a/packages/publish-config/eslint.config.js b/packages/publish-config/eslint.config.js deleted file mode 100644 index b97d8b04..00000000 --- a/packages/publish-config/eslint.config.js +++ /dev/null @@ -1,5 +0,0 @@ -// @ts-check - -import { tanstackConfig } from '../eslint-config/src/index.js' - -export default [...tanstackConfig] diff --git a/packages/publish-config/package.json b/packages/publish-config/package.json index 05c14aee..2df64af5 100644 --- a/packages/publish-config/package.json +++ b/packages/publish-config/package.json @@ -16,7 +16,6 @@ }, "scripts": { "test:types": "tsc", - "test:eslint": "eslint ./src", "test:build": "publint --strict" }, "type": "module", diff --git a/packages/typedoc-config/eslint.config.js b/packages/typedoc-config/eslint.config.js deleted file mode 100644 index b97d8b04..00000000 --- a/packages/typedoc-config/eslint.config.js +++ /dev/null @@ -1,5 +0,0 @@ -// @ts-check - -import { tanstackConfig } from '../eslint-config/src/index.js' - -export default [...tanstackConfig] diff --git a/packages/typedoc-config/package.json b/packages/typedoc-config/package.json index 25d24d27..2ae67d67 100644 --- a/packages/typedoc-config/package.json +++ b/packages/typedoc-config/package.json @@ -16,7 +16,6 @@ }, "scripts": { "test:types": "tsc", - "test:eslint": "eslint ./src", "test:build": "publint --strict" }, "type": "module", diff --git a/packages/vite-config/eslint.config.js b/packages/vite-config/eslint.config.js deleted file mode 100644 index b97d8b04..00000000 --- a/packages/vite-config/eslint.config.js +++ /dev/null @@ -1,5 +0,0 @@ -// @ts-check - -import { tanstackConfig } from '../eslint-config/src/index.js' - -export default [...tanstackConfig] diff --git a/packages/vite-config/package.json b/packages/vite-config/package.json index c36af32c..8e3ee3ab 100644 --- a/packages/vite-config/package.json +++ b/packages/vite-config/package.json @@ -16,7 +16,6 @@ }, "scripts": { "test:types": "tsc", - "test:eslint": "eslint ./src", "test:build": "publint --strict" }, "type": "module", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5a5961fb..b53c4a6d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,8 +16,8 @@ catalogs: specifier: ^9.31.0 version: 9.31.0 '@stylistic/eslint-plugin': - specifier: ^4.4.1 - version: 4.4.1 + specifier: ^5.2.0 + version: 5.2.0 '@svitejs/changesets-changelog-github-compact': specifier: ^1.2.0 version: 1.2.0 @@ -57,12 +57,18 @@ catalogs: eslint-plugin-n: specifier: ^17.21.0 version: 17.21.0 + eslint-plugin-pnpm: + specifier: ^1.0.0 + version: 1.0.0 globals: specifier: ^16.3.0 version: 16.3.0 jsdom: specifier: ^26.1.0 version: 26.1.0 + jsonc-eslint-parser: + specifier: ^2.4.0 + version: 2.4.0 jsonfile: specifier: ^6.1.0 version: 6.1.0 @@ -132,6 +138,9 @@ catalogs: vue-eslint-parser: specifier: ^10.2.0 version: 10.2.0 + yaml-eslint-parser: + specifier: ^1.3.0 + version: 1.3.0 importers: @@ -256,22 +265,31 @@ importers: version: 9.31.0 '@stylistic/eslint-plugin': specifier: 'catalog:' - version: 4.4.1(eslint@9.31.0)(typescript@5.8.3) + version: 5.2.0(eslint@9.31.0) eslint-plugin-import-x: specifier: 'catalog:' version: 4.16.1(@typescript-eslint/utils@8.37.0(eslint@9.31.0)(typescript@5.8.3))(eslint@9.31.0) eslint-plugin-n: specifier: 'catalog:' version: 17.21.0(eslint@9.31.0)(typescript@5.8.3) + eslint-plugin-pnpm: + specifier: 'catalog:' + version: 1.0.0(eslint@9.31.0) globals: specifier: 'catalog:' version: 16.3.0 + jsonc-eslint-parser: + specifier: 'catalog:' + version: 2.4.0 typescript-eslint: specifier: 'catalog:' version: 8.37.0(eslint@9.31.0)(typescript@5.8.3) vue-eslint-parser: specifier: 'catalog:' version: 10.2.0(eslint@9.31.0) + yaml-eslint-parser: + specifier: 'catalog:' + version: 1.3.0 devDependencies: '@types/eslint': specifier: 'catalog:' @@ -1018,8 +1036,8 @@ packages: '@sinclair/typebox@0.34.38': resolution: {integrity: sha512-HpkxMmc2XmZKhvaKIZZThlHmx1L0I/V1hWK1NubtlFnr6ZqdiOpV72TKudZUNQjZNsyDBay72qFEhEvb+bcwcA==} - '@stylistic/eslint-plugin@4.4.1': - resolution: {integrity: sha512-CEigAk7eOLyHvdgmpZsKFwtiqS2wFwI1fn4j09IU9GmD4euFM4jEBAViWeCqaNLlbX2k2+A/Fq9cje4HQBXuJQ==} + '@stylistic/eslint-plugin@5.2.0': + resolution: {integrity: sha512-RCEdbREv9EBiToUBQTlRhVYKG093I6ZnnQ990j08eJ6uRZh71DXkOnoxtTLfDQ6utVCVQzrhZFHZP0zfrfOIjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=9.0.0' @@ -1742,6 +1760,11 @@ packages: peerDependencies: eslint: '>=8.23.0' + eslint-plugin-pnpm@1.0.0: + resolution: {integrity: sha512-tyEA10k7psB9HFCx8R4/bU4JS2tSKfXaCnrCcis+1R4FucfMIc6HgcFl4msZbwY2I0D9Vec3xAEkXV0aPechhQ==} + peerDependencies: + eslint: ^9.0.0 + eslint-scope@8.4.0: resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1768,6 +1791,10 @@ packages: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} 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} + esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -1842,6 +1869,10 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + find-up-simple@1.0.1: + resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} + engines: {node: '>=18'} + find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -2133,6 +2164,10 @@ packages: engines: {node: '>=6'} hasBin: true + jsonc-eslint-parser@2.4.0: + resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} @@ -2426,6 +2461,10 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} @@ -2433,6 +2472,9 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + pnpm-workspace-yaml@1.0.0: + resolution: {integrity: sha512-2RKg3khFgX/oeKIQnxxlj+OUoKbaZjBt7EsmQiLfl8AHZKMIpLmXLRPptZ5eq2Rlumh2gILs6OWNky5dzP+f8A==} + postcss@8.5.6: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} @@ -3082,6 +3124,10 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yaml-eslint-parser@1.3.0: + resolution: {integrity: sha512-E/+VitOorXSLiAqtTd7Yqax0/pAS3xaYMP+AUUJGOK1OZG3rhcj9fcJOM5HJ2VrP1FrStVCWr1muTfQCdj4tAA==} + engines: {node: ^14.17.0 || >=16.0.0} + yaml@2.8.0: resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} engines: {node: '>= 14.6'} @@ -3819,17 +3865,15 @@ snapshots: '@sinclair/typebox@0.34.38': {} - '@stylistic/eslint-plugin@4.4.1(eslint@9.31.0)(typescript@5.8.3)': + '@stylistic/eslint-plugin@5.2.0(eslint@9.31.0)': dependencies: - '@typescript-eslint/utils': 8.37.0(eslint@9.31.0)(typescript@5.8.3) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0) + '@typescript-eslint/types': 8.37.0 eslint: 9.31.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 - picomatch: 4.0.2 - transitivePeerDependencies: - - supports-color - - typescript + picomatch: 4.0.3 '@svitejs/changesets-changelog-github-compact@1.2.0': dependencies: @@ -4607,6 +4651,16 @@ snapshots: transitivePeerDependencies: - typescript + eslint-plugin-pnpm@1.0.0(eslint@9.31.0): + dependencies: + eslint: 9.31.0 + find-up-simple: 1.0.1 + jsonc-eslint-parser: 2.4.0 + pathe: 2.0.3 + pnpm-workspace-yaml: 1.0.0 + tinyglobby: 0.2.14 + yaml-eslint-parser: 1.3.0 + eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 @@ -4662,6 +4716,12 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 4.2.1 + espree@9.6.1: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 3.4.3 + esprima@4.0.1: {} esquery@1.6.0: @@ -4726,6 +4786,8 @@ snapshots: dependencies: to-regex-range: 5.0.1 + find-up-simple@1.0.1: {} + find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -4994,6 +5056,13 @@ snapshots: json5@2.2.3: {} + jsonc-eslint-parser@2.4.0: + dependencies: + acorn: 8.15.0 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.7.2 + jsonc-parser@3.2.0: {} jsonfile@4.0.0: @@ -5299,6 +5368,8 @@ snapshots: picomatch@4.0.2: {} + picomatch@4.0.3: {} + pify@4.0.1: {} pkg-types@1.3.1: @@ -5307,6 +5378,10 @@ snapshots: mlly: 1.7.4 pathe: 2.0.3 + pnpm-workspace-yaml@1.0.0: + dependencies: + yaml: 2.8.0 + postcss@8.5.6: dependencies: nanoid: 3.3.11 @@ -5913,6 +5988,11 @@ snapshots: yallist@4.0.0: {} + yaml-eslint-parser@1.3.0: + dependencies: + eslint-visitor-keys: 3.4.3 + yaml: 2.8.0 + yaml@2.8.0: {} yargs-parser@21.1.1: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 0c0c4b59..7f886e18 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -6,32 +6,25 @@ catalog: '@changesets/cli': ^2.29.5 '@commitlint/parse': ^19.8.1 '@eslint/js': ^9.31.0 - '@stylistic/eslint-plugin': ^4.4.1 + '@stylistic/eslint-plugin': ^5.2.0 '@svitejs/changesets-changelog-github-compact': ^1.2.0 '@tanstack/query-core': ^5.83.0 '@types/eslint': ^9.6.1 - '@types/interpret': ^1.1.3 '@types/jsonfile': ^6.1.4 - '@types/liftoff': ^4.0.3 - '@types/minimist': ^1.2.5 '@types/node': ^24.0.15 '@types/react': ^19.1.8 '@types/react-dom': ^19.1.6 '@types/semver': ^7.7.0 - '@types/v8flags': ^3.1.3 '@vitejs/plugin-react': ^4.7.0 '@vitejs/plugin-vue': ^5.2.4 - commander: ^13.1.0 - esbuild-register: ^3.6.0 eslint: ^9.31.0 eslint-plugin-import-x: ^4.16.1 eslint-plugin-n: ^17.21.0 + eslint-plugin-pnpm: ^1.0.0 globals: ^16.3.0 - interpret: ^3.1.1 jsdom: ^26.1.0 + jsonc-eslint-parser: ^2.4.0 jsonfile: ^6.1.0 - liftoff: ^5.0.1 - minimist: ^1.2.8 nx: ^21.3.0 prettier: ^3.6.2 publint: ^0.3.12 @@ -47,7 +40,6 @@ catalog: typedoc-plugin-markdown: 4.4.2 typescript: ^5.8.2 typescript-eslint: ^8.37.0 - v8flags: ^4.0.1 vite: ^6.3.5 vite-plugin-dts: 4.2.3 vite-plugin-externalize-deps: ^0.9.0 @@ -55,3 +47,4 @@ catalog: vitest: ^3.2.4 vue: ^3.5.17 vue-eslint-parser: ^10.2.0 + yaml-eslint-parser: ^1.3.0 diff --git a/tsconfig.json b/tsconfig.json index c5f9527c..02396232 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -23,5 +23,5 @@ "strict": true, "target": "ES2020" }, - "include": ["prettier.config.js", "tanstack.config.js"] + "include": ["eslint.config.js", "prettier.config.js", "tanstack.config.js"] }