@rootreeweb/linting 5.5.1 → 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 +27 -0
- package/README.md +1 -1
- 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 +17 -16
- package/skills/add-changeset/SKILL.md +37 -0
- package/skills/update-dependencies/SKILL.md +21 -0
- 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,32 @@
|
|
|
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
|
+
|
|
24
|
+
## 5.6.0
|
|
25
|
+
|
|
26
|
+
### Minor Changes
|
|
27
|
+
|
|
28
|
+
- Add `add-changeset` and `update-dependencies` agent skills
|
|
29
|
+
|
|
3
30
|
## 5.5.1
|
|
4
31
|
|
|
5
32
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -113,7 +113,7 @@ export default composeConfig(presetNext, turbo);
|
|
|
113
113
|
|
|
114
114
|
## Agent Skills
|
|
115
115
|
|
|
116
|
-
This package ships agent skills (`format-and-lint-js` and `
|
|
116
|
+
This package ships agent skills (`format-and-lint-js`, `solid-audit`, `add-changeset` and `update-dependencies`, plus `domain-modeling`, `grill-me`, `improve-codebase-architecture` and `dry-refactoring` from upstream) using the [`skills`](https://www.npmjs.com/package/skills) CLI's npm sync.
|
|
117
117
|
|
|
118
118
|
```bash
|
|
119
119
|
yarn add -D skills
|
|
@@ -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":"AAAA,OAAO,MAAM,MAAM,YAAY,CAAC;AAChC,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAE3C,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,aAAa,MAAM,6BAA6B,CAAC;AACxD,yDAAyD;AACzD,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,2DAA2D;AAC3D,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAEnC,MAAM,CAAC,MAAM,KAAK,GAAoB,yBAAyB,CAAC;IAC/D,MAAM,CAAC,OAAO,CAAC,WAAW;IAC1B,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB;IACrC,GAAG,QAAQ,CAAC,OAAO,CAAC,oBAAoB;IACxC,YAAY,CAAC,WAAW,CAAC,WAAW;IACpC,QAAQ,CAAC,OAAO,CAAC,WAAW;IAC5B,sEAAsE;IACtE,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACzC,6DAA6D;IAC7D,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC;IAC5C,GAAG,YAAY,CAAC;QACf,OAAO,EAAE,EAAE,MAAM,EAAE;QACnB,KAAK,EAAE;YACN,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK;YACnC,qBAAqB,EAAE,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;SAC/C;KACD,CAAC;IACF,OAAO,CAAC,OAAO,CAAC,WAAW;IAC3B;QACC,KAAK,EAAE;YACN,cAAc,EAAE,OAAO;YACvB,6BAA6B,EAAE,OAAO;YACtC,iBAAiB,EAAE,OAAO;YAC1B,sBAAsB,EAAE,MAAM;YAC9B,sBAAsB,EAAE,OAAO;YAC/B,iCAAiC,EAAE,OAAO;YAC1C,4BAA4B,EAAE,KAAK,EAAE,sCAAsC;YAC3E,kCAAkC,EAAE,KAAK;YACzC,uBAAuB,EAAE,KAAK;YAC9B,yBAAyB,EAAE,KAAK;YAChC,uBAAuB,EAAE,KAAK,EAAE,6DAA6D;YAC7F,6BAA6B,EAAE,KAAK;YACpC,8BAA8B,EAAE,MAAM;YACtC,qBAAqB,EAAE,KAAK,EAAE,wDAAwD;YACtF,0BAA0B,EAAE,KAAK,EAAE,kBAAkB;YACrD,+BAA+B,EAAE,MAAM;YACvC,kCAAkC,EAAE,MAAM;YAC1C,iCAAiC,EAAE,MAAM;YACzC,wBAAwB,EAAE,KAAK,EAAE,kBAAkB;YACnD,gCAAgC,EAAE,MAAM;YACxC,sCAAsC,EAAE,KAAK;YAC7C,uBAAuB,EAAE,MAAM;YAC/B,oBAAoB,EAAE,MAAM;YAC5B,kBAAkB,EAAE,MAAM;SAC1B;QACD,QAAQ,EAAE;YACT,iBAAiB,EAAE;gBAClB,IAAI,EAAE;oBACL,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBAClE;gBACD,UAAU,EAAE;oBACX,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBAClE;aACD;YACD,sBAAsB,EAAE,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;SAC5D;KACD;IACD;QACC,eAAe,EAAE;YAChB,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE;gBACR,GAAG,OAAO,CAAC,IAAI;gBACf,GAAG,OAAO,CAAC,OAAO;aAClB;YACD,aAAa,EAAE;gBACd,cAAc,EAAE,IAAI;gBACpB,iBAAiB;gBACjB,2BAA2B;gBAC3B,aAAa;gBACb,eAAe,EAAE,OAAO,IAAI,CAAC,OAAO;aACpC;YACD,UAAU,EAAE,QAAQ;SACpB;QACD,KAAK,EAAE;YACN,gDAAgD,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;YACnE,4CAA4C,EAAE,OAAO;YACrD,mDAAmD,EAAE,MAAM;YAC3D,sCAAsC,EAAE,MAAM;YAC9C,oCAAoC,EAAE,MAAM;YAC5C,yCAAyC,EAAE,MAAM;YACjD,sCAAsC,EAAE,MAAM;YAC9C,8BAA8B,EAAE,OAAO;YACvC,6CAA6C,EAAE,MAAM;YACrD,mDAAmD,EAAE,KAAK;YAC1D,uCAAuC,EAAE,MAAM;YAC/C,yCAAyC,EAAE,MAAM;YACjD,mCAAmC,EAAE,MAAM;YAC3C,4CAA4C,EAAE,MAAM;YACpD,qCAAqC,EAAE,MAAM;YAC7C,mCAAmC,EAAE;gBACpC,OAAO;gBACP;oBACC,IAAI,EAAE,KAAK;oBACX,iBAAiB,EAAE,IAAI;oBACvB,YAAY,EAAE,KAAK;oBACnB,yBAAyB,EAAE,IAAI;oBAC/B,8BAA8B,EAAE,IAAI;oBACpC,kBAAkB,EAAE,IAAI;oBACxB,iBAAiB,EAAE,IAAI;iBACvB;aACD;YACD,8CAA8C,EAAE,MAAM;YACtD,kCAAkC,EAAE,MAAM;YAC1C,kDAAkD,EAAE;gBACnD,MAAM;gBACN,EAAE,WAAW,EAAE,IAAI,EAAE;aACrB;YACD,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YACpD,WAAW,EAAE,KAAK;SAClB;KACD;IACD,GAAG,YAAY,CAAC;QACf,OAAO,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC;QAC9C,KAAK,EAAE;YACN,SAAS;YACT,YAAY;YACZ,UAAU;YACV,gBAAgB;YAChB,SAAS;YACT,UAAU;SACV;QACD,KAAK,EAAE;YACN,mDAAmD,EAAE,KAAK;SAC1D;KACD,CAAC;IACF,GAAG,WAAW;IACd,iBAAiB;IACjB;QACC,OAAO,EAAE;YACR,gBAAgB;YAChB,WAAW;YACX,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,aAAa;YACb,aAAa;YACb,wBAAwB;YACxB,eAAe;SACf;KACD;CACD,CAAC,CAAC","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":"AAAA,OAAO,MAAM,MAAM,YAAY,CAAC;AAChC,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAE3C,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,aAAa,MAAM,6BAA6B,CAAC;AACxD,yDAAyD;AACzD,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,2DAA2D;AAC3D,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAEnC,MAAM,CAAC,MAAM,KAAK,GAAoB,yBAAyB,CAAC;IAC/D,MAAM,CAAC,OAAO,CAAC,WAAW;IAC1B,GAAG,eAAe,CAAC,iBAAiB;IACpC,GAAG,eAAe,CAAC,oBAAoB;IACvC,YAAY,CAAC,WAAW,CAAC,WAAW;IACpC,QAAQ,CAAC,OAAO,CAAC,WAAW;IAC5B,sEAAsE;IACtE,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACzC,6DAA6D;IAC7D,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC;IAC5C,GAAG,YAAY,CAAC;QACf,OAAO,EAAE,EAAE,MAAM,EAAE;QACnB,KAAK,EAAE;YACN,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK;YACnC,qBAAqB,EAAE,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;SAC/C;KACD,CAAC;IACF,OAAO,CAAC,OAAO,CAAC,WAAW;IAC3B;QACC,KAAK,EAAE;YACN,cAAc,EAAE,OAAO;YACvB,6BAA6B,EAAE,OAAO;YACtC,iBAAiB,EAAE,OAAO;YAC1B,sBAAsB,EAAE,MAAM;YAC9B,sBAAsB,EAAE,OAAO;YAC/B,iCAAiC,EAAE,OAAO;YAC1C,4BAA4B,EAAE,KAAK,EAAE,sCAAsC;YAC3E,kCAAkC,EAAE,KAAK;YACzC,uBAAuB,EAAE,KAAK;YAC9B,yBAAyB,EAAE,KAAK;YAChC,uBAAuB,EAAE,KAAK,EAAE,6DAA6D;YAC7F,6BAA6B,EAAE,KAAK;YACpC,8BAA8B,EAAE,MAAM;YACtC,qBAAqB,EAAE,KAAK,EAAE,wDAAwD;YACtF,0BAA0B,EAAE,KAAK,EAAE,kBAAkB;YACrD,+BAA+B,EAAE,MAAM;YACvC,kCAAkC,EAAE,MAAM;YAC1C,iCAAiC,EAAE,MAAM;YACzC,wBAAwB,EAAE,KAAK,EAAE,kBAAkB;YACnD,gCAAgC,EAAE,MAAM;YACxC,sCAAsC,EAAE,KAAK;YAC7C,uBAAuB,EAAE,MAAM;YAC/B,oBAAoB,EAAE,MAAM;YAC5B,kBAAkB,EAAE,MAAM;SAC1B;QACD,QAAQ,EAAE;YACT,4FAA4F;YAC5F,gBAAgB,EAAE;gBACjB,2BAA2B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aAC5D;YACD,iBAAiB,EAAE;gBAClB,IAAI,EAAE;oBACL,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBAClE;gBACD,UAAU,EAAE;oBACX,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBAClE;aACD;YACD,sBAAsB,EAAE,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;SAC5D;KACD;IACD,2EAA2E;IAC3E,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE;IACvB;QACC,eAAe,EAAE;YAChB,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE;gBACR,GAAG,OAAO,CAAC,IAAI;gBACf,GAAG,OAAO,CAAC,OAAO;aAClB;YACD,aAAa,EAAE;gBACd,cAAc,EAAE,IAAI;gBACpB,iBAAiB;gBACjB,2BAA2B;gBAC3B,aAAa;gBACb,eAAe,EAAE,OAAO,IAAI,CAAC,OAAO;aACpC;YACD,UAAU,EAAE,QAAQ;SACpB;QACD,KAAK,EAAE;YACN,gDAAgD,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;YACnE,4CAA4C,EAAE,OAAO;YACrD,mDAAmD,EAAE,MAAM;YAC3D,sCAAsC,EAAE,MAAM;YAC9C,oCAAoC,EAAE,MAAM;YAC5C,yCAAyC,EAAE,MAAM;YACjD,sCAAsC,EAAE,MAAM;YAC9C,8BAA8B,EAAE,OAAO;YACvC,6CAA6C,EAAE,MAAM;YACrD,mDAAmD,EAAE,KAAK;YAC1D,uCAAuC,EAAE,MAAM;YAC/C,yCAAyC,EAAE,MAAM;YACjD,mCAAmC,EAAE,MAAM;YAC3C,4CAA4C,EAAE,MAAM;YACpD,qCAAqC,EAAE,MAAM;YAC7C,mCAAmC,EAAE;gBACpC,OAAO;gBACP;oBACC,IAAI,EAAE,KAAK;oBACX,iBAAiB,EAAE,IAAI;oBACvB,YAAY,EAAE,KAAK;oBACnB,yBAAyB,EAAE,IAAI;oBAC/B,8BAA8B,EAAE,IAAI;oBACpC,kBAAkB,EAAE,IAAI;oBACxB,iBAAiB,EAAE,IAAI;iBACvB;aACD;YACD,8CAA8C,EAAE,MAAM;YACtD,kCAAkC,EAAE,MAAM;YAC1C,kDAAkD,EAAE;gBACnD,MAAM;gBACN,EAAE,WAAW,EAAE,IAAI,EAAE;aACrB;YACD,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YACpD,WAAW,EAAE,KAAK;SAClB;KACD;IACD,GAAG,YAAY,CAAC;QACf,OAAO,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC;QAC7C,KAAK,EAAE;YACN,SAAS;YACT,UAAU;YACV,UAAU;YACV,YAAY;YACZ,UAAU;YACV,gBAAgB;SAChB;QACD,KAAK,EAAE;YACN,mDAAmD,EAAE,KAAK;SAC1D;KACD,CAAC;IACF,GAAG,WAAW;IACd,iBAAiB;IACjB;QACC,OAAO,EAAE;YACR,gBAAgB;YAChB,WAAW;YACX,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,aAAa;YACb,aAAa;YACb,wBAAwB;YACxB,eAAe;SACf;KACD;CACkB,CAAC,CAAC","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": {
|
|
@@ -121,6 +120,8 @@
|
|
|
121
120
|
}
|
|
122
121
|
},
|
|
123
122
|
"skills": [
|
|
123
|
+
"mattpocock/skills@tdd",
|
|
124
|
+
"mattpocock/skills@codebase-design",
|
|
124
125
|
"mattpocock/skills@domain-modeling",
|
|
125
126
|
"mattpocock/skills@grill-me",
|
|
126
127
|
"mattpocock/skills@improve-codebase-architecture",
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: add-changeset
|
|
3
|
+
description: Writes a Changesets entry describing the changes the agent made, when the repo uses Changesets. Use after finishing changes to a package in a repo with a `.changeset/` folder.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Add Changeset
|
|
7
|
+
|
|
8
|
+
## When to use this skill
|
|
9
|
+
|
|
10
|
+
- Use this after finishing changes to a package, when the repo has a `.changeset/config.json`.
|
|
11
|
+
- Skip it entirely if there's no `.changeset/config.json`.
|
|
12
|
+
|
|
13
|
+
## How to use it
|
|
14
|
+
|
|
15
|
+
1. Scope to the changes you made in this session. Don't include unrelated edits already in the working tree; use `git status` and `git diff` only to confirm your files.
|
|
16
|
+
2. Work out the affected packages: workspaces whose published surface changed (files covered by the package's `files` field, or `dependencies`, `peerDependencies` or `exports` in its `package.json`).
|
|
17
|
+
- Skip packages listed in the config's `ignore`.
|
|
18
|
+
- Skip private packages unless the config's `privatePackages.version` is `true`.
|
|
19
|
+
- Skip changes that only touch tests, CI, root config or `devDependencies`.
|
|
20
|
+
- If nothing qualifies, say so and don't write a changeset.
|
|
21
|
+
3. Pick a bump for each package:
|
|
22
|
+
- `patch`: fixes, chores, dependency updates.
|
|
23
|
+
- `minor`: new features, exports, rules or skills.
|
|
24
|
+
- `major`: breaking changes. Ask the user before you write a major bump.
|
|
25
|
+
4. Write `.changeset/<short-kebab-slug>.md` yourself. Don't use `changeset add`, because it's interactive and commits when the config has `commit: true`.
|
|
26
|
+
|
|
27
|
+
```md
|
|
28
|
+
---
|
|
29
|
+
"@scope/package": patch
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
Short, user-facing changelog line
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
If an uncommitted changeset already covers this work, update it instead of adding another one.
|
|
36
|
+
|
|
37
|
+
5. Don't commit, stage, run `changeset version` or publish. Tell the user the file path and the bumps you chose.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: update-dependencies
|
|
3
|
+
description: Updates a project's npm dependencies safely, verifies the build and records a changeset. Use when asked to update, upgrade or bump dependencies.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Update Dependencies
|
|
7
|
+
|
|
8
|
+
## When to use this skill
|
|
9
|
+
|
|
10
|
+
- Use this when asked to update, upgrade or bump a project's dependencies.
|
|
11
|
+
|
|
12
|
+
## How to use it
|
|
13
|
+
|
|
14
|
+
1. Find the package manager from the `packageManager` field or the lockfile, and note any workspaces.
|
|
15
|
+
2. List what's outdated across the root and all workspaces with `npx npm-check-updates --workspaces --root`.
|
|
16
|
+
3. Apply minor and patch updates with `npx npm-check-updates -u --workspaces --root --target minor`, then install with the project's package manager.
|
|
17
|
+
- Leave intentional pins alone. That covers `~` ranges and versions held inside a `peerDependencies` range (for example `prettier ~3.8.x`). Use `--reject` to skip them.
|
|
18
|
+
- Keep each package's `devDependencies` copy of a peer inside its `peerDependencies` range.
|
|
19
|
+
4. List the available major updates with a one-line note on each. Only upgrade the ones the user approves, one at a time, and read their release notes for breaking changes.
|
|
20
|
+
5. Run `build` if it exists, then the `format-and-lint-js` skill and `test`. If an update breaks something, revert or pin that package and report it.
|
|
21
|
+
6. Use the `add-changeset` skill to record a `patch` changeset reading "Chore: Dependency updates". Include only packages whose `dependencies` or `peerDependencies` changed. Don't commit.
|
|
@@ -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"]}
|