@ztd-me/eslint 0.0.0-stage → 0.1.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 +116 -2
- package/dist/array-layout.d.ts +2 -0
- package/dist/array-layout.js +103 -0
- package/dist/array-simple.d.ts +2 -0
- package/dist/array-simple.js +42 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +201 -0
- package/dist/options.d.ts +38 -0
- package/dist/options.js +1 -0
- package/dist/rules/react.d.ts +2 -0
- package/dist/rules/react.js +55 -0
- package/dist/rules/shared.d.ts +2 -0
- package/dist/rules/shared.js +120 -0
- package/dist/rules/tests.d.ts +2 -0
- package/dist/rules/tests.js +31 -0
- package/dist/rules/ts-syntax.d.ts +2 -0
- package/dist/rules/ts-syntax.js +88 -0
- package/dist/rules/typed.d.ts +2 -0
- package/dist/rules/typed.js +170 -0
- package/dist/rules/vue-a11y.d.ts +2 -0
- package/dist/rules/vue-a11y.js +32 -0
- package/dist/rules/vue.d.ts +2 -0
- package/dist/rules/vue.js +90 -0
- package/dist/typescript.d.ts +9 -0
- package/dist/typescript.js +20 -0
- package/docs/publishing.md +39 -0
- package/docs/rule-catalog.json +1903 -0
- package/docs/rule-coverage.md +253 -0
- package/package.json +55 -3
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
# Research rule coverage
|
|
2
|
+
|
|
3
|
+
The starting points are `eslint-rules-research.zh-CN.md` (Library `libfile_54b1fabff9dc8191964118f1efc89e81`) and `eslint-rules-exact-catalog.zh-CN.md` (`libfile_25c98595e1148191a893667c0a105b0b`), researched on 2026-10-01. The cloud executor retrieved complete 372-line and 242-line Library reads; byte materialization failed including its single supported retry. The implementation used retained read text rather than assuming another executor’s paths.
|
|
4
|
+
|
|
5
|
+
All 198 catalog entries have an explicit disposition: 157 enabled in their applicable profiles, 32 JSX accessibility entries deferred by user instruction, four transitional array entries replaced by `ztd/array-layout`, four Compiler entries opt-in, and one fetch entry experimental opt-in. The effective-config tests verify every enabled severity and explicit option against the selected dependency versions. Retained baseline entries are counted, not presented as new rules.
|
|
6
|
+
|
|
7
|
+
| Dependency | Selected version |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| Node / pnpm (cloud validation) | 24.19.0 / 11.19.0 |
|
|
10
|
+
| ESLint / TypeScript | 10.11.0 / 6.0.3 |
|
|
11
|
+
| @antfu/eslint-config | 9.5.1 |
|
|
12
|
+
| @typescript-eslint parser / plugin | 8.71.0 / 8.71.0 |
|
|
13
|
+
| @stylistic/eslint-plugin | 5.10.0 |
|
|
14
|
+
| @eslint-react/eslint-plugin / react-hooks / react-refresh | 5.23.3 / 7.1.1 / 0.5.7 |
|
|
15
|
+
| eslint-plugin-vue / vue-eslint-parser | 10.11.1 / 10.4.1 |
|
|
16
|
+
| eslint-plugin-vuejs-accessibility | 2.6.0 |
|
|
17
|
+
| eslint-plugin-sonarjs | 4.2.2 |
|
|
18
|
+
| @vitest/eslint-plugin | 1.6.27 |
|
|
19
|
+
|
|
20
|
+
Core/TS extensions, unused-variable owners, React Hooks owners, SFC line-width owners and array layout owners are deduplicated. Handwritten `.d.ts`, configuration and script files retain strict safety and size rules after antfu disables. JS-specific setter diagnostics remain with the TS compiler in TS files. Typed constant-expression checks use `ts/no-unnecessary-condition`; JS keeps `no-constant-binary-expression`. The public factory fixes editor behavior so selected severities do not vary between editor and CI.
|
|
21
|
+
|
|
22
|
+
The implementation does not claim a Vue index-key check: current stable Vue rules ensure a key exists but cannot ensure it is not a loop index. Vue template typing and dynamic component inference also remain outside this package’s static proof boundary.
|
|
23
|
+
|
|
24
|
+
## shared
|
|
25
|
+
|
|
26
|
+
| Rule | Exact researched value | Disposition |
|
|
27
|
+
| --- | --- | --- |
|
|
28
|
+
| [complexity](https://eslint.org/docs/latest/rules/complexity) | `["error",{"max":10,"variant":"classic"}]` | enabled |
|
|
29
|
+
| [sonarjs/cognitive-complexity](https://sonarsource.github.io/rspec/#/rspec/S3776/javascript) | `["error",15]` | enabled |
|
|
30
|
+
| [max-depth](https://eslint.org/docs/latest/rules/max-depth) | `["error",{"max":4}]` | enabled |
|
|
31
|
+
| [max-lines-per-function](https://eslint.org/docs/latest/rules/max-lines-per-function) | `["error",{"max":60,"skipBlankLines":true,"skipComments":true,"IIFEs":true}]` | enabled |
|
|
32
|
+
| [max-lines](https://eslint.org/docs/latest/rules/max-lines) | `["error",{"max":300,"skipBlankLines":true,"skipComments":true}]` | enabled |
|
|
33
|
+
| [max-params](https://eslint.org/docs/latest/rules/max-params) | `["error",{"max":4}]` | enabled |
|
|
34
|
+
| [style/max-len](https://eslint.style/rules/max-len) | `["error",{"code":120,"comments":120,"tabWidth":2,"ignoreUrls":true,"ignoreStrings":false,"ignoreTemplateLiterals":false,"ignoreRegExpLiterals":false,"ignoreComments":false,"ignoreTrailingComments":false}]` | enabled |
|
|
35
|
+
| [eqeqeq](https://eslint.org/docs/latest/rules/eqeqeq) | `["error","always"]` | enabled |
|
|
36
|
+
| [curly](https://eslint.org/docs/latest/rules/curly) | `["error","all"]` | enabled |
|
|
37
|
+
| [array-callback-return](https://eslint.org/docs/latest/rules/array-callback-return) | `["error",{"allowImplicit":false,"checkForEach":true,"allowVoid":false}]` | enabled |
|
|
38
|
+
| [no-empty](https://eslint.org/docs/latest/rules/no-empty) | `["error",{"allowEmptyCatch":false}]` | enabled |
|
|
39
|
+
| [no-shadow](https://eslint.org/docs/latest/rules/no-shadow) | `["error",{"builtinGlobals":false,"hoist":"all","ignoreOnInitialization":false}]` | enabled |
|
|
40
|
+
| [no-nested-ternary](https://eslint.org/docs/latest/rules/no-nested-ternary) | `"error"` | enabled |
|
|
41
|
+
| [no-unused-expressions](https://eslint.org/docs/latest/rules/no-unused-expressions) | `["error",{"allowShortCircuit":false,"allowTernary":false,"allowTaggedTemplates":true,"enforceForJSX":true}]` | enabled |
|
|
42
|
+
| [eslint-comments/require-description](https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/require-description.html) | `["error",{"ignore":["eslint-enable"]}]` | enabled |
|
|
43
|
+
| [unused-imports/no-unused-vars](https://github.com/sweepline/eslint-plugin-unused-imports/blob/master/docs/rules/no-unused-vars.md) | `["error",{"args":"all","argsIgnorePattern":"^_","caughtErrors":"all","caughtErrorsIgnorePattern":"^_","vars":"all","varsIgnorePattern":"^_","ignoreRestSiblings":true,"reportUsedIgnorePattern":true}]` | enabled |
|
|
44
|
+
| [style/array-bracket-newline](https://eslint.style/rules/array-bracket-newline) | `["error",{"multiline":true}]` | replaced: ztd/array-layout (full researched policy) |
|
|
45
|
+
| [style/array-element-newline](https://eslint.style/rules/array-element-newline) | `["error",{"ArrayExpression":{"minItems":3,"multiline":true,"consistent":true},"ArrayPattern":"consistent"}]` | replaced: ztd/array-layout (full researched policy) |
|
|
46
|
+
| [no-constant-binary-expression](https://eslint.org/docs/latest/rules/no-constant-binary-expression) | `"error"` | enabled |
|
|
47
|
+
| [no-unsafe-optional-chaining](https://eslint.org/docs/latest/rules/no-unsafe-optional-chaining) | `["error",{"disallowArithmeticOperators":true}]` | enabled |
|
|
48
|
+
| [no-promise-executor-return](https://eslint.org/docs/latest/rules/no-promise-executor-return) | `["error",{"allowVoid":false}]` | enabled |
|
|
49
|
+
| [no-setter-return](https://eslint.org/docs/latest/rules/no-setter-return) | `"error"` | enabled |
|
|
50
|
+
## ts-syntax
|
|
51
|
+
|
|
52
|
+
| Rule | Exact researched value | Disposition |
|
|
53
|
+
| --- | --- | --- |
|
|
54
|
+
| [ts/no-explicit-any](https://typescript-eslint.io/rules/no-explicit-any) | `["error",{"fixToUnknown":false,"ignoreRestArgs":false}]` | enabled |
|
|
55
|
+
| [ts/no-non-null-assertion](https://typescript-eslint.io/rules/no-non-null-assertion) | `"error"` | enabled |
|
|
56
|
+
| [ts/no-empty-object-type](https://typescript-eslint.io/rules/no-empty-object-type) | `["error",{"allowInterfaces":"never","allowObjectTypes":"never"}]` | enabled |
|
|
57
|
+
| [ts/ban-ts-comment](https://typescript-eslint.io/rules/ban-ts-comment) | `["error",{"ts-ignore":true,"ts-nocheck":true,"ts-check":false,"ts-expect-error":"allow-with-description","minimumDescriptionLength":10}]` | enabled |
|
|
58
|
+
| [ts/consistent-type-assertions](https://typescript-eslint.io/rules/consistent-type-assertions) | `["error",{"assertionStyle":"as","objectLiteralTypeAssertions":"never","arrayLiteralTypeAssertions":"never"}]` | enabled |
|
|
59
|
+
| [ts/explicit-module-boundary-types](https://typescript-eslint.io/rules/explicit-module-boundary-types) | `["error",{"allowArgumentsExplicitlyTypedAsAny":false,"allowDirectConstAssertionInArrowFunctions":false,"allowHigherOrderFunctions":false,"allowOverloadFunctions":false,"allowTypedFunctionExpressions":true}]` | enabled |
|
|
60
|
+
| [ts/no-useless-constructor](https://typescript-eslint.io/rules/no-useless-constructor) | `"error"` | enabled |
|
|
61
|
+
| [ts/no-invalid-void-type](https://typescript-eslint.io/rules/no-invalid-void-type) | `["error",{"allowAsThisParameter":true,"allowInGenericTypeArguments":true}]` | enabled |
|
|
62
|
+
| [ts/no-extraneous-class](https://typescript-eslint.io/rules/no-extraneous-class) | `["error",{"allowConstructorOnly":false,"allowEmpty":false,"allowStaticOnly":false,"allowWithDecorator":true}]` | enabled |
|
|
63
|
+
| [ts/max-params](https://typescript-eslint.io/rules/max-params) | `["error",{"max":4,"countVoidThis":false}]` | enabled |
|
|
64
|
+
| [ts/no-shadow](https://typescript-eslint.io/rules/no-shadow) | `["error",{"builtinGlobals":false,"hoist":"functions-and-types","ignoreOnInitialization":false,"ignoreTypeValueShadow":true,"ignoreFunctionTypeParameterNameValueShadow":true}]` | enabled |
|
|
65
|
+
| [ts/no-unused-expressions](https://typescript-eslint.io/rules/no-unused-expressions) | `["error",{"allowShortCircuit":false,"allowTernary":false,"allowTaggedTemplates":true,"enforceForJSX":true}]` | enabled |
|
|
66
|
+
## typed
|
|
67
|
+
|
|
68
|
+
| Rule | Exact researched value | Disposition |
|
|
69
|
+
| --- | --- | --- |
|
|
70
|
+
| [ts/strict-boolean-expressions](https://typescript-eslint.io/rules/strict-boolean-expressions) | `["error",{"allowAny":false,"allowNumber":false,"allowString":false,"allowNullableBoolean":false,"allowNullableEnum":false,"allowNullableNumber":false,"allowNullableObject":false,"allowNullableString":false}]` | enabled |
|
|
71
|
+
| [ts/no-floating-promises](https://typescript-eslint.io/rules/no-floating-promises) | `["error",{"checkThenables":true,"ignoreVoid":false,"ignoreIIFE":false,"allowForKnownSafeCalls":[],"allowForKnownSafePromises":[]}]` | enabled |
|
|
72
|
+
| [ts/no-misused-promises](https://typescript-eslint.io/rules/no-misused-promises) | `["error",{"checksConditionals":{"flagUnions":"all"},"checksSpreads":true,"checksVoidReturn":true}]` | enabled |
|
|
73
|
+
| [ts/restrict-plus-operands](https://typescript-eslint.io/rules/restrict-plus-operands) | `["error",{"allowAny":false,"allowBoolean":false,"allowNullish":false,"allowNumberAndString":false,"allowRegExp":false,"skipCompoundAssignments":false}]` | enabled |
|
|
74
|
+
| [ts/restrict-template-expressions](https://typescript-eslint.io/rules/restrict-template-expressions) | `["error",{"allow":[],"allowAny":false,"allowArray":false,"allowBoolean":false,"allowNullish":false,"allowNumber":true,"allowRegExp":false,"allowNever":false}]` | enabled |
|
|
75
|
+
| [ts/return-await](https://typescript-eslint.io/rules/return-await) | `["error","always"]` | enabled |
|
|
76
|
+
| [ts/switch-exhaustiveness-check](https://typescript-eslint.io/rules/switch-exhaustiveness-check) | `["error",{"allowDefaultCaseForExhaustiveSwitch":true,"considerDefaultExhaustiveForUnions":false,"requireDefaultForNonUnion":true}]` | enabled |
|
|
77
|
+
| [ts/only-throw-error](https://typescript-eslint.io/rules/only-throw-error) | `["error",{"allow":[],"allowRethrowing":true,"allowThrowingAny":false,"allowThrowingUnknown":false}]` | enabled |
|
|
78
|
+
| [ts/no-unsafe-type-assertion](https://typescript-eslint.io/rules/no-unsafe-type-assertion) | `"error"` | enabled |
|
|
79
|
+
| [ts/use-unknown-in-catch-callback-variable](https://typescript-eslint.io/rules/use-unknown-in-catch-callback-variable) | `"error"` | enabled |
|
|
80
|
+
| [ts/no-unnecessary-condition](https://typescript-eslint.io/rules/no-unnecessary-condition) | `["error",{"allowConstantLoopConditions":"only-allowed-literals","checkTypePredicates":true}]` | enabled |
|
|
81
|
+
| [ts/no-base-to-string](https://typescript-eslint.io/rules/no-base-to-string) | `["error",{"checkUnknown":true,"ignoredTypeNames":["Error","RegExp","URL","URLSearchParams"]}]` | enabled |
|
|
82
|
+
| [ts/no-misused-spread](https://typescript-eslint.io/rules/no-misused-spread) | `["error",{"allow":[]}]` | enabled |
|
|
83
|
+
| [ts/no-unsafe-enum-comparison](https://typescript-eslint.io/rules/no-unsafe-enum-comparison) | `"error"` | enabled |
|
|
84
|
+
| [ts/no-deprecated](https://typescript-eslint.io/rules/no-deprecated) | `["error",{"allow":[]}]` | enabled |
|
|
85
|
+
| [ts/consistent-type-exports](https://typescript-eslint.io/rules/consistent-type-exports) | `["error",{"fixMixedExportsWithInlineTypeSpecifier":false}]` | enabled |
|
|
86
|
+
| [ts/prefer-readonly](https://typescript-eslint.io/rules/prefer-readonly) | `["error",{"onlyInlineLambdas":false}]` | enabled |
|
|
87
|
+
| [ts/require-array-sort-compare](https://typescript-eslint.io/rules/require-array-sort-compare) | `["error",{"ignoreStringArrays":true}]` | enabled |
|
|
88
|
+
| [ts/require-await](https://typescript-eslint.io/rules/require-await) | `"error"` | enabled |
|
|
89
|
+
| [ts/prefer-nullish-coalescing](https://typescript-eslint.io/rules/prefer-nullish-coalescing) | `["error",{"ignoreConditionalTests":true,"ignoreMixedLogicalExpressions":false,"ignorePrimitives":{"bigint":false,"boolean":false,"number":false,"string":false}}]` | enabled |
|
|
90
|
+
| [ts/prefer-optional-chain](https://typescript-eslint.io/rules/prefer-optional-chain) | `["error",{"requireNullish":true,"allowPotentiallyUnsafeFixesThatModifyTheReturnTypeIKnowWhatImDoing":false}]` | enabled |
|
|
91
|
+
| [ts/no-array-delete](https://typescript-eslint.io/rules/no-array-delete) | `"error"` | enabled |
|
|
92
|
+
| [ts/no-unsafe-unary-minus](https://typescript-eslint.io/rules/no-unsafe-unary-minus) | `"error"` | enabled |
|
|
93
|
+
| [ts/prefer-promise-reject-errors](https://typescript-eslint.io/rules/prefer-promise-reject-errors) | `["error",{"allowEmptyReject":false,"allowThrowingAny":false,"allowThrowingUnknown":false}]` | enabled |
|
|
94
|
+
| [ts/await-thenable](https://typescript-eslint.io/rules/await-thenable) | `"error"` | enabled |
|
|
95
|
+
| [ts/no-for-in-array](https://typescript-eslint.io/rules/no-for-in-array) | `"error"` | enabled |
|
|
96
|
+
| [ts/no-implied-eval](https://typescript-eslint.io/rules/no-implied-eval) | `"error"` | enabled |
|
|
97
|
+
| [ts/no-unnecessary-type-assertion](https://typescript-eslint.io/rules/no-unnecessary-type-assertion) | `"error"` | enabled |
|
|
98
|
+
| [ts/no-unsafe-argument](https://typescript-eslint.io/rules/no-unsafe-argument) | `"error"` | enabled |
|
|
99
|
+
| [ts/no-unsafe-assignment](https://typescript-eslint.io/rules/no-unsafe-assignment) | `"error"` | enabled |
|
|
100
|
+
| [ts/no-unsafe-call](https://typescript-eslint.io/rules/no-unsafe-call) | `"error"` | enabled |
|
|
101
|
+
| [ts/no-unsafe-member-access](https://typescript-eslint.io/rules/no-unsafe-member-access) | `"error"` | enabled |
|
|
102
|
+
| [ts/no-unsafe-return](https://typescript-eslint.io/rules/no-unsafe-return) | `"error"` | enabled |
|
|
103
|
+
| [ts/unbound-method](https://typescript-eslint.io/rules/unbound-method) | `"error"` | enabled |
|
|
104
|
+
## react
|
|
105
|
+
|
|
106
|
+
| Rule | Exact researched value | Disposition |
|
|
107
|
+
| --- | --- | --- |
|
|
108
|
+
| [react/exhaustive-deps](https://eslint-react.xyz/docs/rules/exhaustive-deps) | `["error",{"enableDangerousAutofixThisMayCauseInfiniteLoops":false,"requireExplicitEffectDeps":false}]` | enabled |
|
|
109
|
+
| [react/no-array-index-key](https://eslint-react.xyz/docs/rules/no-array-index-key) | `"error"` | enabled |
|
|
110
|
+
| [react/purity](https://eslint-react.xyz/docs/rules/purity) | `"error"` | enabled |
|
|
111
|
+
| [react/set-state-in-effect](https://eslint-react.xyz/docs/rules/set-state-in-effect) | `"error"` | enabled |
|
|
112
|
+
| [react/web-api-no-leaked-event-listener](https://eslint-react.xyz/docs/rules/web-api-no-leaked-event-listener) | `"error"` | enabled |
|
|
113
|
+
| [react/web-api-no-leaked-intersection-observer](https://eslint-react.xyz/docs/rules/web-api-no-leaked-intersection-observer) | `"error"` | enabled |
|
|
114
|
+
| [react/web-api-no-leaked-interval](https://eslint-react.xyz/docs/rules/web-api-no-leaked-interval) | `"error"` | enabled |
|
|
115
|
+
| [react/web-api-no-leaked-resize-observer](https://eslint-react.xyz/docs/rules/web-api-no-leaked-resize-observer) | `"error"` | enabled |
|
|
116
|
+
| [react/web-api-no-leaked-timeout](https://eslint-react.xyz/docs/rules/web-api-no-leaked-timeout) | `"error"` | enabled |
|
|
117
|
+
| [react/jsx-no-comment-textnodes](https://eslint-react.xyz/docs/rules/jsx-no-comment-textnodes) | `"error"` | enabled |
|
|
118
|
+
| [react/jsx-no-leaked-dollar](https://eslint-react.xyz/docs/rules/jsx-no-leaked-dollar) | `"error"` | enabled |
|
|
119
|
+
| [react/jsx-no-leaked-semicolon](https://eslint-react.xyz/docs/rules/jsx-no-leaked-semicolon) | `"error"` | enabled |
|
|
120
|
+
| [react/dom-no-dangerously-set-innerhtml](https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml) | `"error"` | enabled |
|
|
121
|
+
| [react/dom-no-script-url](https://eslint-react.xyz/docs/rules/dom-no-script-url) | `"error"` | enabled |
|
|
122
|
+
| [react/dom-no-unsafe-iframe-sandbox](https://eslint-react.xyz/docs/rules/dom-no-unsafe-iframe-sandbox) | `"error"` | enabled |
|
|
123
|
+
| [react/web-api-no-leaked-fetch](https://eslint-react.xyz/docs/rules/web-api-no-leaked-fetch) | `"error"` | opt-in: react.experimental |
|
|
124
|
+
| [react/use-state](https://eslint-react.xyz/docs/rules/use-state) | `["error",{"enforceAssignment":true,"enforceLazyInitialization":true,"enforceSetterName":true}]` | enabled |
|
|
125
|
+
| [react/no-unstable-context-value](https://eslint-react.xyz/docs/rules/no-unstable-context-value) | `"error"` | enabled |
|
|
126
|
+
| [react/no-unstable-default-props](https://eslint-react.xyz/docs/rules/no-unstable-default-props) | `["error",{"safeDefaultProps":[]}]` | enabled |
|
|
127
|
+
| [react/dom-no-missing-button-type](https://eslint-react.xyz/docs/rules/dom-no-missing-button-type) | `"error"` | enabled |
|
|
128
|
+
| [react/dom-no-missing-iframe-sandbox](https://eslint-react.xyz/docs/rules/dom-no-missing-iframe-sandbox) | `"error"` | enabled |
|
|
129
|
+
| [react/dom-no-unsafe-target-blank](https://eslint-react.xyz/docs/rules/dom-no-unsafe-target-blank) | `"error"` | enabled |
|
|
130
|
+
| [react/rules-of-hooks](https://eslint-react.xyz/docs/rules/rules-of-hooks) | `"error"` | enabled |
|
|
131
|
+
| [react/error-boundaries](https://eslint-react.xyz/docs/rules/error-boundaries) | `"error"` | enabled |
|
|
132
|
+
| [react/no-missing-key](https://eslint-react.xyz/docs/rules/no-missing-key) | `"error"` | enabled |
|
|
133
|
+
| [react/no-nested-component-definitions](https://eslint-react.xyz/docs/rules/no-nested-component-definitions) | `"error"` | enabled |
|
|
134
|
+
| [react/no-nested-lazy-component-declarations](https://eslint-react.xyz/docs/rules/no-nested-lazy-component-declarations) | `"error"` | enabled |
|
|
135
|
+
| [react/set-state-in-render](https://eslint-react.xyz/docs/rules/set-state-in-render) | `"error"` | enabled |
|
|
136
|
+
| [react/static-components](https://eslint-react.xyz/docs/rules/static-components) | `"error"` | enabled |
|
|
137
|
+
| [react/use-memo](https://eslint-react.xyz/docs/rules/use-memo) | `"error"` | enabled |
|
|
138
|
+
| [react/dom-no-dangerously-set-innerhtml-with-children](https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml-with-children) | `"error"` | enabled |
|
|
139
|
+
| [react/dom-no-void-elements-with-children](https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children) | `"error"` | enabled |
|
|
140
|
+
| [react/no-leaked-conditional-rendering](https://eslint-react.xyz/docs/rules/no-leaked-conditional-rendering) | `"error"` | enabled: typed React files only |
|
|
141
|
+
| [react-hooks/globals](https://react.dev/reference/eslint-plugin-react-hooks/lints/globals) | `"error"` | enabled |
|
|
142
|
+
| [react-hooks/immutability](https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability) | `"error"` | enabled |
|
|
143
|
+
| [react-hooks/refs](https://react.dev/reference/eslint-plugin-react-hooks/lints/refs) | `"error"` | enabled |
|
|
144
|
+
| [react-hooks/config](https://react.dev/reference/eslint-plugin-react-hooks/lints/config) | `"error"` | opt-in: react.compiler |
|
|
145
|
+
| [react-hooks/gating](https://react.dev/reference/eslint-plugin-react-hooks/lints/gating) | `"error"` | opt-in: react.compiler |
|
|
146
|
+
| [react-hooks/incompatible-library](https://react.dev/reference/eslint-plugin-react-hooks/lints/incompatible-library) | `"error"` | opt-in: react.compiler |
|
|
147
|
+
| [react-hooks/preserve-manual-memoization](https://react.dev/reference/eslint-plugin-react-hooks/lints/preserve-manual-memoization) | `"error"` | opt-in: react.compiler |
|
|
148
|
+
## react-a11y
|
|
149
|
+
|
|
150
|
+
| Rule | Exact researched value | Disposition |
|
|
151
|
+
| --- | --- | --- |
|
|
152
|
+
| [jsx-a11y/alt-text](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/alt-text.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
153
|
+
| [jsx-a11y/anchor-has-content](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-has-content.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
154
|
+
| [jsx-a11y/anchor-is-valid](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-is-valid.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
155
|
+
| [jsx-a11y/aria-activedescendant-has-tabindex](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-activedescendant-has-tabindex.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
156
|
+
| [jsx-a11y/aria-props](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-props.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
157
|
+
| [jsx-a11y/aria-proptypes](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-proptypes.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
158
|
+
| [jsx-a11y/aria-role](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-role.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
159
|
+
| [jsx-a11y/aria-unsupported-elements](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-unsupported-elements.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
160
|
+
| [jsx-a11y/autocomplete-valid](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/autocomplete-valid.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
161
|
+
| [jsx-a11y/click-events-have-key-events](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/click-events-have-key-events.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
162
|
+
| [jsx-a11y/heading-has-content](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/heading-has-content.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
163
|
+
| [jsx-a11y/html-has-lang](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/html-has-lang.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
164
|
+
| [jsx-a11y/iframe-has-title](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/iframe-has-title.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
165
|
+
| [jsx-a11y/img-redundant-alt](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/img-redundant-alt.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
166
|
+
| [jsx-a11y/interactive-supports-focus](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/interactive-supports-focus.md) | `["error",{"tabbable":["button","checkbox","link","progressbar","searchbox","slider","spinbutton","switch","textbox"]}]` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
167
|
+
| [jsx-a11y/label-has-associated-control](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/label-has-associated-control.md) | `["error",{"assert":"either","depth":3}]` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
168
|
+
| [jsx-a11y/media-has-caption](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/media-has-caption.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
169
|
+
| [jsx-a11y/mouse-events-have-key-events](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/mouse-events-have-key-events.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
170
|
+
| [jsx-a11y/no-access-key](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-access-key.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
171
|
+
| [jsx-a11y/no-autofocus](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-autofocus.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
172
|
+
| [jsx-a11y/no-distracting-elements](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-distracting-elements.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
173
|
+
| [jsx-a11y/no-interactive-element-to-noninteractive-role](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-interactive-element-to-noninteractive-role.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
174
|
+
| [jsx-a11y/no-noninteractive-element-interactions](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-element-interactions.md) | `["error",{"body":["onError","onLoad"],"iframe":["onError","onLoad"],"img":["onError","onLoad"]}]` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
175
|
+
| [jsx-a11y/no-noninteractive-element-to-interactive-role](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-element-to-interactive-role.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
176
|
+
| [jsx-a11y/no-noninteractive-tabindex](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-tabindex.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
177
|
+
| [jsx-a11y/no-redundant-roles](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-redundant-roles.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
178
|
+
| [jsx-a11y/no-static-element-interactions](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-static-element-interactions.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
179
|
+
| [jsx-a11y/role-has-required-aria-props](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/role-has-required-aria-props.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
180
|
+
| [jsx-a11y/role-supports-aria-props](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/role-supports-aria-props.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
181
|
+
| [jsx-a11y/scope](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/scope.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
182
|
+
| [jsx-a11y/tabindex-no-positive](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/tabindex-no-positive.md) | `"error"` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
183
|
+
| [jsx-a11y/control-has-associated-label](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/control-has-associated-label.md) | `["error",{"depth":3,"ignoreElements":["input","select","textarea"]}]` | disabled: JSX a11y ESLint 10 peer incompatibility (user instruction) |
|
|
184
|
+
## vue
|
|
185
|
+
|
|
186
|
+
| Rule | Exact researched value | Disposition |
|
|
187
|
+
| --- | --- | --- |
|
|
188
|
+
| [vue/no-dupe-keys](https://eslint.vuejs.org/rules/no-dupe-keys.html) | `"error"` | enabled |
|
|
189
|
+
| [vue/no-v-html](https://eslint.vuejs.org/rules/no-v-html.html) | `"error"` | enabled |
|
|
190
|
+
| [vue/no-setup-props-reactivity-loss](https://eslint.vuejs.org/rules/no-setup-props-reactivity-loss.html) | `"error"` | enabled |
|
|
191
|
+
| [vue/no-ref-object-reactivity-loss](https://eslint.vuejs.org/rules/no-ref-object-reactivity-loss.html) | `"error"` | enabled |
|
|
192
|
+
| [vue/no-mutating-props](https://eslint.vuejs.org/rules/no-mutating-props.html) | `["error",{"shallowOnly":false}]` | enabled |
|
|
193
|
+
| [vue/require-explicit-emits](https://eslint.vuejs.org/rules/require-explicit-emits.html) | `["error",{"allowProps":false}]` | enabled |
|
|
194
|
+
| [vue/require-explicit-slots](https://eslint.vuejs.org/rules/require-explicit-slots.html) | `"error"` | enabled |
|
|
195
|
+
| [vue/require-prop-types](https://eslint.vuejs.org/rules/require-prop-types.html) | `"error"` | enabled |
|
|
196
|
+
| [vue/no-undef-components](https://eslint.vuejs.org/rules/no-undef-components.html) | `["error",{"ignorePatterns":[]}]` | enabled |
|
|
197
|
+
| [vue/no-undef-directives](https://eslint.vuejs.org/rules/no-undef-directives.html) | `["error",{"ignore":[]}]` | enabled |
|
|
198
|
+
| [vue/no-unused-emit-declarations](https://eslint.vuejs.org/rules/no-unused-emit-declarations.html) | `"error"` | enabled |
|
|
199
|
+
| [vue/html-button-has-type](https://eslint.vuejs.org/rules/html-button-has-type.html) | `["error",{"button":true,"submit":true,"reset":true}]` | enabled |
|
|
200
|
+
| [vue/no-template-target-blank](https://eslint.vuejs.org/rules/no-template-target-blank.html) | `["error",{"allowReferrer":false,"enforceDynamicLinks":"always"}]` | enabled |
|
|
201
|
+
| [vue/eqeqeq](https://eslint.vuejs.org/rules/eqeqeq.html) | `["error","always"]` | enabled |
|
|
202
|
+
| [vue/max-lines-per-block](https://eslint.vuejs.org/rules/max-lines-per-block.html) | `["error",{"script":200,"template":200,"style":150,"skipBlankLines":true}]` | enabled |
|
|
203
|
+
| [vue/max-template-depth](https://eslint.vuejs.org/rules/max-template-depth.html) | `["error",{"maxDepth":5}]` | enabled |
|
|
204
|
+
| [vue/max-len](https://eslint.vuejs.org/rules/max-len.html) | `["error",{"code":120,"template":120,"comments":120,"tabWidth":2,"ignoreUrls":true,"ignoreStrings":false,"ignoreTemplateLiterals":false,"ignoreRegExpLiterals":false,"ignoreHTMLAttributeValues":false,"ignoreHTMLTextContents":false}]` | enabled |
|
|
205
|
+
| [vue/array-bracket-newline](https://eslint.vuejs.org/rules/array-bracket-newline.html) | `["error",{"multiline":true}]` | replaced: ztd/array-layout (full researched policy) |
|
|
206
|
+
| [vue/array-element-newline](https://eslint.vuejs.org/rules/array-element-newline.html) | `["error",{"ArrayExpression":{"minItems":3,"multiline":true,"consistent":true},"ArrayPattern":"consistent"}]` | replaced: ztd/array-layout (full researched policy) |
|
|
207
|
+
| [vue/no-template-shadow](https://eslint.vuejs.org/rules/no-template-shadow.html) | `"error"` | enabled |
|
|
208
|
+
| [vue/one-component-per-file](https://eslint.vuejs.org/rules/one-component-per-file.html) | `"error"` | enabled |
|
|
209
|
+
| [vue/no-required-prop-with-default](https://eslint.vuejs.org/rules/no-required-prop-with-default.html) | `"error"` | enabled |
|
|
210
|
+
| [vue/html-end-tags](https://eslint.vuejs.org/rules/html-end-tags.html) | `"error"` | enabled |
|
|
211
|
+
| [vue/no-async-in-computed-properties](https://eslint.vuejs.org/rules/no-async-in-computed-properties.html) | `"error"` | enabled |
|
|
212
|
+
| [vue/no-side-effects-in-computed-properties](https://eslint.vuejs.org/rules/no-side-effects-in-computed-properties.html) | `"error"` | enabled |
|
|
213
|
+
| [vue/no-use-v-if-with-v-for](https://eslint.vuejs.org/rules/no-use-v-if-with-v-for.html) | `"error"` | enabled |
|
|
214
|
+
| [vue/require-v-for-key](https://eslint.vuejs.org/rules/require-v-for-key.html) | `"error"` | enabled |
|
|
215
|
+
| [vue/no-watch-after-await](https://eslint.vuejs.org/rules/no-watch-after-await.html) | `"error"` | enabled |
|
|
216
|
+
| [vue/no-lifecycle-after-await](https://eslint.vuejs.org/rules/no-lifecycle-after-await.html) | `"error"` | enabled |
|
|
217
|
+
| [vue/no-expose-after-await](https://eslint.vuejs.org/rules/no-expose-after-await.html) | `"error"` | enabled |
|
|
218
|
+
## vue-a11y
|
|
219
|
+
|
|
220
|
+
| Rule | Exact researched value | Disposition |
|
|
221
|
+
| --- | --- | --- |
|
|
222
|
+
| [vue-a11y/alt-text](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/alt-text.html) | `"error"` | enabled |
|
|
223
|
+
| [vue-a11y/anchor-has-content](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/anchor-has-content.html) | `"error"` | enabled |
|
|
224
|
+
| [vue-a11y/aria-props](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-props.html) | `"error"` | enabled |
|
|
225
|
+
| [vue-a11y/aria-role](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-role.html) | `"error"` | enabled |
|
|
226
|
+
| [vue-a11y/aria-unsupported-elements](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-unsupported-elements.html) | `"error"` | enabled |
|
|
227
|
+
| [vue-a11y/click-events-have-key-events](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/click-events-have-key-events.html) | `"error"` | enabled |
|
|
228
|
+
| [vue-a11y/form-control-has-label](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/form-control-has-label.html) | `"error"` | enabled |
|
|
229
|
+
| [vue-a11y/heading-has-content](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/heading-has-content.html) | `"error"` | enabled |
|
|
230
|
+
| [vue-a11y/iframe-has-title](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/iframe-has-title.html) | `"error"` | enabled |
|
|
231
|
+
| [vue-a11y/interactive-supports-focus](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/interactive-supports-focus.html) | `"error"` | enabled |
|
|
232
|
+
| [vue-a11y/label-has-for](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/label-has-for.html) | `["error",{"required":{"some":["nesting","id"]},"allowChildren":false}]` | enabled |
|
|
233
|
+
| [vue-a11y/media-has-caption](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/media-has-caption.html) | `"error"` | enabled |
|
|
234
|
+
| [vue-a11y/mouse-events-have-key-events](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/mouse-events-have-key-events.html) | `"error"` | enabled |
|
|
235
|
+
| [vue-a11y/no-access-key](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-access-key.html) | `"error"` | enabled |
|
|
236
|
+
| [vue-a11y/no-aria-hidden-on-focusable](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-aria-hidden-on-focusable.html) | `"error"` | enabled |
|
|
237
|
+
| [vue-a11y/no-autofocus](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-autofocus.html) | `"error"` | enabled |
|
|
238
|
+
| [vue-a11y/no-distracting-elements](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-distracting-elements.html) | `"error"` | enabled |
|
|
239
|
+
| [vue-a11y/no-redundant-roles](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-redundant-roles.html) | `"error"` | enabled |
|
|
240
|
+
| [vue-a11y/no-role-presentation-on-focusable](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-role-presentation-on-focusable.html) | `"error"` | enabled |
|
|
241
|
+
| [vue-a11y/no-static-element-interactions](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-static-element-interactions.html) | `"error"` | enabled |
|
|
242
|
+
| [vue-a11y/role-has-required-aria-props](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/role-has-required-aria-props.html) | `"error"` | enabled |
|
|
243
|
+
| [vue-a11y/tabindex-no-positive](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/tabindex-no-positive.html) | `"error"` | enabled |
|
|
244
|
+
## tests
|
|
245
|
+
|
|
246
|
+
| Rule | Exact researched value | Disposition |
|
|
247
|
+
| --- | --- | --- |
|
|
248
|
+
| [test/valid-expect](https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-expect.md) | `["error",{"alwaysAwait":true,"minArgs":1,"maxArgs":1}]` | enabled |
|
|
249
|
+
| [test/no-conditional-expect](https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-conditional-expect.md) | `["error",{"expectAssertions":false}]` | enabled |
|
|
250
|
+
| [test/no-conditional-tests](https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-conditional-tests.md) | `"error"` | enabled |
|
|
251
|
+
| [test/no-disabled-tests](https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-disabled-tests.md) | `"error"` | enabled |
|
|
252
|
+
| [test/expect-expect](https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/expect-expect.md) | `["error",{"assertFunctionNames":["expect","assert"],"additionalTestBlockFunctions":[]}]` | enabled |
|
|
253
|
+
| [test/unbound-method](https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/unbound-method.md) | `["error",{"ignoreStatic":false}]` | enabled |
|
package/package.json
CHANGED
|
@@ -1,6 +1,58 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ztd-me/eslint",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"description": "
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Strict typed ESLint flat configs for TypeScript, React and Vue, built on antfu",
|
|
6
|
+
"license": "UNLICENSED",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/zeithrold/tools.git",
|
|
10
|
+
"directory": "packages/eslint-config"
|
|
11
|
+
},
|
|
12
|
+
"engines": {
|
|
13
|
+
"node": ">=22.14.0"
|
|
14
|
+
},
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"import": "./dist/index.js"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist",
|
|
23
|
+
"docs",
|
|
24
|
+
"README.md"
|
|
25
|
+
],
|
|
26
|
+
"publishConfig": {
|
|
27
|
+
"access": "public",
|
|
28
|
+
"registry": "https://registry.npmjs.org/"
|
|
29
|
+
},
|
|
30
|
+
"peerDependencies": {
|
|
31
|
+
"eslint": "^10.11.0",
|
|
32
|
+
"typescript": ">=5.4.0 <6.1.0"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@antfu/eslint-config": "9.5.1",
|
|
36
|
+
"@eslint-react/eslint-plugin": "5.23.3",
|
|
37
|
+
"eslint-plugin-react-hooks": "7.1.1",
|
|
38
|
+
"eslint-plugin-react-refresh": "0.5.7",
|
|
39
|
+
"eslint-plugin-sonarjs": "4.2.2",
|
|
40
|
+
"eslint-plugin-vuejs-accessibility": "2.6.0"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@types/estree": "1.0.8",
|
|
44
|
+
"@types/node": "24.12.0",
|
|
45
|
+
"@types/react": "19.2.14",
|
|
46
|
+
"eslint": "10.11.0",
|
|
47
|
+
"react": "19.2.4",
|
|
48
|
+
"typescript": "6.0.3"
|
|
49
|
+
},
|
|
50
|
+
"scripts": {
|
|
51
|
+
"build": "tsc -p tsconfig.build.json",
|
|
52
|
+
"typecheck": "tsc -p tsconfig.build.json --noEmit && tsc -p test/types/tsconfig.json",
|
|
53
|
+
"lint": "eslint src test scripts eslint.config.js --max-warnings 0",
|
|
54
|
+
"test": "pnpm run build && node --test test/*.test.mjs",
|
|
55
|
+
"test:pack": "node scripts/pack-smoke.mjs",
|
|
56
|
+
"check": "pnpm run build && pnpm run typecheck && pnpm run lint && pnpm test && pnpm run test:pack"
|
|
57
|
+
}
|
|
6
58
|
}
|