@html-eslint/eslint-plugin 0.13.2 → 0.14.1

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/types.d.ts CHANGED
@@ -1,12 +1,200 @@
1
1
  import ESTree from "estree";
2
2
  import ESLint from "eslint";
3
+ import * as ESHtml from "es-html-parser";
3
4
 
4
5
  type Fix = ESLint.Rule.Fix;
5
6
  type Token = ESLint.AST.Token;
7
+
8
+ export type AnyNode = ESHtml.AnyNode | LineNode;
9
+
6
10
  export type Range = ESLint.AST.Range;
7
11
 
12
+ export interface BaseNode {
13
+ range: [number, number];
14
+ loc: {
15
+ start: ESTree.Position;
16
+ end: ESTree.Position;
17
+ };
18
+ }
19
+
20
+ export interface ProgramNode
21
+ extends Omit<ESHtml.DocumentNode, "type" | "children"> {
22
+ type: "Program";
23
+ body: ESHtml.DocumentNode["children"];
24
+ }
25
+
26
+ export interface AttributeKeyNode extends ESHtml.AttributeKeyNode {
27
+ parent: AttributeNode;
28
+ }
29
+
30
+ export interface TextNode extends ESHtml.TextNode {
31
+ parent: TagNode;
32
+ }
33
+
34
+ export interface TagNode extends ESHtml.TagNode {
35
+ parent: TagNode | ProgramNode;
36
+ openStart: OpenTagStartNode;
37
+ close: CloseTagNode;
38
+ children: Array<
39
+ TextNode | TagNode | ScriptTagNode | StyleTagNode | CommentNode
40
+ >;
41
+ }
42
+
43
+ export interface OpenTagStartNode extends ESHtml.OpenTagStartNode {
44
+ parent: TagNode;
45
+ }
46
+
47
+ export interface OpenTagEndNode extends ESHtml.OpenTagEndNode {
48
+ parent: TagNode;
49
+ }
50
+
51
+ export interface CloseTagNode extends ESHtml.CloseTagNode {
52
+ parent: TagNode;
53
+ }
54
+
55
+ export interface AttributeNode extends ESHtml.AttributeNode {
56
+ parent: TagNode;
57
+ }
58
+
59
+ export interface AttributeValueNode extends ESHtml.AttributeValueNode {
60
+ parent: AttributeNode;
61
+ }
62
+
63
+ export interface AttributeValueWrapperEndNode
64
+ extends ESHtml.AttributeValueWrapperEndNode {
65
+ parent: AttributeNode;
66
+ }
67
+
68
+ export interface AttributeValueWrapperStartNode
69
+ extends ESHtml.AttributeValueWrapperStartNode {
70
+ parent: AttributeNode;
71
+ }
72
+
73
+ export interface ScriptTagNode extends ESHtml.ScriptTagNode {
74
+ parent: ProgramNode | TagNode;
75
+ }
76
+
77
+ export interface OpenScriptTagStartNode extends ESHtml.OpenScriptTagStartNode {
78
+ parent: ScriptTagNode;
79
+ }
80
+
81
+ export interface CloseScriptTagNode extends ESHtml.CloseScriptTagNode {
82
+ parent: ScriptTagNode;
83
+ }
84
+
85
+ export interface OpenScriptTagEndNode extends ESHtml.OpenScriptTagEndNode {
86
+ parent: ScriptTagNode;
87
+ }
88
+
89
+ export interface ScriptTagContentNode extends ESHtml.ScriptTagContentNode {
90
+ parent: ScriptTagNode;
91
+ }
92
+
93
+ export interface StyleTagNode extends ESHtml.StyleTagNode {
94
+ parent: TagNode | ProgramNode;
95
+ }
96
+
97
+ export interface OpenStyleTagStartNode extends ESHtml.OpenStyleTagStartNode {
98
+ parent: StyleTagNode;
99
+ }
100
+
101
+ export interface OpenStyleTagEndNode extends ESHtml.OpenStyleTagEndNode {
102
+ parent: StyleTagNode;
103
+ }
104
+
105
+ export interface StyleTagContentNode extends ESHtml.StyleTagContentNode {
106
+ parent: StyleTagNode;
107
+ }
108
+
109
+ export interface CloseStyleTagNode extends ESHtml.CloseStyleTagNode {
110
+ parent: StyleTagNode;
111
+ }
112
+
113
+ export interface CommentNode extends ESHtml.CommentNode {
114
+ parent: ProgramNode | TagNode;
115
+ }
116
+
117
+ export interface CommentOpenNode extends ESHtml.CommentOpenNode {
118
+ parent: CommentNode;
119
+ }
120
+
121
+ export interface CommentCloseNode extends ESHtml.CommentCloseNode {
122
+ parent: CommentNode;
123
+ }
124
+
125
+ export interface CommentContentNode extends ESHtml.CommentContentNode {
126
+ parent: CommentNode;
127
+ }
128
+
129
+ export interface DoctypeNode extends ESHtml.DoctypeNode {
130
+ parent: ProgramNode;
131
+ }
132
+
133
+ export interface DoctypeOpenNode extends ESHtml.DoctypeOpenNode {
134
+ parent: DoctypeNode;
135
+ }
136
+
137
+ export interface DoctypeCloseNode extends ESHtml.DoctypeCloseNode {
138
+ parent: DoctypeNode;
139
+ }
140
+
141
+ export interface DoctypeAttributeNode extends ESHtml.DoctypeAttributeNode {
142
+ parent: DoctypeNode;
143
+ }
144
+
145
+ export interface DoctypeAttributeValueNode
146
+ extends ESHtml.DoctypeAttributeValueNode {
147
+ parent: DoctypeNode;
148
+ }
149
+
150
+ export interface DoctypeAttributeWrapperStart
151
+ extends ESHtml.DoctypeAttributeWrapperStartNode {
152
+ parent: DoctypeNode;
153
+ }
154
+
155
+ export interface DoctypeAttributeWrapperEnd
156
+ extends ESHtml.DoctypeAttributeWrapperEndNode {
157
+ parent: DoctypeNode;
158
+ }
159
+
160
+ export interface LineNode extends BaseNode {
161
+ type: "Line";
162
+ value: string;
163
+ }
164
+
8
165
  interface RuleListener {
9
- [key: string]: (node: ElementNode) => void;
166
+ Program?: (node: ProgramNode) => void;
167
+ AttributeKey?: (node: AttributeKeyNode) => void;
168
+ Text?: (node: TextNode) => void;
169
+ Tag?: (node: TagNode) => void;
170
+ OpenTagStart?: (node: OpenTagStartNode) => void;
171
+ OpenTagEnd?: (node: OpenTagEndNode) => void;
172
+ CloseTag?: (node: CloseTagNode) => void;
173
+ Attribute?: (node: AttributeNode) => void;
174
+ AttributeValue?: (node: AttributeValueNode) => void;
175
+ AttributeValueWrapperEnd?: (node: AttributeValueWrapperEndNode) => void;
176
+ AttributeValueWrapperStart?: (node: AttributeValueWrapperStartNode) => void;
177
+ ScriptTag?: (node: ScriptTagNode) => void;
178
+ OpenScriptTagStart?: (node: OpenScriptTagStartNode) => void;
179
+ CloseScriptTag?: (node: CloseScriptTagNode) => void;
180
+ OpenScriptTagEnd?: (node: OpenScriptTagEndNode) => void;
181
+ ScriptTagContent?: (node: ScriptTagContentNode) => void;
182
+ StyleTag?: (node: StyleTagNode) => void;
183
+ OpenStyleTagStart?: (node: OpenStyleTagStartNode) => void;
184
+ OpenStyleTagEnd?: (node: OpenStyleTagEndNode) => void;
185
+ StyleTagContent?: (node: StyleTagContentNode) => void;
186
+ CloseStyleTag?: (node: CloseStyleTagNode) => void;
187
+ Comment?: (node: CommentNode) => void;
188
+ CommentOpen?: (node: CommentOpenNode) => void;
189
+ CommentClose?: (node: CommentCloseNode) => void;
190
+ CommentContent?: (node: CommentContentNode) => void;
191
+ Doctype?: (node: DoctypeNode) => void;
192
+ DoctypeOpen: (node: DoctypeOpenNode) => void;
193
+ DoctypeClose?: (node: DoctypeCloseNode) => void;
194
+ DoctypeAttribute?: (node: DoctypeAttributeNode) => void;
195
+ DoctypeAttributeValue?: (node: DoctypeAttributeValueNode) => void;
196
+ DoctypeAttributeWrapperStart?: (node: DoctypeAttributeWrapperStart) => void;
197
+ DoctypeAttributeWrapperEnd?: (node: DoctypeAttributeWrapperEnd) => void;
10
198
  }
