@rootreeweb/linting 5.6.0 → 5.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/dist/esm/eslint/astro.d.ts.map +1 -1
- package/dist/esm/eslint/astro.js +1 -14
- package/dist/esm/eslint/astro.js.map +1 -1
- package/dist/esm/eslint/basic.d.ts.map +1 -1
- package/dist/esm/eslint/basic.js +12 -6
- package/dist/esm/eslint/basic.js.map +1 -1
- package/dist/esm/eslint/next.js +1 -1
- package/dist/esm/eslint/next.js.map +1 -1
- package/dist/esm/eslint/react.d.ts.map +1 -1
- package/dist/esm/eslint/react.js +3 -11
- package/dist/esm/eslint/react.js.map +1 -1
- package/dist/esm/stylelint/tailwind.d.ts.map +1 -1
- package/dist/esm/stylelint/tailwind.js +1 -0
- package/dist/esm/stylelint/tailwind.js.map +1 -1
- package/package.json +15 -16
- package/dist/esm/eslint/plugins.d.ts +0 -3
- package/dist/esm/eslint/plugins.d.ts.map +0 -1
- package/dist/esm/eslint/plugins.js +0 -3
- package/dist/esm/eslint/plugins.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @rootreeweb/linting
|
|
2
2
|
|
|
3
|
+
## 5.7.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Fix rules that were silently not running:
|
|
8
|
+
|
|
9
|
+
- `import/no-cycle` and other `import/*` rules that read imported modules now parse TypeScript files, so cycles in TS code are reported.
|
|
10
|
+
- `.jsx` files are now linted by `basic`, and Next.js rules apply to JS/JSX files as well as TS/TSX.
|
|
11
|
+
- `react/boolean-prop-naming` now checks TypeScript prop types.
|
|
12
|
+
- `stylelintTailwind` reports unknown at-rules as warnings, matching the base config.
|
|
13
|
+
- Remove the unused jsx-a11y plugin swap from the Astro config.
|
|
14
|
+
- Stop exempting root-level `test.ts`/`test.tsx` from type-aware rules; this was a workaround for this package's own tests.
|
|
15
|
+
|
|
16
|
+
Projects may see new `import/no-cycle`, `import/named` and `react/boolean-prop-naming` reports after upgrading.
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- Chore: Dependency updates
|
|
21
|
+
|
|
22
|
+
- Remove `eslint-plugin-react-compiler`; its checks now come from the `eslint-plugin-react-hooks` recommended preset.
|
|
23
|
+
|
|
3
24
|
## 5.6.0
|
|
4
25
|
|
|
5
26
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astro.d.ts","sourceRoot":"","sources":["../../../src/eslint/astro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"astro.d.ts","sourceRoot":"","sources":["../../../src/eslint/astro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAQrC,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAU/B,CAAC"}
|
package/dist/esm/eslint/astro.js
CHANGED
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
//eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
3
3
|
// @ts-ignore
|
|
4
4
|
import { configs } from "eslint-plugin-astro";
|
|
5
|
-
import { jsxA11y } from "./plugins.js";
|
|
6
5
|
import { excludePackageJsonFromAll } from "./utils.js";
|
|
7
|
-
const
|
|
6
|
+
export const astro = excludePackageJsonFromAll([
|
|
8
7
|
...configs["flat/all"],
|
|
9
8
|
...configs["flat/jsx-a11y-strict"],
|
|
10
9
|
{
|
|
@@ -15,16 +14,4 @@ const astroBase = excludePackageJsonFromAll([
|
|
|
15
14
|
},
|
|
16
15
|
{ ignores: ["**/*.d.ts"] },
|
|
17
16
|
]);
|
|
18
|
-
export const astro = astroBase.map((config) => {
|
|
19
|
-
if (config.plugins?.["jsx-a11y"]) {
|
|
20
|
-
return {
|
|
21
|
-
...config,
|
|
22
|
-
plugins: {
|
|
23
|
-
...config.plugins,
|
|
24
|
-
"jsx-a11y": jsxA11y,
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
return config;
|
|
29
|
-
});
|
|
30
17
|
//# sourceMappingURL=astro.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astro.js","sourceRoot":"","sources":["../../../src/eslint/astro.ts"],"names":[],"mappings":"AACA,kIAAkI;AAClI,4DAA4D;AAC5D,aAAa;AACb,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"astro.js","sourceRoot":"","sources":["../../../src/eslint/astro.ts"],"names":[],"mappings":"AACA,kIAAkI;AAClI,4DAA4D;AAC5D,aAAa;AACb,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,CAAC,MAAM,KAAK,GAAoB,yBAAyB,CAAC;IAC/D,GAAG,OAAO,CAAC,UAAU,CAAC;IACtB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAClC;QACC,KAAK,EAAE;YACN,sBAAsB,EAAE,KAAK,EAAE,0CAA0C;YACzE,kCAAkC,EAAE,KAAK;SACzC;KACD;IACD,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE;CAC1B,CAAC,CAAC","sourcesContent":["import type { Linter } from \"eslint\";\n// CJS Workaround. Seems like only the default exists in the CJS package, not using expect error because there is no error in ESM.\n//eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { configs } from \"eslint-plugin-astro\";\n\nimport { excludePackageJsonFromAll } from \"./utils.js\";\n\nexport const astro: Linter.Config[] = excludePackageJsonFromAll([\n\t...configs[\"flat/all\"],\n\t...configs[\"flat/jsx-a11y-strict\"],\n\t{\n\t\trules: {\n\t\t\t\"import/no-unresolved\": \"off\", //These rules conflict with astro:content.\n\t\t\t\"sonarjs/no-implicit-dependencies\": \"off\",\n\t\t},\n\t},\n\t{ ignores: [\"**/*.d.ts\"] },\n]);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../../src/eslint/basic.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAmBrC,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../../src/eslint/basic.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAmBrC,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAkJZ,CAAC"}
|
package/dist/esm/eslint/basic.js
CHANGED
|
@@ -9,7 +9,7 @@ import security from "eslint-plugin-security";
|
|
|
9
9
|
import sonarjs from "eslint-plugin-sonarjs";
|
|
10
10
|
import { defineConfig } from "eslint/config";
|
|
11
11
|
import globals from "globals";
|
|
12
|
-
import
|
|
12
|
+
import { configs as tseslintConfigs } from "typescript-eslint";
|
|
13
13
|
import { packageJson } from "./packageJson.js";
|
|
14
14
|
import { applyPatches } from "./patches/index.js";
|
|
15
15
|
import { excludePackageJsonFromAll } from "./utils.js";
|
|
@@ -17,8 +17,8 @@ import { excludePackageJsonFromAll } from "./utils.js";
|
|
|
17
17
|
applyPatches({ sonarjs: sonarjs });
|
|
18
18
|
export const basic = excludePackageJsonFromAll([
|
|
19
19
|
eslint.configs.recommended,
|
|
20
|
-
...
|
|
21
|
-
...
|
|
20
|
+
...tseslintConfigs.strictTypeChecked,
|
|
21
|
+
...tseslintConfigs.stylisticTypeChecked,
|
|
22
22
|
importPlugin.flatConfigs.recommended,
|
|
23
23
|
security.configs.recommended,
|
|
24
24
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
@@ -61,6 +61,10 @@ export const basic = excludePackageJsonFromAll([
|
|
|
61
61
|
"sonarjs/todo-tag": "warn",
|
|
62
62
|
},
|
|
63
63
|
settings: {
|
|
64
|
+
// Without this, import/* rules can't parse imported TS modules (e.g. no-cycle never fires).
|
|
65
|
+
"import/parsers": {
|
|
66
|
+
"@typescript-eslint/parser": [".ts", ".tsx", ".mts", ".cts"],
|
|
67
|
+
},
|
|
64
68
|
"import/resolver": {
|
|
65
69
|
node: {
|
|
66
70
|
extensions: [".js", ".jsx", ".ts", ".tsx", ".svg", ".jpg", ".png"],
|
|
@@ -72,6 +76,8 @@ export const basic = excludePackageJsonFromAll([
|
|
|
72
76
|
"import/resolver-next": [createTypeScriptImportResolver({})],
|
|
73
77
|
},
|
|
74
78
|
},
|
|
79
|
+
// Flat config only matches .js/.mjs/.cjs and the TS extensions by default.
|
|
80
|
+
{ files: ["**/*.jsx"] },
|
|
75
81
|
{
|
|
76
82
|
languageOptions: {
|
|
77
83
|
ecmaVersion: 2024,
|
|
@@ -127,14 +133,14 @@ export const basic = excludePackageJsonFromAll([
|
|
|
127
133
|
},
|
|
128
134
|
},
|
|
129
135
|
...defineConfig({
|
|
130
|
-
extends: [
|
|
136
|
+
extends: [tseslintConfigs.disableTypeChecked],
|
|
131
137
|
files: [
|
|
132
138
|
"**/*.js",
|
|
139
|
+
"**/*.jsx",
|
|
140
|
+
"**/*.mjs",
|
|
133
141
|
"**/*.astro",
|
|
134
142
|
"**/*.cjs",
|
|
135
143
|
"**/*.config.ts",
|
|
136
|
-
"test.ts",
|
|
137
|
-
"test.tsx",
|
|
138
144
|
],
|
|
139
145
|
rules: {
|
|
140
146
|
"@typescript-eslint/explicit-module-boundary-types": "off",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../src/eslint/basic.ts"],"names":[],"mappings":"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","sourcesContent":["import eslint from \"@eslint/js\";\nimport vitest from \"@vitest/eslint-plugin\";\nimport type { Linter } from \"eslint\";\nimport { createTypeScriptImportResolver } from \"eslint-import-resolver-typescript\";\nimport importPlugin from \"eslint-plugin-import\";\nimport perfectionist from \"eslint-plugin-perfectionist\";\n// @ts-expect-error TS7016 Can't get these types to work.\nimport pluginPromise from \"eslint-plugin-promise\";\nimport security from \"eslint-plugin-security\";\nimport sonarjs from \"eslint-plugin-sonarjs\";\nimport { defineConfig } from \"eslint/config\";\nimport globals from \"globals\";\nimport tseslint from \"typescript-eslint\";\n\nimport { packageJson } from \"./packageJson.js\";\nimport { applyPatches } from \"./patches/index.js\";\nimport { excludePackageJsonFromAll } from \"./utils.js\";\n\n// Apply all custom plugin patches before building configs.\napplyPatches({ sonarjs: sonarjs });\n\nexport const basic: Linter.Config[] = excludePackageJsonFromAll([\n\teslint.configs.recommended,\n\t...tseslint.configs.strictTypeChecked,\n\t...tseslint.configs.stylisticTypeChecked,\n\timportPlugin.flatConfigs.recommended,\n\tsecurity.configs.recommended,\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\tpluginPromise.configs[\"flat/recommended\"],\n\t// eslint-disable-next-line import/no-named-as-default-member\n\tperfectionist.configs[\"recommended-natural\"],\n\t...defineConfig({\n\t\tplugins: { vitest },\n\t\trules: {\n\t\t\t...vitest.configs.recommended.rules,\n\t\t\t\"vitest/valid-expect\": [\"warn\", { maxArgs: 2 }],\n\t\t},\n\t}),\n\tsonarjs.configs.recommended,\n\t{\n\t\trules: {\n\t\t\t\"import/first\": \"error\",\n\t\t\t\"import/newline-after-import\": \"error\",\n\t\t\t\"import/no-cycle\": \"error\",\n\t\t\t\"import/no-deprecated\": \"warn\",\n\t\t\t\"import/no-duplicates\": \"error\",\n\t\t\t\"import/no-useless-path-segments\": \"error\",\n\t\t\t\"perfectionist/sort-imports\": \"off\", // Conflict with the prettier ordering\n\t\t\t\"perfectionist/sort-named-imports\": \"off\",\n\t\t\t\"promise/always-return\": \"off\",\n\t\t\t\"promise/catch-or-return\": \"off\",\n\t\t\t\"sonarjs/argument-type\": \"off\", // Disabled: conflicts with the internal includes definition.\n\t\t\t\"sonarjs/assertions-in-tests\": \"off\",\n\t\t\t\"sonarjs/cognitive-complexity\": \"warn\",\n\t\t\t\"sonarjs/deprecation\": \"off\", // Double coverage with @typescript-eslint/no-deprecated\n\t\t\t\"sonarjs/no-control-regex\": \"off\", // Double coverage\n\t\t\t\"sonarjs/no-ignored-exceptions\": \"warn\",\n\t\t\t\"sonarjs/no-implicit-dependencies\": \"warn\",\n\t\t\t\"sonarjs/no-os-command-from-path\": \"warn\",\n\t\t\t\"sonarjs/no-unused-vars\": \"off\", // Double coverage\n\t\t\t\"sonarjs/prefer-read-only-props\": \"warn\",\n\t\t\t\"sonarjs/prefer-single-boolean-return\": \"off\",\n\t\t\t\"sonarjs/pseudo-random\": \"warn\",\n\t\t\t\"sonarjs/slow-regex\": \"warn\",\n\t\t\t\"sonarjs/todo-tag\": \"warn\",\n\t\t},\n\t\tsettings: {\n\t\t\t\"import/resolver\": {\n\t\t\t\tnode: {\n\t\t\t\t\textensions: [\".js\", \".jsx\", \".ts\", \".tsx\", \".svg\", \".jpg\", \".png\"],\n\t\t\t\t},\n\t\t\t\ttypescript: {\n\t\t\t\t\textensions: [\".js\", \".jsx\", \".ts\", \".tsx\", \".svg\", \".jpg\", \".png\"],\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"import/resolver-next\": [createTypeScriptImportResolver({})],\n\t\t},\n\t},\n\t{\n\t\tlanguageOptions: {\n\t\t\tecmaVersion: 2024,\n\t\t\tglobals: {\n\t\t\t\t...globals.node,\n\t\t\t\t...globals.browser,\n\t\t\t},\n\t\t\tparserOptions: {\n\t\t\t\tprojectService: true,\n\t\t\t\t// CJS Workaround\n\t\t\t\t// eslint-disable-next-line\n\t\t\t\t// @ts-ignore\n\t\t\t\ttsconfigRootDir: import.meta.dirname,\n\t\t\t},\n\t\t\tsourceType: \"module\",\n\t\t},\n\t\trules: {\n\t\t\t\"@typescript-eslint/consistent-type-definitions\": [\"error\", \"type\"],\n\t\t\t\"@typescript-eslint/consistent-type-imports\": \"error\",\n\t\t\t\"@typescript-eslint/explicit-module-boundary-types\": \"warn\",\n\t\t\t\"@typescript-eslint/no-base-to-string\": \"warn\",\n\t\t\t\"@typescript-eslint/no-explicit-any\": \"warn\",\n\t\t\t\"@typescript-eslint/no-floating-promises\": \"warn\",\n\t\t\t\"@typescript-eslint/no-misused-spread\": \"warn\",\n\t\t\t\"@typescript-eslint/no-shadow\": \"error\",\n\t\t\t\"@typescript-eslint/no-unnecessary-condition\": \"warn\",\n\t\t\t\"@typescript-eslint/no-unnecessary-type-parameters\": \"off\",\n\t\t\t\"@typescript-eslint/no-unsafe-argument\": \"warn\",\n\t\t\t\"@typescript-eslint/no-unsafe-assignment\": \"warn\",\n\t\t\t\"@typescript-eslint/no-unsafe-call\": \"warn\",\n\t\t\t\"@typescript-eslint/no-unsafe-member-access\": \"warn\",\n\t\t\t\"@typescript-eslint/no-unsafe-return\": \"warn\",\n\t\t\t\"@typescript-eslint/no-unused-vars\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\targs: \"all\",\n\t\t\t\t\targsIgnorePattern: \"^_\",\n\t\t\t\t\tcaughtErrors: \"all\",\n\t\t\t\t\tcaughtErrorsIgnorePattern: \"^_\",\n\t\t\t\t\tdestructuredArrayIgnorePattern: \"^_\",\n\t\t\t\t\tignoreRestSiblings: true,\n\t\t\t\t\tvarsIgnorePattern: \"^_\",\n\t\t\t\t},\n\t\t\t],\n\t\t\t\"@typescript-eslint/prefer-nullish-coalescing\": \"warn\",\n\t\t\t\"@typescript-eslint/require-await\": \"warn\",\n\t\t\t\"@typescript-eslint/restrict-template-expressions\": [\n\t\t\t\t\"warn\",\n\t\t\t\t{ allowNumber: true },\n\t\t\t],\n\t\t\t\"no-console\": [\"warn\", { allow: [\"warn\", \"error\"] }],\n\t\t\t\"no-shadow\": \"off\",\n\t\t},\n\t},\n\t...defineConfig({\n\t\textends: [tseslint.configs.disableTypeChecked],\n\t\tfiles: [\n\t\t\t\"**/*.js\",\n\t\t\t\"**/*.astro\",\n\t\t\t\"**/*.cjs\",\n\t\t\t\"**/*.config.ts\",\n\t\t\t\"test.ts\",\n\t\t\t\"test.tsx\",\n\t\t],\n\t\trules: {\n\t\t\t\"@typescript-eslint/explicit-module-boundary-types\": \"off\",\n\t\t},\n\t}),\n\t...packageJson,\n\t// Global Ignores\n\t{\n\t\tignores: [\n\t\t\t\"ds-bundle/**/*\",\n\t\t\t\"dist/**/*\",\n\t\t\t\".tsup/**/*\",\n\t\t\t\".yarn/**/*\",\n\t\t\t\".next/**/*\",\n\t\t\t\".astro/**/*\",\n\t\t\t\"vendor/**/*\",\n\t\t\t\"playwright-report/**/*\",\n\t\t\t\"coverage/**/*\",\n\t\t],\n\t},\n]);\n"]}
|
|
1
|
+
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../src/eslint/basic.ts"],"names":[],"mappings":"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","sourcesContent":["import eslint from \"@eslint/js\";\nimport vitest from \"@vitest/eslint-plugin\";\nimport type { Linter } from \"eslint\";\nimport { createTypeScriptImportResolver } from \"eslint-import-resolver-typescript\";\nimport importPlugin from \"eslint-plugin-import\";\nimport perfectionist from \"eslint-plugin-perfectionist\";\n// @ts-expect-error TS7016 Can't get these types to work.\nimport pluginPromise from \"eslint-plugin-promise\";\nimport security from \"eslint-plugin-security\";\nimport sonarjs from \"eslint-plugin-sonarjs\";\nimport { defineConfig } from \"eslint/config\";\nimport globals from \"globals\";\nimport { configs as tseslintConfigs } from \"typescript-eslint\";\n\nimport { packageJson } from \"./packageJson.js\";\nimport { applyPatches } from \"./patches/index.js\";\nimport { excludePackageJsonFromAll } from \"./utils.js\";\n\n// Apply all custom plugin patches before building configs.\napplyPatches({ sonarjs: sonarjs });\n\nexport const basic: Linter.Config[] = excludePackageJsonFromAll([\n\teslint.configs.recommended,\n\t...tseslintConfigs.strictTypeChecked,\n\t...tseslintConfigs.stylisticTypeChecked,\n\timportPlugin.flatConfigs.recommended,\n\tsecurity.configs.recommended,\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\tpluginPromise.configs[\"flat/recommended\"],\n\t// eslint-disable-next-line import/no-named-as-default-member\n\tperfectionist.configs[\"recommended-natural\"],\n\t...defineConfig({\n\t\tplugins: { vitest },\n\t\trules: {\n\t\t\t...vitest.configs.recommended.rules,\n\t\t\t\"vitest/valid-expect\": [\"warn\", { maxArgs: 2 }],\n\t\t},\n\t}),\n\tsonarjs.configs.recommended,\n\t{\n\t\trules: {\n\t\t\t\"import/first\": \"error\",\n\t\t\t\"import/newline-after-import\": \"error\",\n\t\t\t\"import/no-cycle\": \"error\",\n\t\t\t\"import/no-deprecated\": \"warn\",\n\t\t\t\"import/no-duplicates\": \"error\",\n\t\t\t\"import/no-useless-path-segments\": \"error\",\n\t\t\t\"perfectionist/sort-imports\": \"off\", // Conflict with the prettier ordering\n\t\t\t\"perfectionist/sort-named-imports\": \"off\",\n\t\t\t\"promise/always-return\": \"off\",\n\t\t\t\"promise/catch-or-return\": \"off\",\n\t\t\t\"sonarjs/argument-type\": \"off\", // Disabled: conflicts with the internal includes definition.\n\t\t\t\"sonarjs/assertions-in-tests\": \"off\",\n\t\t\t\"sonarjs/cognitive-complexity\": \"warn\",\n\t\t\t\"sonarjs/deprecation\": \"off\", // Double coverage with @typescript-eslint/no-deprecated\n\t\t\t\"sonarjs/no-control-regex\": \"off\", // Double coverage\n\t\t\t\"sonarjs/no-ignored-exceptions\": \"warn\",\n\t\t\t\"sonarjs/no-implicit-dependencies\": \"warn\",\n\t\t\t\"sonarjs/no-os-command-from-path\": \"warn\",\n\t\t\t\"sonarjs/no-unused-vars\": \"off\", // Double coverage\n\t\t\t\"sonarjs/prefer-read-only-props\": \"warn\",\n\t\t\t\"sonarjs/prefer-single-boolean-return\": \"off\",\n\t\t\t\"sonarjs/pseudo-random\": \"warn\",\n\t\t\t\"sonarjs/slow-regex\": \"warn\",\n\t\t\t\"sonarjs/todo-tag\": \"warn\",\n\t\t},\n\t\tsettings: {\n\t\t\t// Without this, import/* rules can't parse imported TS modules (e.g. no-cycle never fires).\n\t\t\t\"import/parsers\": {\n\t\t\t\t\"@typescript-eslint/parser\": [\".ts\", \".tsx\", \".mts\", \".cts\"],\n\t\t\t},\n\t\t\t\"import/resolver\": {\n\t\t\t\tnode: {\n\t\t\t\t\textensions: [\".js\", \".jsx\", \".ts\", \".tsx\", \".svg\", \".jpg\", \".png\"],\n\t\t\t\t},\n\t\t\t\ttypescript: {\n\t\t\t\t\textensions: [\".js\", \".jsx\", \".ts\", \".tsx\", \".svg\", \".jpg\", \".png\"],\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"import/resolver-next\": [createTypeScriptImportResolver({})],\n\t\t},\n\t},\n\t// Flat config only matches .js/.mjs/.cjs and the TS extensions by default.\n\t{ files: [\"**/*.jsx\"] },\n\t{\n\t\tlanguageOptions: {\n\t\t\tecmaVersion: 2024,\n\t\t\tglobals: {\n\t\t\t\t...globals.node,\n\t\t\t\t...globals.browser,\n\t\t\t},\n\t\t\tparserOptions: {\n\t\t\t\tprojectService: true,\n\t\t\t\t// CJS Workaround\n\t\t\t\t// eslint-disable-next-line\n\t\t\t\t// @ts-ignore\n\t\t\t\ttsconfigRootDir: import.meta.dirname,\n\t\t\t},\n\t\t\tsourceType: \"module\",\n\t\t},\n\t\trules: {\n\t\t\t\"@typescript-eslint/consistent-type-definitions\": [\"error\", \"type\"],\n\t\t\t\"@typescript-eslint/consistent-type-imports\": \"error\",\n\t\t\t\"@typescript-eslint/explicit-module-boundary-types\": \"warn\",\n\t\t\t\"@typescript-eslint/no-base-to-string\": \"warn\",\n\t\t\t\"@typescript-eslint/no-explicit-any\": \"warn\",\n\t\t\t\"@typescript-eslint/no-floating-promises\": \"warn\",\n\t\t\t\"@typescript-eslint/no-misused-spread\": \"warn\",\n\t\t\t\"@typescript-eslint/no-shadow\": \"error\",\n\t\t\t\"@typescript-eslint/no-unnecessary-condition\": \"warn\",\n\t\t\t\"@typescript-eslint/no-unnecessary-type-parameters\": \"off\",\n\t\t\t\"@typescript-eslint/no-unsafe-argument\": \"warn\",\n\t\t\t\"@typescript-eslint/no-unsafe-assignment\": \"warn\",\n\t\t\t\"@typescript-eslint/no-unsafe-call\": \"warn\",\n\t\t\t\"@typescript-eslint/no-unsafe-member-access\": \"warn\",\n\t\t\t\"@typescript-eslint/no-unsafe-return\": \"warn\",\n\t\t\t\"@typescript-eslint/no-unused-vars\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\targs: \"all\",\n\t\t\t\t\targsIgnorePattern: \"^_\",\n\t\t\t\t\tcaughtErrors: \"all\",\n\t\t\t\t\tcaughtErrorsIgnorePattern: \"^_\",\n\t\t\t\t\tdestructuredArrayIgnorePattern: \"^_\",\n\t\t\t\t\tignoreRestSiblings: true,\n\t\t\t\t\tvarsIgnorePattern: \"^_\",\n\t\t\t\t},\n\t\t\t],\n\t\t\t\"@typescript-eslint/prefer-nullish-coalescing\": \"warn\",\n\t\t\t\"@typescript-eslint/require-await\": \"warn\",\n\t\t\t\"@typescript-eslint/restrict-template-expressions\": [\n\t\t\t\t\"warn\",\n\t\t\t\t{ allowNumber: true },\n\t\t\t],\n\t\t\t\"no-console\": [\"warn\", { allow: [\"warn\", \"error\"] }],\n\t\t\t\"no-shadow\": \"off\",\n\t\t},\n\t},\n\t...defineConfig({\n\t\textends: [tseslintConfigs.disableTypeChecked],\n\t\tfiles: [\n\t\t\t\"**/*.js\",\n\t\t\t\"**/*.jsx\",\n\t\t\t\"**/*.mjs\",\n\t\t\t\"**/*.astro\",\n\t\t\t\"**/*.cjs\",\n\t\t\t\"**/*.config.ts\",\n\t\t],\n\t\trules: {\n\t\t\t\"@typescript-eslint/explicit-module-boundary-types\": \"off\",\n\t\t},\n\t}),\n\t...packageJson,\n\t// Global Ignores\n\t{\n\t\tignores: [\n\t\t\t\"ds-bundle/**/*\",\n\t\t\t\"dist/**/*\",\n\t\t\t\".tsup/**/*\",\n\t\t\t\".yarn/**/*\",\n\t\t\t\".next/**/*\",\n\t\t\t\".astro/**/*\",\n\t\t\t\"vendor/**/*\",\n\t\t\t\"playwright-report/**/*\",\n\t\t\t\"coverage/**/*\",\n\t\t],\n\t},\n] as Linter.Config[]);\n"]}
|
package/dist/esm/eslint/next.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next.js","sourceRoot":"","sources":["../../../src/eslint/next.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,CAAC,MAAM,IAAI,GAAoB,yBAAyB,CAAC;IAC9D;QACC,OAAO,EAAE;YACR,YAAY,EAAE,UAAU;SACxB;KACD;IACD;QACC,KAAK,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"next.js","sourceRoot":"","sources":["../../../src/eslint/next.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,CAAC,MAAM,IAAI,GAAoB,yBAAyB,CAAC;IAC9D;QACC,OAAO,EAAE;YACR,YAAY,EAAE,UAAU;SACxB;KACD;IACD;QACC,KAAK,EAAE,CAAC,8BAA8B,CAAC;QACvC,KAAK,EAAE;YACN,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK;SACvC;KACD;CACD,CAAC,CAAC","sourcesContent":["import pluginNext from \"@next/eslint-plugin-next\";\nimport type { Linter } from \"eslint\";\n\nimport { excludePackageJsonFromAll } from \"./utils.js\";\n\nexport const next: Linter.Config[] = excludePackageJsonFromAll([\n\t{\n\t\tplugins: {\n\t\t\t\"@next/next\": pluginNext,\n\t\t},\n\t},\n\t{\n\t\tfiles: [\"**/*.{js,jsx,mjs,cjs,ts,tsx}\"],\n\t\trules: {\n\t\t\t...pluginNext.configs.recommended.rules,\n\t\t},\n\t},\n]);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../src/eslint/react.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../src/eslint/react.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AASrC,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EA2C/B,CAAC"}
|
package/dist/esm/eslint/react.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import pluginQuery from "@tanstack/eslint-plugin-query";
|
|
2
|
+
import jsxA11y from "eslint-plugin-jsx-a11y";
|
|
2
3
|
import reactLint from "eslint-plugin-react";
|
|
3
|
-
import reactCompiler from "eslint-plugin-react-compiler";
|
|
4
4
|
import reactHooks from "eslint-plugin-react-hooks";
|
|
5
5
|
import reactYouMightNotNeedAnEffect from "eslint-plugin-react-you-might-not-need-an-effect";
|
|
6
6
|
import testingLibrary from "eslint-plugin-testing-library";
|
|
7
|
-
import { jsxA11y } from "./plugins.js";
|
|
8
7
|
import { excludePackageJsonFromAll } from "./utils.js";
|
|
9
8
|
export const react = excludePackageJsonFromAll([
|
|
10
9
|
...pluginQuery.configs["flat/recommended"],
|
|
@@ -12,14 +11,6 @@ export const react = excludePackageJsonFromAll([
|
|
|
12
11
|
...jsxA11y.flatConfigs.recommended,
|
|
13
12
|
files: ["**/*.{js,jsx,ts,tsx}"],
|
|
14
13
|
},
|
|
15
|
-
{
|
|
16
|
-
plugins: {
|
|
17
|
-
"react-compiler": reactCompiler,
|
|
18
|
-
},
|
|
19
|
-
rules: {
|
|
20
|
-
"react-compiler/react-compiler": "error",
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
14
|
reactHooks.configs.flat["recommended-latest"],
|
|
24
15
|
reactYouMightNotNeedAnEffect.configs.recommended,
|
|
25
16
|
{
|
|
@@ -28,7 +19,8 @@ export const react = excludePackageJsonFromAll([
|
|
|
28
19
|
react: reactLint,
|
|
29
20
|
},
|
|
30
21
|
rules: {
|
|
31
|
-
|
|
22
|
+
// validateNested is needed for the rule to see TypeScript prop types.
|
|
23
|
+
"react/boolean-prop-naming": ["warn", { validateNested: true }],
|
|
32
24
|
"react/button-has-type": "warn",
|
|
33
25
|
"react/jsx-max-depth": ["warn", { max: 4 }],
|
|
34
26
|
"react/jsx-no-target-blank": "off",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../../../src/eslint/react.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,+BAA+B,CAAC;AAExD,OAAO,
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../../../src/eslint/react.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,+BAA+B,CAAC;AAExD,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,UAAU,MAAM,2BAA2B,CAAC;AACnD,OAAO,4BAA4B,MAAM,kDAAkD,CAAC;AAC5F,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,CAAC,MAAM,KAAK,GAAoB,yBAAyB,CAAC;IAC/D,GAAG,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC1C;QACC,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW;QAClC,KAAK,EAAE,CAAC,sBAAsB,CAAC;KAC/B;IACD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC;IAC7C,4BAA4B,CAAC,OAAO,CAAC,WAAW;IAChD;QACC,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC;QACrD,OAAO,EAAE;YACR,KAAK,EAAE,SAAS;SAChB;QACD,KAAK,EAAE;YACN,sEAAsE;YACtE,2BAA2B,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;YAC/D,uBAAuB,EAAE,MAAM;YAC/B,qBAAqB,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;YAC3C,2BAA2B,EAAE,KAAK;YAClC,+BAA+B,EAAE,MAAM;YACvC,qCAAqC,EAAE,MAAM;YAC7C,4BAA4B,EAAE,MAAM;YACpC,0BAA0B,EAAE,KAAK;YACjC,8BAA8B,EAAE,KAAK;SACrC;QACD,QAAQ,EAAE;YACT,KAAK,EAAE;gBACN,OAAO,EAAE,QAAQ;aACjB;SACD;KACD;IACD;QACC,GAAG,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC;QACvC,KAAK,EAAE;YACN,eAAe;YACf,gBAAgB;YAChB,eAAe;YACf,gBAAgB;SAChB;QACD,KAAK,EAAE;YACN,gCAAgC,EAAE,MAAM;SACxC;KACD;CACD,CAAC,CAAC","sourcesContent":["import pluginQuery from \"@tanstack/eslint-plugin-query\";\nimport type { Linter } from \"eslint\";\nimport jsxA11y from \"eslint-plugin-jsx-a11y\";\nimport reactLint from \"eslint-plugin-react\";\nimport reactHooks from \"eslint-plugin-react-hooks\";\nimport reactYouMightNotNeedAnEffect from \"eslint-plugin-react-you-might-not-need-an-effect\";\nimport testingLibrary from \"eslint-plugin-testing-library\";\n\nimport { excludePackageJsonFromAll } from \"./utils.js\";\n\nexport const react: Linter.Config[] = excludePackageJsonFromAll([\n\t...pluginQuery.configs[\"flat/recommended\"],\n\t{\n\t\t...jsxA11y.flatConfigs.recommended,\n\t\tfiles: [\"**/*.{js,jsx,ts,tsx}\"],\n\t},\n\treactHooks.configs.flat[\"recommended-latest\"],\n\treactYouMightNotNeedAnEffect.configs.recommended,\n\t{\n\t\tfiles: [\"**/*.js\", \"**/*.jsx\", \"**/*.ts\", \"**/*.tsx\"],\n\t\tplugins: {\n\t\t\treact: reactLint,\n\t\t},\n\t\trules: {\n\t\t\t// validateNested is needed for the rule to see TypeScript prop types.\n\t\t\t\"react/boolean-prop-naming\": [\"warn\", { validateNested: true }],\n\t\t\t\"react/button-has-type\": \"warn\",\n\t\t\t\"react/jsx-max-depth\": [\"warn\", { max: 4 }],\n\t\t\t\"react/jsx-no-target-blank\": \"off\",\n\t\t\t\"react/jsx-no-useless-fragment\": \"warn\",\n\t\t\t\"react/no-unstable-nested-components\": \"warn\",\n\t\t\t\"react/no-unused-prop-types\": \"warn\",\n\t\t\t\"react/react-in-jsx-scope\": \"off\",\n\t\t\t\"sonarjs/jsx-no-leaked-render\": \"off\",\n\t\t},\n\t\tsettings: {\n\t\t\treact: {\n\t\t\t\tversion: \"19.0.0\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\t...testingLibrary.configs[\"flat/react\"],\n\t\tfiles: [\n\t\t\t\"tests/**/*.js\",\n\t\t\t\"tests/**/*.jsx\",\n\t\t\t\"tests/**/*.ts\",\n\t\t\t\"tests/**/*.tsx\",\n\t\t],\n\t\trules: {\n\t\t\t\"testing-library/no-node-access\": \"warn\",\n\t\t},\n\t},\n]);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tailwind.d.ts","sourceRoot":"","sources":["../../../src/stylelint/tailwind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAIxC,eAAO,MAAM,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"tailwind.d.ts","sourceRoot":"","sources":["../../../src/stylelint/tailwind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAIxC,eAAO,MAAM,iBAAiB,EAAE,MAmC/B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tailwind.js","sourceRoot":"","sources":["../../../src/stylelint/tailwind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAW;IACxC,GAAG,SAAS;IACZ,KAAK,EAAE;QACN,GAAG,SAAS,CAAC,KAAK;QAClB,yBAAyB,EAAE;YAC1B,IAAI;YACJ;gBACC,aAAa,EAAE;oBACd,qBAAqB;oBACrB,OAAO;oBACP,QAAQ;oBACR,SAAS;oBACT,SAAS;oBACT,gBAAgB;oBAChB,QAAQ;oBACR,qBAAqB;oBACrB,UAAU;oBACV,OAAO;oBACP,OAAO;oBACP,QAAQ;oBACR,yBAAyB;oBACzB,UAAU;oBACV,YAAY;oBACZ,QAAQ;iBACR;
|
|
1
|
+
{"version":3,"file":"tailwind.js","sourceRoot":"","sources":["../../../src/stylelint/tailwind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAW;IACxC,GAAG,SAAS;IACZ,KAAK,EAAE;QACN,GAAG,SAAS,CAAC,KAAK;QAClB,yBAAyB,EAAE;YAC1B,IAAI;YACJ;gBACC,aAAa,EAAE;oBACd,qBAAqB;oBACrB,OAAO;oBACP,QAAQ;oBACR,SAAS;oBACT,SAAS;oBACT,gBAAgB;oBAChB,QAAQ;oBACR,qBAAqB;oBACrB,UAAU;oBACV,OAAO;oBACP,OAAO;oBACP,QAAQ;oBACR,yBAAyB;oBACzB,UAAU;oBACV,YAAY;oBACZ,QAAQ;iBACR;gBACD,QAAQ,EAAE,SAAS;aACnB;SACD;QACD,0BAA0B,EAAE;YAC3B,IAAI;YACJ;gBACC,eAAe,EAAE,CAAC,OAAO,CAAC;aAC1B;SACD;KACD;CACD,CAAC","sourcesContent":["import type { Config } from \"stylelint\";\n\nimport { stylelint } from \"./basic.js\";\n\nexport const stylelintTailwind: Config = {\n\t...stylelint,\n\trules: {\n\t\t...stylelint.rules,\n\t\t\"scss/at-rule-no-unknown\": [\n\t\t\ttrue,\n\t\t\t{\n\t\t\t\tignoreAtRules: [\n\t\t\t\t\t/** Tailwindcss v4 */\n\t\t\t\t\t\"theme\",\n\t\t\t\t\t\"source\",\n\t\t\t\t\t\"utility\",\n\t\t\t\t\t\"variant\",\n\t\t\t\t\t\"custom-variant\",\n\t\t\t\t\t\"plugin\",\n\t\t\t\t\t/** Tailwindcss v3 */\n\t\t\t\t\t\"tailwind\",\n\t\t\t\t\t\"apply\",\n\t\t\t\t\t\"layer\",\n\t\t\t\t\t\"config\",\n\t\t\t\t\t/** Tailwindcss v1, v2 */\n\t\t\t\t\t\"variants\",\n\t\t\t\t\t\"responsive\",\n\t\t\t\t\t\"screen\",\n\t\t\t\t],\n\t\t\t\tseverity: \"warning\",\n\t\t\t},\n\t\t],\n\t\t\"scss/function-no-unknown\": [\n\t\t\ttrue,\n\t\t\t{\n\t\t\t\tignoreFunctions: [\"theme\"],\n\t\t\t},\n\t\t],\n\t},\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rootreeweb/linting",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.7.0",
|
|
4
4
|
"description": "Shared configurations for ESLint and Stylelint",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"repository": "github:rootreeweb/meta-tools",
|
|
@@ -47,22 +47,21 @@
|
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@eslint/js": "^10.0.1",
|
|
49
49
|
"@ianvs/prettier-plugin-sort-imports": "^4.7.1",
|
|
50
|
-
"@next/eslint-plugin-next": "^16.4.
|
|
50
|
+
"@next/eslint-plugin-next": "^16.4.5",
|
|
51
51
|
"@rootreeweb/js-lib": "^4.0.21",
|
|
52
|
-
"@tanstack/eslint-plugin-query": "^5.
|
|
52
|
+
"@tanstack/eslint-plugin-query": "^5.107.1",
|
|
53
53
|
"@vitest/eslint-plugin": "^1.6.28",
|
|
54
54
|
"eslint-import-resolver-typescript": "^4.4.5",
|
|
55
55
|
"eslint-package-json": "^3.0.0",
|
|
56
56
|
"eslint-plugin-astro": "^3.2.1",
|
|
57
57
|
"eslint-plugin-import": "^2.32.0",
|
|
58
|
-
"eslint-plugin-jsdoc": "^65.4.
|
|
58
|
+
"eslint-plugin-jsdoc": "^65.4.5",
|
|
59
59
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
60
60
|
"eslint-plugin-perfectionist": "^5.13.0",
|
|
61
61
|
"eslint-plugin-promise": "^7.3.0",
|
|
62
62
|
"eslint-plugin-react": "^7.37.5",
|
|
63
|
-
"eslint-plugin-react-compiler": "^19.1.0-rc.2",
|
|
64
63
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
65
|
-
"eslint-plugin-react-you-might-not-need-an-effect": "^1.
|
|
64
|
+
"eslint-plugin-react-you-might-not-need-an-effect": "^1.2.0",
|
|
66
65
|
"eslint-plugin-security": "^4.2.1",
|
|
67
66
|
"eslint-plugin-sonarjs": "^4.2.2",
|
|
68
67
|
"eslint-plugin-tailwindcss": "^4.4.0",
|
|
@@ -76,8 +75,8 @@
|
|
|
76
75
|
"stylelint-config-standard": "^40.0.0",
|
|
77
76
|
"stylelint-config-standard-scss": "^17.0.0",
|
|
78
77
|
"stylelint-config-tailwindcss": "^1.0.1",
|
|
79
|
-
"stylelint-prettier": "^5.0
|
|
80
|
-
"tailwindcss": "^4.3.
|
|
78
|
+
"stylelint-prettier": "^5.1.0",
|
|
79
|
+
"tailwindcss": "^4.3.5",
|
|
81
80
|
"typescript-eslint": "^8.72.1"
|
|
82
81
|
},
|
|
83
82
|
"devDependencies": {
|
|
@@ -87,21 +86,21 @@
|
|
|
87
86
|
"@types/node": "^26.6.6",
|
|
88
87
|
"@types/react": "^19.3.0",
|
|
89
88
|
"@typescript/native-preview": "^7.0.0-dev.20260707.2",
|
|
90
|
-
"@vitest/coverage-v8": "^5.0
|
|
91
|
-
"@vitest/ui": "^5.0
|
|
89
|
+
"@vitest/coverage-v8": "^5.1.0",
|
|
90
|
+
"@vitest/ui": "^5.1.0",
|
|
92
91
|
"del-cli": "^8.0.1",
|
|
93
92
|
"eslint": "^10.14.0",
|
|
94
93
|
"husky": "^9.1.7",
|
|
95
|
-
"jscpd": "^5.4.
|
|
96
|
-
"knip": "^6.44.
|
|
94
|
+
"jscpd": "^5.4.3",
|
|
95
|
+
"knip": "^6.44.2",
|
|
97
96
|
"lint-staged": "^17.6.0",
|
|
98
97
|
"prettier": "~3.8.5",
|
|
99
98
|
"react": "^19.3.1",
|
|
100
99
|
"stylelint": "~17.16.0",
|
|
101
|
-
"turbo": "
|
|
100
|
+
"turbo": "^2.11.10",
|
|
102
101
|
"typescript": "^6.0.3",
|
|
103
|
-
"vite": "^8.3.
|
|
104
|
-
"vitest": "^5.0
|
|
102
|
+
"vite": "^8.3.7",
|
|
103
|
+
"vitest": "^5.1.0"
|
|
105
104
|
},
|
|
106
105
|
"peerDependencies": {
|
|
107
106
|
"eslint": "^10",
|
|
@@ -110,7 +109,7 @@
|
|
|
110
109
|
"lint-staged": "^17.2.0",
|
|
111
110
|
"prettier": "~3.8.0",
|
|
112
111
|
"stylelint": "~17.16.0",
|
|
113
|
-
"turbo": "
|
|
112
|
+
"turbo": "^2.11.2"
|
|
114
113
|
},
|
|
115
114
|
"peerDependenciesMeta": {
|
|
116
115
|
"stylelint": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../src/eslint/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../src/eslint/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,CAAC","sourcesContent":["import jsxA11y from \"eslint-plugin-jsx-a11y\";\n\nexport { jsxA11y };\n"]}
|