@html-eslint/eslint-plugin 0.31.1 → 0.33.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/lib/rules/attrs-newline.js +3 -5
- package/lib/rules/element-newline.js +11 -9
- package/lib/rules/id-naming-convention.js +5 -5
- package/lib/rules/indent/indent.js +121 -69
- package/lib/rules/index.js +20 -0
- package/lib/rules/lowercase.js +7 -8
- package/lib/rules/max-element-depth.js +96 -0
- package/lib/rules/no-abstract-roles.js +4 -4
- package/lib/rules/no-accesskey-attrs.js +4 -4
- package/lib/rules/no-duplicate-attrs.js +4 -4
- package/lib/rules/no-duplicate-id.js +7 -7
- package/lib/rules/no-extra-spacing-attrs.js +14 -14
- package/lib/rules/no-extra-spacing-text.js +9 -10
- package/lib/rules/no-heading-inside-button.js +54 -0
- package/lib/rules/no-inline-styles.js +0 -1
- package/lib/rules/no-invalid-role.js +287 -0
- package/lib/rules/no-multiple-empty-lines.js +5 -5
- package/lib/rules/no-multiple-h1.js +2 -2
- package/lib/rules/no-nested-interactive.js +120 -0
- package/lib/rules/no-positive-tabindex.js +4 -4
- package/lib/rules/no-restricted-attr-values.js +6 -6
- package/lib/rules/no-restricted-attrs.js +6 -6
- package/lib/rules/no-script-style-type.js +4 -4
- package/lib/rules/no-skip-heading-levels.js +2 -2
- package/lib/rules/no-trailing-spaces.js +3 -3
- package/lib/rules/prefer-https.js +106 -0
- package/lib/rules/quotes.js +8 -8
- package/lib/rules/require-attrs.js +14 -6
- package/lib/rules/require-closing-tags.js +4 -4
- package/lib/rules/require-explicit-size.js +122 -0
- package/lib/rules/require-form-method.js +81 -0
- package/lib/rules/require-img-alt.js +2 -3
- package/lib/rules/require-input-label.js +77 -0
- package/lib/rules/require-meta-charset.js +3 -3
- package/lib/rules/require-meta-description.js +3 -3
- package/lib/rules/require-meta-viewport.js +3 -3
- package/lib/rules/require-open-graph-protocol.js +3 -3
- package/lib/rules/require-title.js +5 -5
- package/lib/rules/sort-attrs.js +12 -12
- package/lib/rules/utils/node.js +72 -32
- package/lib/rules/utils/settings.js +2 -2
- package/lib/rules/utils/visitors.js +1 -1
- package/lib/types/ast.d.ts +204 -0
- package/lib/types/index.d.ts +3 -0
- package/lib/types/rule.d.ts +83 -0
- package/lib/types/settings.ts +13 -0
- package/package.json +4 -4
- package/types/rules/attrs-newline.d.ts +2 -3
- package/types/rules/attrs-newline.d.ts.map +1 -1
- package/types/rules/element-newline.d.ts +8 -9
- package/types/rules/element-newline.d.ts.map +1 -1
- package/types/rules/id-naming-convention.d.ts +4 -4
- package/types/rules/id-naming-convention.d.ts.map +1 -1
- package/types/rules/indent/indent.d.ts +12 -5
- package/types/rules/indent/indent.d.ts.map +1 -1
- package/types/rules/index.d.ts +8 -0
- package/types/rules/lowercase.d.ts +4 -5
- package/types/rules/lowercase.d.ts.map +1 -1
- package/types/rules/max-element-depth.d.ts +10 -0
- package/types/rules/max-element-depth.d.ts.map +1 -0
- package/types/rules/no-abstract-roles.d.ts +4 -4
- package/types/rules/no-abstract-roles.d.ts.map +1 -1
- package/types/rules/no-accesskey-attrs.d.ts +4 -4
- package/types/rules/no-accesskey-attrs.d.ts.map +1 -1
- package/types/rules/no-duplicate-attrs.d.ts +4 -4
- package/types/rules/no-duplicate-attrs.d.ts.map +1 -1
- package/types/rules/no-duplicate-id.d.ts +5 -5
- package/types/rules/no-duplicate-id.d.ts.map +1 -1
- package/types/rules/no-extra-spacing-attrs.d.ts +11 -11
- package/types/rules/no-extra-spacing-attrs.d.ts.map +1 -1
- package/types/rules/no-extra-spacing-text.d.ts +7 -8
- package/types/rules/no-extra-spacing-text.d.ts.map +1 -1
- package/types/rules/no-heading-inside-button.d.ts +7 -0
- package/types/rules/no-heading-inside-button.d.ts.map +1 -0
- package/types/rules/no-inline-styles.d.ts +1 -2
- package/types/rules/no-inline-styles.d.ts.map +1 -1
- package/types/rules/no-invalid-role.d.ts +7 -0
- package/types/rules/no-invalid-role.d.ts.map +1 -0
- package/types/rules/no-multiple-empty-lines.d.ts +5 -5
- package/types/rules/no-multiple-empty-lines.d.ts.map +1 -1
- package/types/rules/no-multiple-h1.d.ts +2 -2
- package/types/rules/no-multiple-h1.d.ts.map +1 -1
- package/types/rules/no-nested-interactive.d.ts +8 -0
- package/types/rules/no-nested-interactive.d.ts.map +1 -0
- package/types/rules/no-positive-tabindex.d.ts +4 -4
- package/types/rules/no-positive-tabindex.d.ts.map +1 -1
- package/types/rules/no-restricted-attr-values.d.ts +5 -5
- package/types/rules/no-restricted-attr-values.d.ts.map +1 -1
- package/types/rules/no-restricted-attrs.d.ts +5 -5
- package/types/rules/no-restricted-attrs.d.ts.map +1 -1
- package/types/rules/no-script-style-type.d.ts +4 -4
- package/types/rules/no-script-style-type.d.ts.map +1 -1
- package/types/rules/no-skip-heading-levels.d.ts +2 -2
- package/types/rules/no-skip-heading-levels.d.ts.map +1 -1
- package/types/rules/no-trailing-spaces.d.ts +3 -3
- package/types/rules/no-trailing-spaces.d.ts.map +1 -1
- package/types/rules/prefer-https.d.ts +11 -0
- package/types/rules/prefer-https.d.ts.map +1 -0
- package/types/rules/quotes.d.ts +6 -6
- package/types/rules/quotes.d.ts.map +1 -1
- package/types/rules/require-attrs.d.ts +9 -4
- package/types/rules/require-attrs.d.ts.map +1 -1
- package/types/rules/require-closing-tags.d.ts +2 -2
- package/types/rules/require-closing-tags.d.ts.map +1 -1
- package/types/rules/require-explicit-size.d.ts +9 -0
- package/types/rules/require-explicit-size.d.ts.map +1 -0
- package/types/rules/require-form-method.d.ts +7 -0
- package/types/rules/require-form-method.d.ts.map +1 -0
- package/types/rules/require-img-alt.d.ts +2 -2
- package/types/rules/require-img-alt.d.ts.map +1 -1
- package/types/rules/require-input-label.d.ts +8 -0
- package/types/rules/require-input-label.d.ts.map +1 -0
- package/types/rules/require-meta-charset.d.ts +3 -3
- package/types/rules/require-meta-charset.d.ts.map +1 -1
- package/types/rules/require-meta-description.d.ts +3 -3
- package/types/rules/require-meta-description.d.ts.map +1 -1
- package/types/rules/require-meta-viewport.d.ts +3 -3
- package/types/rules/require-meta-viewport.d.ts.map +1 -1
- package/types/rules/require-open-graph-protocol.d.ts +3 -3
- package/types/rules/require-open-graph-protocol.d.ts.map +1 -1
- package/types/rules/require-title.d.ts +4 -4
- package/types/rules/require-title.d.ts.map +1 -1
- package/types/rules/sort-attrs.d.ts +4 -4
- package/types/rules/sort-attrs.d.ts.map +1 -1
- package/types/rules/utils/node.d.ts +56 -37
- package/types/rules/utils/node.d.ts.map +1 -1
- package/types/rules/utils/settings.d.ts +2 -2
- package/types/rules/utils/settings.d.ts.map +1 -1
- package/types/rules/utils/source-code.d.ts +1 -1
- package/types/rules/utils/source-code.d.ts.map +1 -1
- package/types/rules/utils/visitors.d.ts +1 -1
- package/types/rules/utils/visitors.d.ts.map +1 -1
- package/types/types/settings.d.ts +13 -0
- package/types/types/settings.d.ts.map +1 -0
- package/lib/types.d.ts +0 -289
package/lib/types.d.ts
DELETED
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
import ESTree, { TaggedTemplateExpression, TemplateLiteral } from "estree";
|
|
2
|
-
import ESLint from "eslint";
|
|
3
|
-
import * as ESHtml from "es-html-parser";
|
|
4
|
-
|
|
5
|
-
type Fix = ESLint.Rule.Fix;
|
|
6
|
-
type Token = ESLint.AST.Token;
|
|
7
|
-
|
|
8
|
-
type AnyNode = ESHtml.AnyNode | LineNode;
|
|
9
|
-
|
|
10
|
-
export type Range = ESLint.AST.Range;
|
|
11
|
-
|
|
12
|
-
type Location = ESLint.AST.SourceLocation;
|
|
13
|
-
|
|
14
|
-
export interface BaseNode {
|
|
15
|
-
range: [number, number];
|
|
16
|
-
loc: {
|
|
17
|
-
start: ESTree.Position;
|
|
18
|
-
end: ESTree.Position;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
interface AttributeKeyNode extends ESHtml.AttributeKeyNode {
|
|
23
|
-
parent: AttributeNode;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
interface TextNode extends ESHtml.TextNode {
|
|
27
|
-
parent: TagNode;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export interface TagNode extends ESHtml.TagNode {
|
|
31
|
-
attributes: AttributeNode[];
|
|
32
|
-
parent: TagNode | HTMLNode;
|
|
33
|
-
openStart: OpenTagStartNode;
|
|
34
|
-
openEnd: OpenTagEndNode;
|
|
35
|
-
close: CloseTagNode;
|
|
36
|
-
children: Array<
|
|
37
|
-
TextNode | TagNode | ScriptTagNode | StyleTagNode | CommentNode
|
|
38
|
-
>;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
interface OpenTagStartNode extends ESHtml.OpenTagStartNode {
|
|
42
|
-
parent: TagNode;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
interface OpenTagEndNode extends ESHtml.OpenTagEndNode {
|
|
46
|
-
parent: TagNode;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
interface CloseTagNode extends ESHtml.CloseTagNode {
|
|
50
|
-
parent: TagNode;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
interface AttributeNode extends ESHtml.AttributeNode {
|
|
54
|
-
key: AttributeKeyNode;
|
|
55
|
-
value?: AttributeValueNode;
|
|
56
|
-
parent: TagNode | StyleTagNode | ScriptTagNode;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
interface AttributeValueNode extends ESHtml.AttributeValueNode {
|
|
60
|
-
parent: AttributeNode;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
interface AttributeValueWrapperEndNode
|
|
64
|
-
extends ESHtml.AttributeValueWrapperEndNode {
|
|
65
|
-
parent: AttributeNode;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
interface AttributeValueWrapperStartNode
|
|
69
|
-
extends ESHtml.AttributeValueWrapperStartNode {
|
|
70
|
-
parent: AttributeNode;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
export interface ScriptTagNode extends ESHtml.ScriptTagNode {
|
|
74
|
-
attributes: AttributeNode[];
|
|
75
|
-
parent: HTMLNode | TagNode;
|
|
76
|
-
openStart: OpenScriptTagStartNode;
|
|
77
|
-
openEnd: OpenScriptTagEndNode;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
interface OpenScriptTagStartNode extends ESHtml.OpenScriptTagStartNode {
|
|
81
|
-
parent: ScriptTagNode;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
interface CloseScriptTagNode extends ESHtml.CloseScriptTagNode {
|
|
85
|
-
parent: ScriptTagNode;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
interface OpenScriptTagEndNode extends ESHtml.OpenScriptTagEndNode {
|
|
89
|
-
parent: ScriptTagNode;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
interface ScriptTagContentNode extends ESHtml.ScriptTagContentNode {
|
|
93
|
-
parent: ScriptTagNode;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
export interface StyleTagNode extends ESHtml.StyleTagNode {
|
|
97
|
-
attributes: AttributeNode[];
|
|
98
|
-
parent: TagNode | HTMLNode;
|
|
99
|
-
openStart: OpenStyleTagStartNode;
|
|
100
|
-
openEnd: OpenStyleTagEndNode;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
interface OpenStyleTagStartNode extends ESHtml.OpenStyleTagStartNode {
|
|
104
|
-
parent: StyleTagNode;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
interface OpenStyleTagEndNode extends ESHtml.OpenStyleTagEndNode {
|
|
108
|
-
parent: StyleTagNode;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
interface StyleTagContentNode extends ESHtml.StyleTagContentNode {
|
|
112
|
-
parent: StyleTagNode;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
interface CloseStyleTagNode extends ESHtml.CloseStyleTagNode {
|
|
116
|
-
parent: StyleTagNode;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
interface CommentNode extends ESHtml.CommentNode {
|
|
120
|
-
parent: HTMLNode | TagNode;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
interface CommentOpenNode extends ESHtml.CommentOpenNode {
|
|
124
|
-
parent: CommentNode;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
interface CommentCloseNode extends ESHtml.CommentCloseNode {
|
|
128
|
-
parent: CommentNode;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
interface CommentContentNode extends ESHtml.CommentContentNode {
|
|
132
|
-
parent: CommentNode;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
interface DoctypeNode extends ESHtml.DoctypeNode {
|
|
136
|
-
parent: HTMLNode;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
interface DoctypeOpenNode extends ESHtml.DoctypeOpenNode {
|
|
140
|
-
parent: DoctypeNode;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
interface DoctypeCloseNode extends ESHtml.DoctypeCloseNode {
|
|
144
|
-
parent: DoctypeNode;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
interface DoctypeAttributeNode extends ESHtml.DoctypeAttributeNode {
|
|
148
|
-
parent: DoctypeNode;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
interface DoctypeAttributeValueNode extends ESHtml.DoctypeAttributeValueNode {
|
|
152
|
-
parent: DoctypeNode;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
interface DoctypeAttributeWrapperStart
|
|
156
|
-
extends ESHtml.DoctypeAttributeWrapperStartNode {
|
|
157
|
-
parent: DoctypeNode;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
interface DoctypeAttributeWrapperEnd
|
|
161
|
-
extends ESHtml.DoctypeAttributeWrapperEndNode {
|
|
162
|
-
parent: DoctypeNode;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
interface LineNode extends BaseNode {
|
|
166
|
-
type: "Line";
|
|
167
|
-
value: string;
|
|
168
|
-
skipIndentCheck: boolean;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
type PostFix<T, S extends string> = {
|
|
172
|
-
[K in keyof T as `${K & string}${S}`]: T[K];
|
|
173
|
-
};
|
|
174
|
-
|
|
175
|
-
export type RuleListener = BaseRuleListener &
|
|
176
|
-
PostFix<BaseRuleListener, ":exit">;
|
|
177
|
-
|
|
178
|
-
interface BaseRuleListener {
|
|
179
|
-
Document?: (node: ESHtml.DocumentNode) => void;
|
|
180
|
-
AttributeKey?: (node: AttributeKeyNode) => void;
|
|
181
|
-
Text?: (node: TextNode) => void;
|
|
182
|
-
Tag?: (node: TagNode) => void;
|
|
183
|
-
OpenTagStart?: (node: OpenTagStartNode) => void;
|
|
184
|
-
OpenTagEnd?: (node: OpenTagEndNode) => void;
|
|
185
|
-
CloseTag?: (node: CloseTagNode) => void;
|
|
186
|
-
Attribute?: (node: AttributeNode) => void;
|
|
187
|
-
AttributeValue?: (node: AttributeValueNode) => void;
|
|
188
|
-
AttributeValueWrapperEnd?: (node: AttributeValueWrapperEndNode) => void;
|
|
189
|
-
AttributeValueWrapperStart?: (node: AttributeValueWrapperStartNode) => void;
|
|
190
|
-
ScriptTag?: (node: ScriptTagNode) => void;
|
|
191
|
-
OpenScriptTagStart?: (node: OpenScriptTagStartNode) => void;
|
|
192
|
-
CloseScriptTag?: (node: CloseScriptTagNode) => void;
|
|
193
|
-
OpenScriptTagEnd?: (node: OpenScriptTagEndNode) => void;
|
|
194
|
-
ScriptTagContent?: (node: ScriptTagContentNode) => void;
|
|
195
|
-
StyleTag?: (node: StyleTagNode) => void;
|
|
196
|
-
OpenStyleTagStart?: (node: OpenStyleTagStartNode) => void;
|
|
197
|
-
OpenStyleTagEnd?: (node: OpenStyleTagEndNode) => void;
|
|
198
|
-
StyleTagContent?: (node: StyleTagContentNode) => void;
|
|
199
|
-
CloseStyleTag?: (node: CloseStyleTagNode) => void;
|
|
200
|
-
Comment?: (node: CommentNode) => void;
|
|
201
|
-
CommentOpen?: (node: CommentOpenNode) => void;
|
|
202
|
-
CommentClose?: (node: CommentCloseNode) => void;
|
|
203
|
-
CommentContent?: (node: CommentContentNode) => void;
|
|
204
|
-
Doctype?: (node: DoctypeNode) => void;
|
|
205
|
-
DoctypeOpen?: (node: DoctypeOpenNode) => void;
|
|
206
|
-
DoctypeClose?: (node: DoctypeCloseNode) => void;
|
|
207
|
-
DoctypeAttribute?: (node: DoctypeAttributeNode) => void;
|
|
208
|
-
DoctypeAttributeValue?: (node: DoctypeAttributeValueNode) => void;
|
|
209
|
-
DoctypeAttributeWrapperStart?: (node: DoctypeAttributeWrapperStart) => void;
|
|
210
|
-
DoctypeAttributeWrapperEnd?: (node: DoctypeAttributeWrapperEnd) => void;
|
|
211
|
-
TaggedTemplateExpression?: (node: TaggedTemplateExpression) => void;
|
|
212
|
-
TemplateLiteral?: (node: TemplateLiteral) => void;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
export interface RuleModule extends ESLint.Rule.RuleModule {
|
|
216
|
-
create(context: Context): RuleListener;
|
|
217
|
-
meta?: ESLint.Rule.RuleMetaData;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
export interface RuleFixer {
|
|
221
|
-
insertTextAfter(nodeOrToken: BaseNode | Token, text: string): Fix;
|
|
222
|
-
|
|
223
|
-
insertTextAfterRange(range: Range, text: string): Fix;
|
|
224
|
-
|
|
225
|
-
insertTextBefore(nodeOrToken: BaseNode | Token, text: string): Fix;
|
|
226
|
-
|
|
227
|
-
insertTextBeforeRange(range: Range, text: string): Fix;
|
|
228
|
-
|
|
229
|
-
remove(nodeOrToken: BaseNode | Token): Fix;
|
|
230
|
-
|
|
231
|
-
removeRange(range: Range): Fix;
|
|
232
|
-
|
|
233
|
-
replaceText(nodeOrToken: BaseNode | Token, text: string): Fix;
|
|
234
|
-
|
|
235
|
-
replaceTextRange(range: Range, text: string): Fix;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
interface ReportDescriptorOptionsBase {
|
|
239
|
-
data?: { [key: string]: string };
|
|
240
|
-
|
|
241
|
-
fix?:
|
|
242
|
-
| null
|
|
243
|
-
| ((fixer: RuleFixer) => null | Fix | IterableIterator<Fix> | Fix[]);
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
type SuggestionDescriptorMessage = { desc: string } | { messageId: string };
|
|
247
|
-
type SuggestionReportDescriptor = SuggestionDescriptorMessage &
|
|
248
|
-
ReportDescriptorOptionsBase;
|
|
249
|
-
|
|
250
|
-
interface ReportDescriptorOptions extends ReportDescriptorOptionsBase {
|
|
251
|
-
suggest?: SuggestionReportDescriptor[] | null;
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
type ReportDescriptor = ReportDescriptorMessage &
|
|
255
|
-
ReportDescriptorLocation &
|
|
256
|
-
ReportDescriptorOptions;
|
|
257
|
-
type ReportDescriptorMessage = { message: string } | { messageId: string };
|
|
258
|
-
type ReportDescriptorLocation = {
|
|
259
|
-
node?: BaseNode;
|
|
260
|
-
loc?: ESLint.AST.SourceLocation;
|
|
261
|
-
line?: number;
|
|
262
|
-
column?: number;
|
|
263
|
-
};
|
|
264
|
-
|
|
265
|
-
export interface Context extends Omit<ESLint.Rule.RuleContext, "report"> {
|
|
266
|
-
report(descriptor: ReportDescriptor): void;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
export type ContentNode =
|
|
270
|
-
| CommentNode
|
|
271
|
-
| DoctypeNode
|
|
272
|
-
| ScriptTagNode
|
|
273
|
-
| StyleTagNode
|
|
274
|
-
| TagNode
|
|
275
|
-
| TextNode;
|
|
276
|
-
|
|
277
|
-
export type MaybeHTMLSettings = {
|
|
278
|
-
templateLiterals?: {
|
|
279
|
-
tags?: string[];
|
|
280
|
-
comments?: string[];
|
|
281
|
-
};
|
|
282
|
-
};
|
|
283
|
-
|
|
284
|
-
export type HTMLSettings = {
|
|
285
|
-
templateLiterals: {
|
|
286
|
-
tags: RegExp[];
|
|
287
|
-
comments: RegExp[];
|
|
288
|
-
};
|
|
289
|
-
};
|