11
199
 
12
200
  export interface Rule {
@@ -15,19 +203,19 @@ export interface Rule {
15
203
  }
16
204
 
17
205
  interface RuleFixer {
18
- insertTextAfter(nodeOrToken: AnyNode | Token, text: string): Fix;
206
+ insertTextAfter(nodeOrToken: BaseNode | Token, text: string): Fix;
19
207
 
20
208
  insertTextAfterRange(range: Range, text: string): Fix;
21
209
 
22
- insertTextBefore(nodeOrToken: AnyNode | Token, text: string): Fix;
210
+ insertTextBefore(nodeOrToken: BaseNode | Token, text: string): Fix;
23
211
 
24
212
  insertTextBeforeRange(range: Range, text: string): Fix;
25
213
 
26
- remove(nodeOrToken: AnyNode | Token): Fix;
214
+ remove(nodeOrToken: BaseNode | Token): Fix;
27
215
 
28
216
  removeRange(range: Range): Fix;
29
217
 
30
- replaceText(nodeOrToken: AnyNode | Token, text: string): Fix;
218
+ replaceText(nodeOrToken: BaseNode | Token, text: string): Fix;
31
219
 
32
220
  replaceTextRange(range: Range, text: string): Fix;
33
221
  }
@@ -62,60 +250,3 @@ type ReportDescriptorLocation = {
62
250
  export interface Context extends Omit<ESLint.Rule.RuleContext, "report"> {
63
251
  report(descriptor: ReportDescriptor): void;
64
252
  }
65
-
66
- export interface BaseNode {
67
- parent?: null | AnyNode;
68
- range: [number, number];
69
- start: number;
70
- end: number;
71
- loc: {
72
- start: ESTree.Position;
73
- end: ESTree.Position;
74
- };
75
- type?: string;
76
- }
77
-
78
- export interface TagNode extends BaseNode {
79
- type: undefined;
80
- }
81
-
82
- export interface TextLineNode extends BaseNode {
83
- textLine: string;
84
- }
85
-
86
- export interface TextNode extends BaseNode {
87
- type: "text";
88
- value: string;
89
- lineNodes: TextLineNode[];
90
- }
91
-
92
- export interface ElementNode extends BaseNode {
93
- type: string;
94
- tagName: string;
95
- attrs: AttrNode[];
96
- childNodes: ElementNode[];
97
- startTag?: TagNode;
98
- endTag?: TagNode;
99
- namespaceURI?: string;
100
- }
101
-
102
- export interface AttrNode extends BaseNode {
103
- name: string;
104
- value: string;
105
- }
106
-
107
- export interface CommentNode extends BaseNode {
108
- type: "comment";
109
- value: string;
110
- startTag?: TagNode;
111
- endTag?: TagNode;
112
- lineNodes: TextLineNode[];
113
- }
114
-
115
- export type AnyNode =
116
- | AttrNode
117
- | ElementNode
118
- | TextNode
119
- | TextLineNode
120
- | TagNode
121
- | CommentNode;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@html-eslint/eslint-plugin",
3
- "version": "0.13.2",
3
+ "version": "0.14.1",
4
4
  "description": "ESLint plugin for html",
5
5
  "author": "yeonjuan",
6
6
  "homepage": "https://github.com/yeonjuan/html-eslint#readme",
@@ -40,10 +40,11 @@
40
40
  "accessibility"
41
41
  ],
42
42
  "devDependencies": {
43
- "@html-eslint/parser": "^0.13.2",
43
+ "@html-eslint/parser": "^0.14.0",
44
44
  "@types/eslint": "^7.2.10",
45
45
  "@types/estree": "^0.0.47",
46
+ "es-html-parser": "^0.0.7",
46
47
  "typescript": "^4.4.4"
47
48
  },
48
- "gitHead": "3f1599284d5725db38e0984ecdcd283a76a530fa"
49
+ "gitHead": "0fd16ae07553f8d73840ba2e2c07cc488233da05"
49
50
  }