ultracite 3.9.10 → 4.0.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/README.md +37 -125
- package/biome.json +102 -0
- package/package.json +27 -87
- package/dist/eslint.config.d.mts +0 -621
- package/dist/eslint.config.mjs +0 -1
- package/dist/prettier.config.d.mts +0 -14
- package/dist/prettier.config.mjs +0 -1
- package/dist/stylelint.config.d.mts +0 -36
- package/dist/stylelint.config.mjs +0 -1
package/README.md
CHANGED
|
@@ -1,88 +1,50 @@
|
|
|
1
1
|
# Ultracite
|
|
2
2
|
|
|
3
|
-
Ultracite is a robust linting
|
|
3
|
+
Ultracite is a robust linting configuration for modern TypeScript apps, built on [Biome](https://biomejs.dev/). It is incredibly opinionated and strict, enforcing the maximum amount of type safety and code quality. Once Ultracite is set up, it will automatically lint, fix and format your code on save.
|
|
4
4
|
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
<img src="https://img.shields.io/npm/dy/ultracite" alt="" />
|
|
8
|
-
|
|
9
|
-
<img src="https://img.shields.io/
|
|
10
|
-
|
|
11
|
-
<img src="https://img.shields.io/github/license/haydenbleasel/ultracite" alt="" />
|
|
12
|
-
|
|
13
|
-
## Features
|
|
14
|
-
|
|
15
|
-
### ESLint
|
|
16
|
-
|
|
17
|
-
Ultracite uses [ESLint](https://eslint.org/) to enforce code quality and type safety. It includes a wide range of rules to ensure your code is consistent and error-free. Ultracite combines with pre-defined rulesets for ESLint, as well as the following plugins: [Import](https://www.npmjs.com/package/eslint-plugin-import), [jsx-a11y](https://www.npmjs.com/package/eslint-plugin-jsx-a11y), [React](https://www.npmjs.com/package/eslint-plugin-react), [React Hooks](https://www.npmjs.com/package/eslint-plugin-react-hooks), [jest](https://www.npmjs.com/package/eslint-plugin-jest), [promise](https://www.npmjs.com/package/eslint-plugin-promise), [n](https://www.npmjs.com/package/eslint-plugin-n), [Typescript](https://www.npmjs.com/package/@typescript-eslint/eslint-plugin), [Prettier](https://www.npmjs.com/package/eslint-plugin-prettier), [Next.js](https://nextjs.org/docs/basic-features/eslint#eslint-plugin), [Cypress](https://www.npmjs.com/package/eslint-plugin-cypress), [HTML](https://www.npmjs.com/package/eslint-plugin-html), [SonarJS](https://www.npmjs.com/package/eslint-plugin-sonarjs), [Compat](https://www.npmjs.com/package/eslint-plugin-compat), [Unicorn](https://www.npmjs.com/package/eslint-plugin-unicorn), [GitHub](https://www.npmjs.com/package/eslint-plugin-github) and [TanStack Query](https://www.npmjs.com/package/@tanstack/eslint-plugin-query).
|
|
18
|
-
|
|
19
|
-
### Prettier
|
|
20
|
-
|
|
21
|
-
Ultracite uses [Prettier](https://prettier.io/) to format your code. It's configured to work with ESLint, so you can use both tools together without conflicts. Ultracite includes a pre-defined Prettier configuration that ensures your code is formatted consistently, as well as the [Tailwind](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) plugin for automatic class sorting.
|
|
22
|
-
|
|
23
|
-
### Stylelint
|
|
24
|
-
|
|
25
|
-
Ultracite uses [Stylelint](https://stylelint.io/) to enforce CSS code quality. Ultracite combines with pre-defined rules for Stylelint, as well as the [Stylelint-Prettier](https://www.npmjs.com/package/stylelint-prettier) plugin to ensure Stylelint and Prettier work together without conflicts.
|
|
5
|
+
<div>
|
|
6
|
+
<img src="https://img.shields.io/github/actions/workflow/status/haydenbleasel/ultracite/push.yaml" alt="" />
|
|
7
|
+
<img src="https://img.shields.io/npm/dy/ultracite" alt="" />
|
|
8
|
+
<img src="https://img.shields.io/npm/v/ultracite" alt="" />
|
|
9
|
+
<img src="https://img.shields.io/github/license/haydenbleasel/ultracite" alt="" />
|
|
10
|
+
</div>
|
|
26
11
|
|
|
27
12
|
## Installation
|
|
28
13
|
|
|
29
|
-
Run the command below to install Ultracite
|
|
14
|
+
Run the command below to install Ultracite:
|
|
30
15
|
|
|
31
16
|
```sh
|
|
32
|
-
pnpm add -D ultracite
|
|
17
|
+
pnpm add -D --save-exact ultracite @biomejs/biome
|
|
33
18
|
```
|
|
34
19
|
|
|
35
20
|
If you're running [VS Code](https://code.visualstudio.com/), ensure you have the following extensions installed:
|
|
36
21
|
|
|
37
22
|
```sh
|
|
38
|
-
code --install-extension
|
|
39
|
-
code --install-extension esbenp.prettier-vscode
|
|
23
|
+
code --install-extension biomejs.biome
|
|
40
24
|
code --install-extension bradlc.vscode-tailwindcss
|
|
41
|
-
code --install-extension stylelint.vscode-stylelint
|
|
42
25
|
```
|
|
43
26
|
|
|
44
27
|
## Setup
|
|
45
28
|
|
|
46
|
-
Create an `
|
|
47
|
-
|
|
48
|
-
```js
|
|
49
|
-
export { default } from 'ultracite';
|
|
50
|
-
```
|
|
29
|
+
Create an `biome.json` with the following contents:
|
|
51
30
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
```js
|
|
55
|
-
export { default } from 'ultracite/prettier';
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Create a `stylelint.config.mjs` with the following contents:
|
|
59
|
-
|
|
60
|
-
```js
|
|
61
|
-
export { default } from 'ultracite/stylelint';
|
|
31
|
+
```json
|
|
32
|
+
{ "extends": ["ultracite"] }
|
|
62
33
|
```
|
|
63
34
|
|
|
64
|
-
Ultracite is designed to be used with [VS Code](https://code.visualstudio.com/)
|
|
35
|
+
Ultracite is designed to be used with [VS Code](https://code.visualstudio.com/). Create a `.vscode/settings.json` file with the following contents to enable full formatting and fixing on save:
|
|
65
36
|
|
|
66
37
|
```json
|
|
67
38
|
{
|
|
68
39
|
"typescript.tsdk": "node_modules/typescript/lib",
|
|
69
|
-
"editor.defaultFormatter": "
|
|
40
|
+
"editor.defaultFormatter": "biomejs.biome",
|
|
70
41
|
"editor.formatOnSave": true,
|
|
71
42
|
"editor.formatOnPaste": true,
|
|
72
43
|
"emmet.showExpandedAbbreviation": "never",
|
|
73
44
|
"editor.codeActionsOnSave": {
|
|
74
|
-
"
|
|
75
|
-
"source.
|
|
76
|
-
|
|
77
|
-
},
|
|
78
|
-
"[typescriptreact]": {
|
|
79
|
-
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
80
|
-
},
|
|
81
|
-
"eslint.useFlatConfig": true,
|
|
82
|
-
"eslint.options": {
|
|
83
|
-
"overrideConfigFile": "eslint.config.mjs"
|
|
84
|
-
},
|
|
85
|
-
"eslint.runtime": "node"
|
|
45
|
+
"quickfix.biome": "explicit",
|
|
46
|
+
"source.organizeImports.biome": "explicit"
|
|
47
|
+
}
|
|
86
48
|
}
|
|
87
49
|
```
|
|
88
50
|
|
|
@@ -92,88 +54,38 @@ Lastly, ensure your `tsconfig.json` (if it exists) includes your new ESLint conf
|
|
|
92
54
|
{
|
|
93
55
|
"compilerOptions": {
|
|
94
56
|
"strictNullChecks": true
|
|
95
|
-
}
|
|
96
|
-
"include": ["eslint.config.mjs"]
|
|
57
|
+
}
|
|
97
58
|
}
|
|
98
59
|
```
|
|
99
60
|
|
|
100
|
-
## Usage
|
|
101
|
-
|
|
102
|
-
Once Ultracite is set up, it will automatically format your code on save.
|
|
103
|
-
|
|
104
61
|
## Configuration
|
|
105
62
|
|
|
106
|
-
|
|
63
|
+
While Ultracite is designed to be zero-config, you can modify anything you'd like in your `biome.json` file. For example, to enable the `noAutofocus` rule, you can do the following:
|
|
107
64
|
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"extends": ["ultracite"],
|
|
68
|
+
"linter": {
|
|
69
|
+
"rules": {
|
|
70
|
+
"a11y": {
|
|
71
|
+
"noAutofocus": "off"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
114
74
|
}
|
|
115
75
|
}
|
|
116
|
-
|
|
117
|
-
export { default } from 'ultracite';
|
|
118
76
|
```
|
|
119
77
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
```ts
|
|
123
|
-
import ultracite from 'ultracite';
|
|
124
|
-
|
|
125
|
-
for (const config of ultracite) {
|
|
126
|
-
config.settings ||= {};
|
|
127
|
-
config.settings.polyfills ||= [];
|
|
128
|
-
|
|
129
|
-
config.settings.polyfills.push(
|
|
130
|
-
// These are from Next.js - https://nextjs.org/docs/architecture/supported-browsers#polyfills
|
|
131
|
-
'fetch',
|
|
132
|
-
'URL',
|
|
133
|
-
'Object.assign',
|
|
78
|
+
You can also disable rules on a per-line basis by adding a comment to the end of the line:
|
|
134
79
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
export { default } from 'ultracite';
|
|
80
|
+
```tsx
|
|
81
|
+
// biome-ignore lint/security/noDangerouslySetInnerHtml: I do what I want mate.
|
|
82
|
+
<div dangerouslySetInnerHTML={{ ... }} />
|
|
141
83
|
```
|
|
142
84
|
|
|
143
|
-
##
|
|
144
|
-
|
|
145
|
-
If you're having issues with Ultracite, you can open the ESLint Output panel in VS Code to see what's going on. Optimally, it should look something like this:
|
|
146
|
-
|
|
147
|
-
```
|
|
148
|
-
[Info - 10:42:49 PM] ESLint server is starting.
|
|
149
|
-
[Info - 10:42:49 PM] ESLint server running in node v18.15.0
|
|
150
|
-
[Info - 10:42:49 PM] ESLint server is running.
|
|
151
|
-
[Info - 10:42:50 PM] ESLint library loaded from: /Users/haydenbleasel/GitHub/ultracite/node_modules/.pnpm/eslint@8.51.0/node_modules/eslint/lib/unsupported-api.js
|
|
152
|
-
```
|
|
85
|
+
## Notes
|
|
153
86
|
|
|
154
|
-
|
|
87
|
+
Ultracite was previously built on [ESLint](https://eslint.org/), [Prettier](https://prettier.io/) and [Stylelint](https://stylelint.io/). If you'd like to use stack, you can install it with the following command:
|
|
155
88
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
If you're using Ultracite in a monorepo, you will need to do two things:
|
|
159
|
-
|
|
160
|
-
1. Place the files above in every package and application, as well as the root.
|
|
161
|
-
2. Add the following to your `.vscode/settings.json` file:
|
|
162
|
-
|
|
163
|
-
```json
|
|
164
|
-
{
|
|
165
|
-
"eslint.workingDirectories": [
|
|
166
|
-
{
|
|
167
|
-
"mode": "auto"
|
|
168
|
-
}
|
|
169
|
-
]
|
|
170
|
-
}
|
|
89
|
+
```sh
|
|
90
|
+
pnpm add -D ultracite@3 eslint@8 prettier stylelint typescript jest
|
|
171
91
|
```
|
|
172
|
-
|
|
173
|
-
This will ensure ESLint works correctly in all packages and applications by automatically detecting the working directory based on the nearest `package.json` and `eslint.config.mjs`, thus limiting the scope of ESLint to the current package or application and improving performance.
|
|
174
|
-
|
|
175
|
-
## Roadmap
|
|
176
|
-
|
|
177
|
-
- https://github.com/ota-meshi/eslint-plugin-yml
|
|
178
|
-
- https://github.com/mdx-js/eslint-mdx/tree/master/packages/eslint-plugin-mdx
|
|
179
|
-
- https://github.com/eslint/eslint-plugin-markdown
|
package/biome.json
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://biomejs.dev/schemas/1.8.3/schema.json",
|
|
3
|
+
"formatter": {
|
|
4
|
+
"enabled": true,
|
|
5
|
+
"formatWithErrors": true,
|
|
6
|
+
"indentStyle": "space",
|
|
7
|
+
"indentWidth": 2,
|
|
8
|
+
"lineEnding": "lf",
|
|
9
|
+
"lineWidth": 80,
|
|
10
|
+
"attributePosition": "auto"
|
|
11
|
+
},
|
|
12
|
+
"organizeImports": { "enabled": true },
|
|
13
|
+
"linter": {
|
|
14
|
+
"enabled": true,
|
|
15
|
+
"rules": {
|
|
16
|
+
"all": true,
|
|
17
|
+
"a11y": {
|
|
18
|
+
"noAutofocus": "off"
|
|
19
|
+
},
|
|
20
|
+
"nursery": {
|
|
21
|
+
"all": true,
|
|
22
|
+
"useImportRestrictions": "off",
|
|
23
|
+
"noUndeclaredDependencies": "off",
|
|
24
|
+
"noReactSpecificProps": "off",
|
|
25
|
+
"useImportExtensions": "off"
|
|
26
|
+
},
|
|
27
|
+
"style": {
|
|
28
|
+
"noDefaultExport": "off",
|
|
29
|
+
"noImplicitBoolean": "off",
|
|
30
|
+
"useFilenamingConvention": {
|
|
31
|
+
"level": "error",
|
|
32
|
+
"options": {
|
|
33
|
+
"requireAscii": true,
|
|
34
|
+
"filenameCases": ["kebab-case"]
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"useSingleVarDeclarator": "off"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"javascript": {
|
|
42
|
+
"formatter": {
|
|
43
|
+
"arrowParentheses": "always",
|
|
44
|
+
"attributePosition": "auto",
|
|
45
|
+
"bracketSameLine": false,
|
|
46
|
+
"bracketSpacing": true,
|
|
47
|
+
"enabled": true,
|
|
48
|
+
"indentStyle": "space",
|
|
49
|
+
"indentWidth": 2,
|
|
50
|
+
"jsxQuoteStyle": "double",
|
|
51
|
+
"lineEnding": "lf",
|
|
52
|
+
"lineWidth": 80,
|
|
53
|
+
"quoteProperties": "asNeeded",
|
|
54
|
+
"quoteStyle": "single",
|
|
55
|
+
"semicolons": "always",
|
|
56
|
+
"trailingCommas": "es5"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"css": {
|
|
60
|
+
"formatter": {
|
|
61
|
+
"enabled": true,
|
|
62
|
+
"indentStyle": "space",
|
|
63
|
+
"indentWidth": 2,
|
|
64
|
+
"lineEnding": "lf",
|
|
65
|
+
"lineWidth": 80,
|
|
66
|
+
"quoteStyle": "double"
|
|
67
|
+
},
|
|
68
|
+
"linter": {
|
|
69
|
+
"enabled": true
|
|
70
|
+
},
|
|
71
|
+
"parser": {
|
|
72
|
+
"allowWrongLineComments": false,
|
|
73
|
+
"cssModules": false
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"json": {
|
|
77
|
+
"formatter": {
|
|
78
|
+
"enabled": true,
|
|
79
|
+
"indentStyle": "space",
|
|
80
|
+
"indentWidth": 2,
|
|
81
|
+
"lineEnding": "lf",
|
|
82
|
+
"lineWidth": 80,
|
|
83
|
+
"trailingCommas": "none"
|
|
84
|
+
},
|
|
85
|
+
"linter": {
|
|
86
|
+
"enabled": true
|
|
87
|
+
},
|
|
88
|
+
"parser": {
|
|
89
|
+
"allowComments": false,
|
|
90
|
+
"allowTrailingCommas": false
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"vcs": {
|
|
94
|
+
"enabled": true,
|
|
95
|
+
"clientKind": "git",
|
|
96
|
+
"useIgnoreFile": true,
|
|
97
|
+
"defaultBranch": "main"
|
|
98
|
+
},
|
|
99
|
+
"files": {
|
|
100
|
+
"ignore": ["**/components/ui/**"]
|
|
101
|
+
}
|
|
102
|
+
}
|
package/package.json
CHANGED
|
@@ -1,60 +1,35 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"eslint-config-prettier": "^9.1.0",
|
|
12
|
-
"eslint-import-resolver-typescript": "^3.6.1",
|
|
13
|
-
"eslint-plugin-compat": "^4.2.0",
|
|
14
|
-
"eslint-plugin-cypress": "^3.2.0",
|
|
15
|
-
"eslint-plugin-github": "5.0.0-2",
|
|
16
|
-
"eslint-plugin-html": "^8.1.1",
|
|
17
|
-
"eslint-plugin-import": "^2.29.1",
|
|
18
|
-
"eslint-plugin-jest": "^28.5.0",
|
|
19
|
-
"eslint-plugin-jsx-a11y": "^6.8.0",
|
|
20
|
-
"eslint-plugin-n": "^17.7.0",
|
|
21
|
-
"eslint-plugin-prettier": "^5.1.3",
|
|
22
|
-
"eslint-plugin-promise": "^6.2.0",
|
|
23
|
-
"eslint-plugin-react": "^7.34.1",
|
|
24
|
-
"eslint-plugin-react-hooks": "^4.6.2",
|
|
25
|
-
"eslint-plugin-sonarjs": "^1.0.3",
|
|
26
|
-
"eslint-plugin-storybook": "^0.8.0",
|
|
27
|
-
"eslint-plugin-tailwindcss": "^3.17.0",
|
|
28
|
-
"eslint-plugin-unicorn": "^53.0.0",
|
|
29
|
-
"eslint-plugin-unused-imports": "^3.2.0",
|
|
30
|
-
"globals": "^15.3.0",
|
|
31
|
-
"prettier-plugin-tailwindcss": "^0.5.14",
|
|
32
|
-
"stylelint-config-idiomatic-order": "^10.0.0",
|
|
33
|
-
"stylelint-config-standard": "^36.0.0",
|
|
34
|
-
"stylelint-prettier": "^5.0.0",
|
|
35
|
-
"tsup": "^8.0.2"
|
|
2
|
+
"author": "Hayden Bleasel <hello@haydenbleasel.com>",
|
|
3
|
+
"auto": {
|
|
4
|
+
"plugins": [
|
|
5
|
+
"npm",
|
|
6
|
+
"all-contributors",
|
|
7
|
+
"conventional-commits",
|
|
8
|
+
"first-time-contributor",
|
|
9
|
+
"released"
|
|
10
|
+
]
|
|
36
11
|
},
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"jest": "^29.7.0",
|
|
40
|
-
"prettier": "^3.1.1",
|
|
41
|
-
"stylelint": "^16.0.2",
|
|
42
|
-
"typescript": "^5.3.3"
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/haydenbleasel/ultracite/issues"
|
|
43
14
|
},
|
|
15
|
+
"description": "Strict, opinionated linting config for modern TypeScript apps.",
|
|
44
16
|
"devDependencies": {
|
|
45
|
-
"@
|
|
46
|
-
"@types/react-dom": "^18.3.0",
|
|
47
|
-
"eslint": "8.56.0",
|
|
48
|
-
"jest": "^29.7.0",
|
|
49
|
-
"prettier": "^3.2.5",
|
|
50
|
-
"react": "^18.3.1",
|
|
51
|
-
"react-dom": "^18.3.1",
|
|
52
|
-
"stylelint": "^16.6.0",
|
|
53
|
-
"typescript": "^5.4.5"
|
|
17
|
+
"@biomejs/biome": "1.8.3"
|
|
54
18
|
},
|
|
19
|
+
"files": [
|
|
20
|
+
"biome.json"
|
|
21
|
+
],
|
|
22
|
+
"homepage": "https://github.com/haydenbleasel/ultracite#readme",
|
|
23
|
+
"keywords": [
|
|
24
|
+
"ultracite",
|
|
25
|
+
"biome",
|
|
26
|
+
"linter",
|
|
27
|
+
"formatter",
|
|
28
|
+
"fixer"
|
|
29
|
+
],
|
|
30
|
+
"license": "ISC",
|
|
31
|
+
"main": "./biome.json",
|
|
55
32
|
"name": "ultracite",
|
|
56
|
-
"description": "Strict, opinionated ESLint config for modern TypeScript apps.",
|
|
57
|
-
"version": "3.9.10",
|
|
58
33
|
"publishConfig": {
|
|
59
34
|
"access": "public",
|
|
60
35
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -63,40 +38,5 @@
|
|
|
63
38
|
"type": "git",
|
|
64
39
|
"url": "git+https://github.com/haydenbleasel/ultracite.git"
|
|
65
40
|
},
|
|
66
|
-
"
|
|
67
|
-
"keywords": [
|
|
68
|
-
"ultracite",
|
|
69
|
-
"eslint",
|
|
70
|
-
"prettier",
|
|
71
|
-
"stylelint",
|
|
72
|
-
"typescript"
|
|
73
|
-
],
|
|
74
|
-
"scripts": {
|
|
75
|
-
"prepublishOnly": "pnpm build",
|
|
76
|
-
"build": "tsup",
|
|
77
|
-
"dev": "tsup --watch"
|
|
78
|
-
},
|
|
79
|
-
"files": [
|
|
80
|
-
"dist"
|
|
81
|
-
],
|
|
82
|
-
"exports": {
|
|
83
|
-
".": "./dist/eslint.config.mjs",
|
|
84
|
-
"./prettier": "./dist/prettier.config.mjs",
|
|
85
|
-
"./stylelint": "./dist/stylelint.config.mjs"
|
|
86
|
-
},
|
|
87
|
-
"author": "Hayden Bleasel <hello@haydenbleasel.com>",
|
|
88
|
-
"license": "ISC",
|
|
89
|
-
"bugs": {
|
|
90
|
-
"url": "https://github.com/haydenbleasel/ultracite/issues"
|
|
91
|
-
},
|
|
92
|
-
"homepage": "https://github.com/haydenbleasel/ultracite#readme",
|
|
93
|
-
"auto": {
|
|
94
|
-
"plugins": [
|
|
95
|
-
"npm",
|
|
96
|
-
"all-contributors",
|
|
97
|
-
"conventional-commits",
|
|
98
|
-
"first-time-contributor",
|
|
99
|
-
"released"
|
|
100
|
-
]
|
|
101
|
-
}
|
|
41
|
+
"version": "4.0.0"
|
|
102
42
|
}
|
package/dist/eslint.config.d.mts
DELETED
|
@@ -1,621 +0,0 @@
|
|
|
1
|
-
import plugin$1 from 'eslint-plugin-react';
|
|
2
|
-
import reactHooks, { rules as rules$d } from 'eslint-plugin-react-hooks';
|
|
3
|
-
import typescript from '@typescript-eslint/eslint-plugin';
|
|
4
|
-
import plugin$2 from 'eslint-plugin-jsx-a11y';
|
|
5
|
-
import * as importPlugin from 'eslint-plugin-import';
|
|
6
|
-
import { rules as rules$e } from 'eslint-plugin-import';
|
|
7
|
-
import plugin$3 from 'eslint-plugin-jest';
|
|
8
|
-
import plugin$4 from 'eslint-plugin-promise';
|
|
9
|
-
import plugin$5 from 'eslint-plugin-n';
|
|
10
|
-
import plugin$6 from '@next/eslint-plugin-next';
|
|
11
|
-
import globals from 'globals';
|
|
12
|
-
import prettier from 'eslint-plugin-prettier';
|
|
13
|
-
import plugin$7 from 'eslint-plugin-cypress';
|
|
14
|
-
import plugin$8 from 'eslint-plugin-storybook';
|
|
15
|
-
import plugin$9 from 'eslint-plugin-unused-imports';
|
|
16
|
-
import * as importTypescriptResolver from 'eslint-import-resolver-typescript';
|
|
17
|
-
import html from 'eslint-plugin-html';
|
|
18
|
-
import compat from 'eslint-plugin-compat';
|
|
19
|
-
import eslintPrettier from 'eslint-config-prettier';
|
|
20
|
-
import * as typescriptParser from '@typescript-eslint/parser';
|
|
21
|
-
import plugin$a from 'eslint-plugin-sonarjs';
|
|
22
|
-
import plugin$b from 'eslint-plugin-unicorn';
|
|
23
|
-
import plugin$c from 'eslint-plugin-github';
|
|
24
|
-
import * as query from '@tanstack/eslint-plugin-query';
|
|
25
|
-
import { rules as rules$f } from '@tanstack/eslint-plugin-query';
|
|
26
|
-
import plugin from '@eslint/js';
|
|
27
|
-
|
|
28
|
-
const overrideRules$g = {
|
|
29
|
-
'no-unused-private-class-members': 'off',
|
|
30
|
-
'capitalized-comments': 'off',
|
|
31
|
-
complexity: 'off',
|
|
32
|
-
'id-length': ['error', { exceptions: ['x', 'y', 'z'] }],
|
|
33
|
-
'max-lines': 'off',
|
|
34
|
-
'max-lines-per-function': 'off',
|
|
35
|
-
'max-params': 'off',
|
|
36
|
-
'max-statements': 'off',
|
|
37
|
-
'no-ternary': 'off',
|
|
38
|
-
'no-undefined': 'off',
|
|
39
|
-
'one-var': 'off',
|
|
40
|
-
'prefer-destructuring': [
|
|
41
|
-
'error',
|
|
42
|
-
{
|
|
43
|
-
array: false,
|
|
44
|
-
object: true,
|
|
45
|
-
},
|
|
46
|
-
],
|
|
47
|
-
// https://github.com/eslint/eslint/issues/11542
|
|
48
|
-
'sort-imports': 'off',
|
|
49
|
-
'sort-keys': 'off',
|
|
50
|
-
'sort-vars': 'off',
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
const config$k = Object.assign(plugin.configs.all.rules, overrideRules$g);
|
|
54
|
-
|
|
55
|
-
const { rules: rules$c } = plugin$1;
|
|
56
|
-
|
|
57
|
-
const availableKeys$f = Object.keys(rules$c).filter(
|
|
58
|
-
(key) => !rules$c[key].meta.deprecated
|
|
59
|
-
);
|
|
60
|
-
|
|
61
|
-
const baseRules$f = Object.fromEntries(
|
|
62
|
-
availableKeys$f.map((key) => [`react/${key}`, 'error'])
|
|
63
|
-
);
|
|
64
|
-
|
|
65
|
-
const overrideRules$f = {
|
|
66
|
-
'react/forbid-component-props': 'off',
|
|
67
|
-
'react/function-component-definition': [
|
|
68
|
-
'error',
|
|
69
|
-
{
|
|
70
|
-
namedComponents: 'arrow-function',
|
|
71
|
-
},
|
|
72
|
-
],
|
|
73
|
-
'react/no-array-index-key': 'off',
|
|
74
|
-
'react/no-arrow-function-lifecycle': 'off',
|
|
75
|
-
'react/no-invalid-html-attribute': 'off',
|
|
76
|
-
'react/no-multi-comp': 'off',
|
|
77
|
-
'react/no-unused-class-component-methods': 'off',
|
|
78
|
-
'react/react-in-jsx-scope': 'off',
|
|
79
|
-
'react/require-default-props': 'off',
|
|
80
|
-
'react/jsx-filename-extension': [
|
|
81
|
-
'error',
|
|
82
|
-
{
|
|
83
|
-
extensions: ['.tsx'],
|
|
84
|
-
},
|
|
85
|
-
],
|
|
86
|
-
'react/jsx-max-depth': 'off',
|
|
87
|
-
'react/jsx-max-props-per-line': 'off',
|
|
88
|
-
'react/jsx-newline': 'off',
|
|
89
|
-
'react/jsx-no-bind': 'off',
|
|
90
|
-
'react/jsx-no-literals': 'off',
|
|
91
|
-
'react/jsx-one-expression-per-line': 'off',
|
|
92
|
-
'react/jsx-props-no-spreading': 'off',
|
|
93
|
-
'react/jsx-sort-props': 'off',
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
const config$j = Object.assign(baseRules$f, overrideRules$f);
|
|
97
|
-
|
|
98
|
-
const availableKeys$e = Object.keys(rules$d).filter(
|
|
99
|
-
(key) => !rules$d[key].meta.deprecated
|
|
100
|
-
);
|
|
101
|
-
|
|
102
|
-
const baseRules$e = Object.fromEntries(
|
|
103
|
-
availableKeys$e.map((key) => [`react-hooks/${key}`, 'error'])
|
|
104
|
-
);
|
|
105
|
-
|
|
106
|
-
const overrideRules$e = {
|
|
107
|
-
'react-hooks/exhaustive-deps': 'error',
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
const config$i = Object.assign(baseRules$e, overrideRules$e);
|
|
111
|
-
|
|
112
|
-
const { rules: rules$b } = typescript;
|
|
113
|
-
|
|
114
|
-
const availableKeys$d = Object.keys(rules$b).filter(
|
|
115
|
-
(key) => !rules$b[key].meta.deprecated
|
|
116
|
-
);
|
|
117
|
-
|
|
118
|
-
const baseRules$d = Object.fromEntries(
|
|
119
|
-
availableKeys$d.map((key) => [`@typescript-eslint/${key}`, 'error'])
|
|
120
|
-
);
|
|
121
|
-
|
|
122
|
-
const overrideRules$d = {
|
|
123
|
-
'@typescript-eslint/consistent-type-definitions': ['error', 'type'],
|
|
124
|
-
'@typescript-eslint/explicit-function-return-type': 'off',
|
|
125
|
-
'@typescript-eslint/naming-convention': [
|
|
126
|
-
'error',
|
|
127
|
-
{
|
|
128
|
-
selector: 'default',
|
|
129
|
-
format: ['camelCase', 'PascalCase', 'snake_case'],
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
selector: 'objectLiteralProperty',
|
|
133
|
-
format: null,
|
|
134
|
-
modifiers: ['requiresQuotes'],
|
|
135
|
-
},
|
|
136
|
-
],
|
|
137
|
-
'@typescript-eslint/no-confusing-void-expression': 'off',
|
|
138
|
-
'@typescript-eslint/no-misused-promises': 'off',
|
|
139
|
-
'@typescript-eslint/no-type-alias': 'off',
|
|
140
|
-
'@typescript-eslint/prefer-readonly': 'off',
|
|
141
|
-
'@typescript-eslint/prefer-readonly-parameter-types': 'off',
|
|
142
|
-
'@typescript-eslint/sort-type-union-intersection-members': 'off',
|
|
143
|
-
'@typescript-eslint/strict-boolean-expressions': 'off',
|
|
144
|
-
'@typescript-eslint/no-magic-numbers': 'off',
|
|
145
|
-
|
|
146
|
-
// Disabled for Prettier
|
|
147
|
-
'@typescript-eslint/block-spacing': 'off',
|
|
148
|
-
'@typescript-eslint/brace-style': 'off',
|
|
149
|
-
'@typescript-eslint/comma-dangle': 'off',
|
|
150
|
-
'@typescript-eslint/comma-spacing': 'off',
|
|
151
|
-
'@typescript-eslint/func-call-spacing': 'off',
|
|
152
|
-
'@typescript-eslint/indent': 'off',
|
|
153
|
-
'@typescript-eslint/key-spacing': 'off',
|
|
154
|
-
'@typescript-eslint/keyword-spacing': 'off',
|
|
155
|
-
'@typescript-eslint/lines-around-comment': 'off',
|
|
156
|
-
'@typescript-eslint/lines-between-class-members': 'off',
|
|
157
|
-
'@typescript-eslint/member-delimiter-style': 'off',
|
|
158
|
-
'@typescript-eslint/no-extra-parens': 'off',
|
|
159
|
-
'@typescript-eslint/object-curly-spacing': 'off',
|
|
160
|
-
'@typescript-eslint/padding-line-between-statements': 'off',
|
|
161
|
-
'@typescript-eslint/quotes': 'off',
|
|
162
|
-
'@typescript-eslint/semi': 'off',
|
|
163
|
-
'@typescript-eslint/space-before-blocks': 'off',
|
|
164
|
-
'@typescript-eslint/space-before-function-paren': 'off',
|
|
165
|
-
'@typescript-eslint/space-infix-ops': 'off',
|
|
166
|
-
'@typescript-eslint/type-annotation-spacing': 'off',
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
const config$h = Object.assign(baseRules$d, overrideRules$d);
|
|
170
|
-
|
|
171
|
-
const { rules: rules$a } = plugin$2;
|
|
172
|
-
|
|
173
|
-
const availableKeys$c = Object.keys(rules$a).filter(
|
|
174
|
-
(key) => !rules$a[key].meta.deprecated
|
|
175
|
-
);
|
|
176
|
-
|
|
177
|
-
const baseRules$c = Object.fromEntries(
|
|
178
|
-
availableKeys$c.map((key) => [`jsx-a11y/${key}`, 'error'])
|
|
179
|
-
);
|
|
180
|
-
|
|
181
|
-
const overrideRules$c = {
|
|
182
|
-
'jsx-a11y/no-autofocus': 'off',
|
|
183
|
-
'jsx-a11y/label-has-associated-control': [
|
|
184
|
-
'error',
|
|
185
|
-
{
|
|
186
|
-
labelComponents: ['Label'],
|
|
187
|
-
controlComponents: ['Input', 'Select', 'Textarea', 'Checkbox', 'Radio'],
|
|
188
|
-
depth: 3,
|
|
189
|
-
},
|
|
190
|
-
],
|
|
191
|
-
};
|
|
192
|
-
|
|
193
|
-
const config$g = Object.assign(baseRules$c, overrideRules$c);
|
|
194
|
-
|
|
195
|
-
const availableKeys$b = Object.keys(rules$e).filter(
|
|
196
|
-
(key) => !rules$e[key].meta.deprecated
|
|
197
|
-
);
|
|
198
|
-
|
|
199
|
-
const baseRules$b = Object.fromEntries(
|
|
200
|
-
availableKeys$b.map((key) => [`import/${key}`, 'error'])
|
|
201
|
-
);
|
|
202
|
-
|
|
203
|
-
const overrideRules$b = {
|
|
204
|
-
'import/no-unresolved': 'off',
|
|
205
|
-
'import/no-internal-modules': 'off',
|
|
206
|
-
'import/no-relative-parent-imports': 'off',
|
|
207
|
-
'import/no-named-as-default': 'off',
|
|
208
|
-
'import/exports-last': 'off',
|
|
209
|
-
'import/no-namespace': 'off',
|
|
210
|
-
'import/extensions': 'off',
|
|
211
|
-
'import/order': [
|
|
212
|
-
'error',
|
|
213
|
-
{
|
|
214
|
-
groups: [
|
|
215
|
-
'builtin',
|
|
216
|
-
'external',
|
|
217
|
-
'internal',
|
|
218
|
-
'parent',
|
|
219
|
-
'sibling',
|
|
220
|
-
'index',
|
|
221
|
-
'object',
|
|
222
|
-
'type',
|
|
223
|
-
],
|
|
224
|
-
},
|
|
225
|
-
],
|
|
226
|
-
'import/prefer-default-export': 'off',
|
|
227
|
-
'import/max-dependencies': 'off',
|
|
228
|
-
'import/no-unassigned-import': 'off',
|
|
229
|
-
'import/no-default-export': 'off',
|
|
230
|
-
'import/no-named-export': 'off',
|
|
231
|
-
'import/group-exports': 'off',
|
|
232
|
-
};
|
|
233
|
-
|
|
234
|
-
const config$f = Object.assign(baseRules$b, overrideRules$b);
|
|
235
|
-
|
|
236
|
-
const { rules: rules$9 } = plugin$3;
|
|
237
|
-
|
|
238
|
-
const availableKeys$a = Object.keys(rules$9).filter(
|
|
239
|
-
(key) => !rules$9[key].meta.deprecated
|
|
240
|
-
);
|
|
241
|
-
|
|
242
|
-
const baseRules$a = Object.fromEntries(
|
|
243
|
-
availableKeys$a.map((key) => [`jest/${key}`, 'error'])
|
|
244
|
-
);
|
|
245
|
-
|
|
246
|
-
const overrideRules$a = {};
|
|
247
|
-
|
|
248
|
-
const config$e = Object.assign(baseRules$a, overrideRules$a);
|
|
249
|
-
|
|
250
|
-
const { rules: rules$8 } = plugin$4;
|
|
251
|
-
|
|
252
|
-
const availableKeys$9 = Object.keys(rules$8).filter(
|
|
253
|
-
(key) => !rules$8[key].meta.deprecated
|
|
254
|
-
);
|
|
255
|
-
|
|
256
|
-
const baseRules$9 = Object.fromEntries(
|
|
257
|
-
availableKeys$9.map((key) => [`promise/${key}`, 'error'])
|
|
258
|
-
);
|
|
259
|
-
|
|
260
|
-
const overrideRules$9 = {
|
|
261
|
-
'promise/catch-or-return': ['error', { allowFinally: true }],
|
|
262
|
-
'promise/no-native': 'off',
|
|
263
|
-
};
|
|
264
|
-
|
|
265
|
-
const config$d = Object.assign(baseRules$9, overrideRules$9);
|
|
266
|
-
|
|
267
|
-
const { rules: rules$7 } = plugin$5;
|
|
268
|
-
|
|
269
|
-
const availableKeys$8 = Object.keys(rules$7).filter(
|
|
270
|
-
(key) => !rules$7[key].meta.deprecated
|
|
271
|
-
);
|
|
272
|
-
|
|
273
|
-
const baseRules$8 = Object.fromEntries(
|
|
274
|
-
availableKeys$8.map((key) => [`n/${key}`, 'error'])
|
|
275
|
-
);
|
|
276
|
-
|
|
277
|
-
const overrideRules$8 = {
|
|
278
|
-
'n/no-missing-import': 'off',
|
|
279
|
-
'n/no-unsupported-features/es-builtins': 'off',
|
|
280
|
-
'n/no-unsupported-features/es-syntax': 'off',
|
|
281
|
-
'n/no-unsupported-features/node-builtins': 'off',
|
|
282
|
-
'n/file-extension-in-import': 'off',
|
|
283
|
-
'n/no-process-env': 'off',
|
|
284
|
-
};
|
|
285
|
-
|
|
286
|
-
const config$c = Object.assign(baseRules$8, overrideRules$8);
|
|
287
|
-
|
|
288
|
-
const { rules: rules$6 } = plugin$6;
|
|
289
|
-
|
|
290
|
-
const availableKeys$7 = Object.keys(rules$6).filter(
|
|
291
|
-
(key) => !rules$6[key].meta.deprecated
|
|
292
|
-
);
|
|
293
|
-
|
|
294
|
-
const baseRules$7 = Object.fromEntries(
|
|
295
|
-
availableKeys$7.map((key) => [`@next/next/${key}`, 'error'])
|
|
296
|
-
);
|
|
297
|
-
|
|
298
|
-
const overrideRules$7 = {};
|
|
299
|
-
|
|
300
|
-
const config$b = Object.assign(baseRules$7, overrideRules$7);
|
|
301
|
-
|
|
302
|
-
const config$a = {
|
|
303
|
-
'prettier/prettier': 'error',
|
|
304
|
-
};
|
|
305
|
-
|
|
306
|
-
const config$9 = {
|
|
307
|
-
// ESLint Disabled for Typescript-ESLint
|
|
308
|
-
'brace-style': 'off',
|
|
309
|
-
camelcase: 'off',
|
|
310
|
-
'comma-dangle': 'off',
|
|
311
|
-
'comma-spacing': 'off',
|
|
312
|
-
'default-param-last': 'off',
|
|
313
|
-
'dot-notation': 'off',
|
|
314
|
-
'func-call-spacing': 'off',
|
|
315
|
-
indent: 'off',
|
|
316
|
-
'init-declarations': 'off',
|
|
317
|
-
'keyword-spacing': 'off',
|
|
318
|
-
'lines-between-class-members': 'off',
|
|
319
|
-
'no-array-constructor': 'off',
|
|
320
|
-
'no-dupe-class-members': 'off',
|
|
321
|
-
'no-duplicate-imports': 'off',
|
|
322
|
-
'no-empty-function': 'off',
|
|
323
|
-
'no-extra-parens': 'off',
|
|
324
|
-
'no-extra-semi': 'off',
|
|
325
|
-
'no-implied-eval': 'off',
|
|
326
|
-
'no-invalid-this': 'off',
|
|
327
|
-
'no-loop-func': 'off',
|
|
328
|
-
'no-loss-of-precision': 'off',
|
|
329
|
-
'no-magic-numbers': 'off',
|
|
330
|
-
'no-redeclare': 'off',
|
|
331
|
-
'no-restricted-imports': 'off',
|
|
332
|
-
'no-shadow': 'off',
|
|
333
|
-
'no-throw-literal': 'off',
|
|
334
|
-
'no-unused-expressions': 'off',
|
|
335
|
-
'no-unused-vars': 'off',
|
|
336
|
-
'no-use-before-define': 'off',
|
|
337
|
-
'no-useless-constructor': 'off',
|
|
338
|
-
'object-curly-spacing': 'off',
|
|
339
|
-
'padding-line-between-statements': 'off',
|
|
340
|
-
quotes: 'off',
|
|
341
|
-
'require-await': 'off',
|
|
342
|
-
'no-return-await': 'off',
|
|
343
|
-
semi: 'off',
|
|
344
|
-
'space-before-function-paren': 'off',
|
|
345
|
-
'space-infix-ops': 'off',
|
|
346
|
-
};
|
|
347
|
-
|
|
348
|
-
const { rules: rules$5 } = plugin$7;
|
|
349
|
-
|
|
350
|
-
const availableKeys$6 = Object.keys(rules$5).filter(
|
|
351
|
-
(key) => !rules$5[key].meta.deprecated
|
|
352
|
-
);
|
|
353
|
-
|
|
354
|
-
const baseRules$6 = Object.fromEntries(
|
|
355
|
-
availableKeys$6.map((key) => [`cypress/${key}`, 'error'])
|
|
356
|
-
);
|
|
357
|
-
|
|
358
|
-
const overrideRules$6 = {};
|
|
359
|
-
|
|
360
|
-
const config$8 = Object.assign(baseRules$6, overrideRules$6);
|
|
361
|
-
|
|
362
|
-
const { rules: rules$4 } = plugin$8;
|
|
363
|
-
|
|
364
|
-
const availableKeys$5 = Object.keys(rules$4).filter(
|
|
365
|
-
(key) => !rules$4[key].meta.deprecated
|
|
366
|
-
);
|
|
367
|
-
|
|
368
|
-
const baseRules$5 = Object.fromEntries(
|
|
369
|
-
availableKeys$5.map((key) => [`storybook/${key}`, 'error'])
|
|
370
|
-
);
|
|
371
|
-
|
|
372
|
-
const overrideRules$5 = {};
|
|
373
|
-
|
|
374
|
-
const config$7 = Object.assign(baseRules$5, overrideRules$5);
|
|
375
|
-
|
|
376
|
-
const { rules: rules$3 } = plugin$9;
|
|
377
|
-
|
|
378
|
-
const availableKeys$4 = Object.keys(rules$3).filter(
|
|
379
|
-
(key) => !rules$3[key].meta.deprecated
|
|
380
|
-
);
|
|
381
|
-
|
|
382
|
-
const baseRules$4 = Object.fromEntries(
|
|
383
|
-
availableKeys$4.map((key) => [`unused-imports/${key}`, 'error'])
|
|
384
|
-
);
|
|
385
|
-
|
|
386
|
-
const overrideRules$4 = {};
|
|
387
|
-
|
|
388
|
-
const config$6 = Object.assign(baseRules$4, overrideRules$4);
|
|
389
|
-
|
|
390
|
-
const { rules: rules$2 } = plugin$a;
|
|
391
|
-
|
|
392
|
-
const availableKeys$3 = Object.keys(rules$2).filter(
|
|
393
|
-
(key) => !rules$2[key].meta.deprecated
|
|
394
|
-
);
|
|
395
|
-
|
|
396
|
-
const baseRules$3 = Object.fromEntries(
|
|
397
|
-
availableKeys$3.map((key) => [`sonarjs/${key}`, 'error'])
|
|
398
|
-
);
|
|
399
|
-
|
|
400
|
-
const overrideRules$3 = {
|
|
401
|
-
'sonarjs/elseif-without-else': 'off',
|
|
402
|
-
};
|
|
403
|
-
|
|
404
|
-
const config$5 = Object.assign(baseRules$3, overrideRules$3);
|
|
405
|
-
|
|
406
|
-
const config$4 = {
|
|
407
|
-
'compat/compat': 'warn',
|
|
408
|
-
};
|
|
409
|
-
|
|
410
|
-
const { rules: rules$1 } = plugin$b;
|
|
411
|
-
|
|
412
|
-
const availableKeys$2 = Object.keys(rules$1).filter(
|
|
413
|
-
(key) => !rules$1[key].meta.deprecated
|
|
414
|
-
);
|
|
415
|
-
|
|
416
|
-
const baseRules$2 = Object.fromEntries(
|
|
417
|
-
availableKeys$2.map((key) => [`unicorn/${key}`, 'error'])
|
|
418
|
-
);
|
|
419
|
-
|
|
420
|
-
const overrideRules$2 = {
|
|
421
|
-
'unicorn/no-keyword-prefix': 'off',
|
|
422
|
-
'unicorn/no-null': 'off',
|
|
423
|
-
'unicorn/no-array-callback-reference': 'off',
|
|
424
|
-
'unicorn/prevent-abbreviations': [
|
|
425
|
-
'error',
|
|
426
|
-
{
|
|
427
|
-
allowList: {
|
|
428
|
-
getInitialProps: true,
|
|
429
|
-
getServerSideProps: true,
|
|
430
|
-
getStaticPaths: true,
|
|
431
|
-
getStaticProps: true,
|
|
432
|
-
generateStaticParams: true,
|
|
433
|
-
},
|
|
434
|
-
},
|
|
435
|
-
],
|
|
436
|
-
};
|
|
437
|
-
|
|
438
|
-
const config$3 = Object.assign(baseRules$2, overrideRules$2);
|
|
439
|
-
|
|
440
|
-
const { rules } = plugin$c;
|
|
441
|
-
|
|
442
|
-
const availableKeys$1 = Object.keys(rules).filter(
|
|
443
|
-
(key) => !rules[key].meta.deprecated
|
|
444
|
-
);
|
|
445
|
-
|
|
446
|
-
const baseRules$1 = Object.fromEntries(
|
|
447
|
-
availableKeys$1.map((key) => [`github/${key}`, 'error'])
|
|
448
|
-
);
|
|
449
|
-
|
|
450
|
-
const overrideRules$1 = {};
|
|
451
|
-
|
|
452
|
-
const config$2 = Object.assign(baseRules$1, overrideRules$1);
|
|
453
|
-
|
|
454
|
-
const availableKeys = Object.keys(rules$f).filter(
|
|
455
|
-
(key) => !rules$f[key].meta.deprecated
|
|
456
|
-
);
|
|
457
|
-
|
|
458
|
-
const baseRules = Object.fromEntries(
|
|
459
|
-
availableKeys.map((key) => [`@tanstack/eslint-plugin-query/${key}`, 'error'])
|
|
460
|
-
);
|
|
461
|
-
|
|
462
|
-
const overrideRules = {};
|
|
463
|
-
|
|
464
|
-
const config$1 = Object.assign(baseRules, overrideRules);
|
|
465
|
-
|
|
466
|
-
/* eslint-disable n/no-unpublished-import, n/no-extraneous-import, import/no-extraneous-dependencies, id-length */
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
const config = [
|
|
470
|
-
importPlugin.configs.typescript,
|
|
471
|
-
{
|
|
472
|
-
ignores: ['**/dist/', '**/build/', '**/.next/', '**/.turbo/'],
|
|
473
|
-
},
|
|
474
|
-
{
|
|
475
|
-
languageOptions: {
|
|
476
|
-
sourceType: 'module',
|
|
477
|
-
globals: {
|
|
478
|
-
...globals.browser,
|
|
479
|
-
...globals.node,
|
|
480
|
-
},
|
|
481
|
-
parserOptions: {
|
|
482
|
-
ecmaVersion: 'latest',
|
|
483
|
-
sourceType: 'module',
|
|
484
|
-
ecmaFeatures: {
|
|
485
|
-
jsx: true,
|
|
486
|
-
},
|
|
487
|
-
},
|
|
488
|
-
},
|
|
489
|
-
files: [
|
|
490
|
-
'**/*.js',
|
|
491
|
-
'**/*.jsx',
|
|
492
|
-
'**/*.ts',
|
|
493
|
-
'**/*.tsx',
|
|
494
|
-
'**/*.json',
|
|
495
|
-
'**/*.mjs',
|
|
496
|
-
'**/*.cjs',
|
|
497
|
-
'**/*.html',
|
|
498
|
-
],
|
|
499
|
-
plugins: {
|
|
500
|
-
prettier,
|
|
501
|
-
react: plugin$1,
|
|
502
|
-
'react-hooks': reactHooks,
|
|
503
|
-
'jsx-a11y': plugin$2,
|
|
504
|
-
import: importPlugin,
|
|
505
|
-
promise: plugin$4,
|
|
506
|
-
n: plugin$5,
|
|
507
|
-
'@next/next': plugin$6,
|
|
508
|
-
'unused-imports': plugin$9,
|
|
509
|
-
// tailwindcss,
|
|
510
|
-
sonarjs: plugin$a,
|
|
511
|
-
compat,
|
|
512
|
-
unicorn: plugin$b,
|
|
513
|
-
github: plugin$c,
|
|
514
|
-
'@tanstack/eslint-plugin-query': query,
|
|
515
|
-
},
|
|
516
|
-
rules: {
|
|
517
|
-
...config$k,
|
|
518
|
-
...config$j,
|
|
519
|
-
...config$i,
|
|
520
|
-
...config$g,
|
|
521
|
-
...config$f,
|
|
522
|
-
...config$d,
|
|
523
|
-
...config$c,
|
|
524
|
-
...config$b,
|
|
525
|
-
...config$a,
|
|
526
|
-
...eslintPrettier.rules,
|
|
527
|
-
...config$6,
|
|
528
|
-
// ...tailwindcssRules,
|
|
529
|
-
...config$5,
|
|
530
|
-
...config$4,
|
|
531
|
-
...config$3,
|
|
532
|
-
...config$2,
|
|
533
|
-
...config$1,
|
|
534
|
-
},
|
|
535
|
-
|
|
536
|
-
settings: {
|
|
537
|
-
react: {
|
|
538
|
-
version: 'detect',
|
|
539
|
-
},
|
|
540
|
-
|
|
541
|
-
// https://github.com/import-js/eslint-plugin-import/issues/2556#issuecomment-1419518561
|
|
542
|
-
'import/parsers': {
|
|
543
|
-
espree: ['.js', '.cjs', '.mjs', '.jsx', '.ts', '.tsx'],
|
|
544
|
-
},
|
|
545
|
-
'import/resolver': {
|
|
546
|
-
typescript: true,
|
|
547
|
-
node: true,
|
|
548
|
-
},
|
|
549
|
-
},
|
|
550
|
-
},
|
|
551
|
-
{
|
|
552
|
-
files: ['**/*.ts', '**/*.tsx'],
|
|
553
|
-
languageOptions: {
|
|
554
|
-
parser: typescriptParser,
|
|
555
|
-
parserOptions: {
|
|
556
|
-
project: './tsconfig.json',
|
|
557
|
-
},
|
|
558
|
-
},
|
|
559
|
-
plugins: {
|
|
560
|
-
'@typescript-eslint': typescript,
|
|
561
|
-
'import/typescript': importTypescriptResolver,
|
|
562
|
-
},
|
|
563
|
-
rules: {
|
|
564
|
-
...config$9,
|
|
565
|
-
...config$h,
|
|
566
|
-
},
|
|
567
|
-
},
|
|
568
|
-
{
|
|
569
|
-
files: ['**/*.test.js', '**/*.test.jsx', 'tests/**/*.js', 'tests/**/*.jsx'],
|
|
570
|
-
languageOptions: {
|
|
571
|
-
globals: {
|
|
572
|
-
...globals.jest,
|
|
573
|
-
},
|
|
574
|
-
},
|
|
575
|
-
plugins: {
|
|
576
|
-
jest: plugin$3,
|
|
577
|
-
},
|
|
578
|
-
rules: {
|
|
579
|
-
...config$e,
|
|
580
|
-
},
|
|
581
|
-
},
|
|
582
|
-
{
|
|
583
|
-
files: ['**/*.cy.js', '**/*.cy.jsx'],
|
|
584
|
-
languageOptions: {
|
|
585
|
-
globals: {
|
|
586
|
-
...globals.cypress,
|
|
587
|
-
},
|
|
588
|
-
},
|
|
589
|
-
plugins: {
|
|
590
|
-
cypress: plugin$7,
|
|
591
|
-
},
|
|
592
|
-
rules: {
|
|
593
|
-
...config$8,
|
|
594
|
-
},
|
|
595
|
-
},
|
|
596
|
-
{
|
|
597
|
-
files: [
|
|
598
|
-
'**/*.stories.js',
|
|
599
|
-
'**/*.stories.jsx',
|
|
600
|
-
'**/*.stories.ts',
|
|
601
|
-
'**/*.stories.tsx',
|
|
602
|
-
],
|
|
603
|
-
plugins: {
|
|
604
|
-
storybook: plugin$8,
|
|
605
|
-
},
|
|
606
|
-
rules: {
|
|
607
|
-
...config$7,
|
|
608
|
-
},
|
|
609
|
-
},
|
|
610
|
-
{
|
|
611
|
-
files: ['**/*.html'],
|
|
612
|
-
plugins: {
|
|
613
|
-
html,
|
|
614
|
-
},
|
|
615
|
-
settings: {
|
|
616
|
-
'html/javascript-tag-names': ['script', 'Script'],
|
|
617
|
-
},
|
|
618
|
-
},
|
|
619
|
-
];
|
|
620
|
-
|
|
621
|
-
export { config as default };
|
package/dist/eslint.config.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import dt from"eslint-plugin-react";import bt from"eslint-plugin-react-hooks";import yt from"@typescript-eslint/eslint-plugin";import gt from"eslint-plugin-jsx-a11y";import*as o from"eslint-plugin-import";import jt from"eslint-plugin-jest";import xt from"eslint-plugin-promise";import Ot from"eslint-plugin-n";import Rt from"@next/eslint-plugin-next";import t from"globals";import vt from"eslint-plugin-prettier";import kt from"eslint-plugin-cypress";import ht from"eslint-plugin-storybook";import wt from"eslint-plugin-unused-imports";import*as Et from"eslint-import-resolver-typescript";import Kt from"eslint-plugin-html";import $t from"eslint-plugin-compat";import Pt from"eslint-config-prettier";import*as qt from"@typescript-eslint/parser";import St from"eslint-plugin-sonarjs";import Ct from"eslint-plugin-unicorn";import Tt from"eslint-plugin-github";import*as It from"@tanstack/eslint-plugin-query";import H from"@eslint/js";var Q={"no-unused-private-class-members":"off","capitalized-comments":"off",complexity:"off","id-length":["error",{exceptions:["x","y","z"]}],"max-lines":"off","max-lines-per-function":"off","max-params":"off","max-statements":"off","no-ternary":"off","no-undefined":"off","one-var":"off","prefer-destructuring":["error",{array:!1,object:!0}],"sort-imports":"off","sort-keys":"off","sort-vars":"off"},V=Object.assign(H.configs.all.rules,Q),r=V;import _ from"eslint-plugin-react";var{rules:s}=_,B=Object.keys(s).filter(e=>!s[e].meta.deprecated),D=Object.fromEntries(B.map(e=>[`react/${e}`,"error"])),G={"react/forbid-component-props":"off","react/function-component-definition":["error",{namedComponents:"arrow-function"}],"react/no-array-index-key":"off","react/no-arrow-function-lifecycle":"off","react/no-invalid-html-attribute":"off","react/no-multi-comp":"off","react/no-unused-class-component-methods":"off","react/react-in-jsx-scope":"off","react/require-default-props":"off","react/jsx-filename-extension":["error",{extensions:[".tsx"]}],"react/jsx-max-depth":"off","react/jsx-max-props-per-line":"off","react/jsx-newline":"off","react/jsx-no-bind":"off","react/jsx-no-literals":"off","react/jsx-one-expression-per-line":"off","react/jsx-props-no-spreading":"off","react/jsx-sort-props":"off"},J=Object.assign(D,G),n=J;import{rules as i}from"eslint-plugin-react-hooks";var M=Object.keys(i).filter(e=>!i[e].meta.deprecated),N=Object.fromEntries(M.map(e=>[`react-hooks/${e}`,"error"])),U={"react-hooks/exhaustive-deps":"error"},W=Object.assign(N,U),f=W;import X from"@typescript-eslint/eslint-plugin";var{rules:a}=X,Y=Object.keys(a).filter(e=>!a[e].meta.deprecated),Z=Object.fromEntries(Y.map(e=>[`@typescript-eslint/${e}`,"error"])),ee={"@typescript-eslint/consistent-type-definitions":["error","type"],"@typescript-eslint/explicit-function-return-type":"off","@typescript-eslint/naming-convention":["error",{selector:"default",format:["camelCase","PascalCase","snake_case"]},{selector:"objectLiteralProperty",format:null,modifiers:["requiresQuotes"]}],"@typescript-eslint/no-confusing-void-expression":"off","@typescript-eslint/no-misused-promises":"off","@typescript-eslint/no-type-alias":"off","@typescript-eslint/prefer-readonly":"off","@typescript-eslint/prefer-readonly-parameter-types":"off","@typescript-eslint/sort-type-union-intersection-members":"off","@typescript-eslint/strict-boolean-expressions":"off","@typescript-eslint/no-magic-numbers":"off","@typescript-eslint/block-spacing":"off","@typescript-eslint/brace-style":"off","@typescript-eslint/comma-dangle":"off","@typescript-eslint/comma-spacing":"off","@typescript-eslint/func-call-spacing":"off","@typescript-eslint/indent":"off","@typescript-eslint/key-spacing":"off","@typescript-eslint/keyword-spacing":"off","@typescript-eslint/lines-around-comment":"off","@typescript-eslint/lines-between-class-members":"off","@typescript-eslint/member-delimiter-style":"off","@typescript-eslint/no-extra-parens":"off","@typescript-eslint/object-curly-spacing":"off","@typescript-eslint/padding-line-between-statements":"off","@typescript-eslint/quotes":"off","@typescript-eslint/semi":"off","@typescript-eslint/space-before-blocks":"off","@typescript-eslint/space-before-function-paren":"off","@typescript-eslint/space-infix-ops":"off","@typescript-eslint/type-annotation-spacing":"off"},te=Object.assign(Z,ee),p=te;import oe from"eslint-plugin-jsx-a11y";var{rules:c}=oe,re=Object.keys(c).filter(e=>!c[e].meta.deprecated),se=Object.fromEntries(re.map(e=>[`jsx-a11y/${e}`,"error"])),ne={"jsx-a11y/no-autofocus":"off","jsx-a11y/label-has-associated-control":["error",{labelComponents:["Label"],controlComponents:["Input","Select","Textarea","Checkbox","Radio"],depth:3}]},ie=Object.assign(se,ne),l=ie;import{rules as m}from"eslint-plugin-import";var fe=Object.keys(m).filter(e=>!m[e].meta.deprecated),ae=Object.fromEntries(fe.map(e=>[`import/${e}`,"error"])),pe={"import/no-unresolved":"off","import/no-internal-modules":"off","import/no-relative-parent-imports":"off","import/no-named-as-default":"off","import/exports-last":"off","import/no-namespace":"off","import/extensions":"off","import/order":["error",{groups:["builtin","external","internal","parent","sibling","index","object","type"]}],"import/prefer-default-export":"off","import/max-dependencies":"off","import/no-unassigned-import":"off","import/no-default-export":"off","import/no-named-export":"off","import/group-exports":"off"},ce=Object.assign(ae,pe),u=ce;import le from"eslint-plugin-jest";var{rules:d}=le,me=Object.keys(d).filter(e=>!d[e].meta.deprecated),ue=Object.fromEntries(me.map(e=>[`jest/${e}`,"error"])),de={},be=Object.assign(ue,de),b=be;import ye from"eslint-plugin-promise";var{rules:y}=ye,ge=Object.keys(y).filter(e=>!y[e].meta.deprecated),je=Object.fromEntries(ge.map(e=>[`promise/${e}`,"error"])),xe={"promise/catch-or-return":["error",{allowFinally:!0}],"promise/no-native":"off"},Oe=Object.assign(je,xe),g=Oe;import Re from"eslint-plugin-n";var{rules:j}=Re,ve=Object.keys(j).filter(e=>!j[e].meta.deprecated),ke=Object.fromEntries(ve.map(e=>[`n/${e}`,"error"])),he={"n/no-missing-import":"off","n/no-unsupported-features/es-builtins":"off","n/no-unsupported-features/es-syntax":"off","n/no-unsupported-features/node-builtins":"off","n/file-extension-in-import":"off","n/no-process-env":"off"},we=Object.assign(ke,he),x=we;import Ee from"@next/eslint-plugin-next";var{rules:O}=Ee,Ke=Object.keys(O).filter(e=>!O[e].meta.deprecated),$e=Object.fromEntries(Ke.map(e=>[`@next/next/${e}`,"error"])),Pe={},qe=Object.assign($e,Pe),R=qe;var Se={"prettier/prettier":"error"},v=Se;var Ce={"brace-style":"off",camelcase:"off","comma-dangle":"off","comma-spacing":"off","default-param-last":"off","dot-notation":"off","func-call-spacing":"off",indent:"off","init-declarations":"off","keyword-spacing":"off","lines-between-class-members":"off","no-array-constructor":"off","no-dupe-class-members":"off","no-duplicate-imports":"off","no-empty-function":"off","no-extra-parens":"off","no-extra-semi":"off","no-implied-eval":"off","no-invalid-this":"off","no-loop-func":"off","no-loss-of-precision":"off","no-magic-numbers":"off","no-redeclare":"off","no-restricted-imports":"off","no-shadow":"off","no-throw-literal":"off","no-unused-expressions":"off","no-unused-vars":"off","no-use-before-define":"off","no-useless-constructor":"off","object-curly-spacing":"off","padding-line-between-statements":"off",quotes:"off","require-await":"off","no-return-await":"off",semi:"off","space-before-function-paren":"off","space-infix-ops":"off"},k=Ce;import Te from"eslint-plugin-cypress";var{rules:h}=Te,Ie=Object.keys(h).filter(e=>!h[e].meta.deprecated),Le=Object.fromEntries(Ie.map(e=>[`cypress/${e}`,"error"])),ze={},Ae=Object.assign(Le,ze),w=Ae;import Fe from"eslint-plugin-storybook";var{rules:E}=Fe,He=Object.keys(E).filter(e=>!E[e].meta.deprecated),Qe=Object.fromEntries(He.map(e=>[`storybook/${e}`,"error"])),Ve={},_e=Object.assign(Qe,Ve),K=_e;import Be from"eslint-plugin-unused-imports";var{rules:$}=Be,De=Object.keys($).filter(e=>!$[e].meta.deprecated),Ge=Object.fromEntries(De.map(e=>[`unused-imports/${e}`,"error"])),Je={},Me=Object.assign(Ge,Je),P=Me;import Ne from"eslint-plugin-sonarjs";var{rules:q}=Ne,Ue=Object.keys(q).filter(e=>!q[e].meta.deprecated),We=Object.fromEntries(Ue.map(e=>[`sonarjs/${e}`,"error"])),Xe={"sonarjs/elseif-without-else":"off"},Ye=Object.assign(We,Xe),S=Ye;var Ze={"compat/compat":"warn"},C=Ze;import et from"eslint-plugin-unicorn";var{rules:T}=et,tt=Object.keys(T).filter(e=>!T[e].meta.deprecated),ot=Object.fromEntries(tt.map(e=>[`unicorn/${e}`,"error"])),rt={"unicorn/no-keyword-prefix":"off","unicorn/no-null":"off","unicorn/no-array-callback-reference":"off","unicorn/prevent-abbreviations":["error",{allowList:{getInitialProps:!0,getServerSideProps:!0,getStaticPaths:!0,getStaticProps:!0,generateStaticParams:!0}}]},st=Object.assign(ot,rt),I=st;import nt from"eslint-plugin-github";var{rules:L}=nt,it=Object.keys(L).filter(e=>!L[e].meta.deprecated),ft=Object.fromEntries(it.map(e=>[`github/${e}`,"error"])),at={},pt=Object.assign(ft,at),z=pt;import{rules as A}from"@tanstack/eslint-plugin-query";var ct=Object.keys(A).filter(e=>!A[e].meta.deprecated),lt=Object.fromEntries(ct.map(e=>[`@tanstack/eslint-plugin-query/${e}`,"error"])),mt={},ut=Object.assign(lt,mt),F=ut;var Lt=[o.configs.typescript,{ignores:["**/dist/","**/build/","**/.next/","**/.turbo/"]},{languageOptions:{sourceType:"module",globals:{...t.browser,...t.node},parserOptions:{ecmaVersion:"latest",sourceType:"module",ecmaFeatures:{jsx:!0}}},files:["**/*.js","**/*.jsx","**/*.ts","**/*.tsx","**/*.json","**/*.mjs","**/*.cjs","**/*.html"],plugins:{prettier:vt,react:dt,"react-hooks":bt,"jsx-a11y":gt,import:o,promise:xt,n:Ot,"@next/next":Rt,"unused-imports":wt,sonarjs:St,compat:$t,unicorn:Ct,github:Tt,"@tanstack/eslint-plugin-query":It},rules:{...r,...n,...f,...l,...u,...g,...x,...R,...v,...Pt.rules,...P,...S,...C,...I,...z,...F},settings:{react:{version:"detect"},"import/parsers":{espree:[".js",".cjs",".mjs",".jsx",".ts",".tsx"]},"import/resolver":{typescript:!0,node:!0}}},{files:["**/*.ts","**/*.tsx"],languageOptions:{parser:qt,parserOptions:{project:"./tsconfig.json"}},plugins:{"@typescript-eslint":yt,"import/typescript":Et},rules:{...k,...p}},{files:["**/*.test.js","**/*.test.jsx","tests/**/*.js","tests/**/*.jsx"],languageOptions:{globals:{...t.jest}},plugins:{jest:jt},rules:{...b}},{files:["**/*.cy.js","**/*.cy.jsx"],languageOptions:{globals:{...t.cypress}},plugins:{cypress:kt},rules:{...w}},{files:["**/*.stories.js","**/*.stories.jsx","**/*.stories.ts","**/*.stories.tsx"],plugins:{storybook:ht},rules:{...K}},{files:["**/*.html"],plugins:{html:Kt},settings:{"html/javascript-tag-names":["script","Script"]}}],nr=Lt;export{nr as default};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/** @type {import('prettier').Config} */
|
|
2
|
-
const config = {
|
|
3
|
-
tabWidth: 2,
|
|
4
|
-
useTabs: false,
|
|
5
|
-
semi: true,
|
|
6
|
-
singleQuote: true,
|
|
7
|
-
trailingComma: 'es5',
|
|
8
|
-
bracketSpacing: true,
|
|
9
|
-
arrowParens: 'always',
|
|
10
|
-
proseWrap: 'never',
|
|
11
|
-
printWidth: 80,
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export { config as default };
|
package/dist/prettier.config.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={tabWidth:2,useTabs:!1,semi:!0,singleQuote:!0,trailingComma:"es5",bracketSpacing:!0,arrowParens:"always",proseWrap:"never",printWidth:80},a=e;export{a as default};
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/** @type {import('stylelint').Config} */
|
|
2
|
-
const config = {
|
|
3
|
-
plugins: ['stylelint-prettier'],
|
|
4
|
-
extends: ['stylelint-config-standard', 'stylelint-config-idiomatic-order'],
|
|
5
|
-
rules: {
|
|
6
|
-
'at-rule-no-unknown': [
|
|
7
|
-
true,
|
|
8
|
-
{
|
|
9
|
-
ignoreAtRules: [
|
|
10
|
-
'tailwind',
|
|
11
|
-
'apply',
|
|
12
|
-
'layer',
|
|
13
|
-
'variants',
|
|
14
|
-
'responsive',
|
|
15
|
-
'screen',
|
|
16
|
-
],
|
|
17
|
-
},
|
|
18
|
-
],
|
|
19
|
-
'declaration-property-value-no-unknown': true,
|
|
20
|
-
'no-descending-specificity': null,
|
|
21
|
-
'declaration-block-no-redundant-longhand-properties': [
|
|
22
|
-
true,
|
|
23
|
-
{
|
|
24
|
-
ignoreShorthands: ['/flex/'],
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
'selector-pseudo-class-no-unknown': [
|
|
28
|
-
true,
|
|
29
|
-
{
|
|
30
|
-
ignorePseudoClasses: ['global'],
|
|
31
|
-
},
|
|
32
|
-
],
|
|
33
|
-
},
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
export { config as default };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={plugins:["stylelint-prettier"],extends:["stylelint-config-standard","stylelint-config-idiomatic-order"],rules:{"at-rule-no-unknown":[!0,{ignoreAtRules:["tailwind","apply","layer","variants","responsive","screen"]}],"declaration-property-value-no-unknown":!0,"no-descending-specificity":null,"declaration-block-no-redundant-longhand-properties":[!0,{ignoreShorthands:["/flex/"]}],"selector-pseudo-class-no-unknown":[!0,{ignorePseudoClasses:["global"]}]}},n=e;export{n as default};
|