@herb-tools/linter 0.4.1 → 0.4.2

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.
Files changed (36) hide show
  1. package/README.md +1 -3
  2. package/dist/herb-lint.js +142 -17
  3. package/dist/herb-lint.js.map +1 -1
  4. package/dist/index.cjs +136 -10
  5. package/dist/index.cjs.map +1 -1
  6. package/dist/index.js +136 -11
  7. package/dist/index.js.map +1 -1
  8. package/dist/package.json +4 -4
  9. package/dist/src/default-rules.js +2 -0
  10. package/dist/src/default-rules.js.map +1 -1
  11. package/dist/src/rules/erb-require-whitespace-inside-tags.js +18 -2
  12. package/dist/src/rules/erb-require-whitespace-inside-tags.js.map +1 -1
  13. package/dist/src/rules/html-tag-name-lowercase.js +17 -8
  14. package/dist/src/rules/html-tag-name-lowercase.js.map +1 -1
  15. package/dist/src/rules/index.js +1 -0
  16. package/dist/src/rules/index.js.map +1 -1
  17. package/dist/src/rules/rule-utils.js +43 -0
  18. package/dist/src/rules/rule-utils.js.map +1 -1
  19. package/dist/src/rules/svg-tag-name-capitalization.js +57 -0
  20. package/dist/src/rules/svg-tag-name-capitalization.js.map +1 -0
  21. package/dist/tsconfig.tsbuildinfo +1 -1
  22. package/dist/types/rules/index.d.ts +1 -0
  23. package/dist/types/rules/rule-utils.d.ts +9 -0
  24. package/dist/types/rules/svg-tag-name-capitalization.d.ts +6 -0
  25. package/dist/types/src/rules/index.d.ts +1 -0
  26. package/dist/types/src/rules/rule-utils.d.ts +9 -0
  27. package/dist/types/src/rules/svg-tag-name-capitalization.d.ts +6 -0
  28. package/docs/rules/README.md +1 -0
  29. package/docs/rules/svg-tag-name-capitalization.md +57 -0
  30. package/package.json +4 -4
  31. package/src/default-rules.ts +2 -0
  32. package/src/rules/erb-require-whitespace-inside-tags.ts +33 -2
  33. package/src/rules/html-tag-name-lowercase.ts +24 -9
  34. package/src/rules/index.ts +1 -0
  35. package/src/rules/rule-utils.ts +47 -0
  36. package/src/rules/svg-tag-name-capitalization.ts +73 -0
package/dist/index.cjs CHANGED
@@ -148,6 +148,49 @@ const HTML_BOOLEAN_ATTRIBUTES = new Set([
148
148
  "noresize", "noshade", "nowrap", "sortable", "truespeed", "typemustmatch"
149
149
  ]);
150
150
  const HEADING_TAGS = new Set(["h1", "h2", "h3", "h4", "h5", "h6"]);
151
+ /**
152
+ * SVG elements that use camelCase naming
153
+ */
154
+ const SVG_CAMEL_CASE_ELEMENTS = new Set([
155
+ "animateMotion",
156
+ "animateTransform",
157
+ "clipPath",
158
+ "feBlend",
159
+ "feColorMatrix",
160
+ "feComponentTransfer",
161
+ "feComposite",
162
+ "feConvolveMatrix",
163
+ "feDiffuseLighting",
164
+ "feDisplacementMap",
165
+ "feDistantLight",
166
+ "feDropShadow",
167
+ "feFlood",
168
+ "feFuncA",
169
+ "feFuncB",
170
+ "feFuncG",
171
+ "feFuncR",
172
+ "feGaussianBlur",
173
+ "feImage",
174
+ "feMerge",
175
+ "feMergeNode",
176
+ "feMorphology",
177
+ "feOffset",
178
+ "fePointLight",
179
+ "feSpecularLighting",
180
+ "feSpotLight",
181
+ "feTile",
182
+ "feTurbulence",
183
+ "foreignObject",
184
+ "glyphRef",
185
+ "linearGradient",
186
+ "radialGradient",
187
+ "textPath"
188
+ ]);
189
+ /**
190
+ * Mapping from lowercase SVG element names to their correct camelCase versions
191
+ * Generated dynamically from SVG_CAMEL_CASE_ELEMENTS
192
+ */
193
+ const SVG_LOWERCASE_TO_CAMELCASE = new Map(Array.from(SVG_CAMEL_CASE_ELEMENTS).map(element => [element.toLowerCase(), element]));
151
194
  const VALID_ARIA_ROLES = new Set([
152
195
  "banner", "complementary", "contentinfo", "form", "main", "navigation", "region", "search",
153
196
  "article", "cell", "columnheader", "definition", "directory", "document", "feed", "figure",
@@ -348,8 +391,24 @@ class RequireWhitespaceInsideTags extends BaseRuleVisitor {
348
391
  return;
349
392
  }
350
393
  const value = content.value;
351
- this.checkOpenTagWhitespace(openTag, value);
352
- this.checkCloseTagWhitespace(closeTag, value);
394
+ if (openTag.value === "<%#") {
395
+ this.checkCommentTagWhitespace(openTag, closeTag, value);
396
+ }
397
+ else {
398
+ this.checkOpenTagWhitespace(openTag, value);
399
+ this.checkCloseTagWhitespace(closeTag, value);
400
+ }
401
+ }
402
+ checkCommentTagWhitespace(openTag, closeTag, content) {
403
+ if (!content.startsWith(" ") && !content.startsWith("\n") && !content.startsWith("=")) {
404
+ this.addOffense(`Add whitespace after \`${openTag.value}\`.`, openTag.location, "error");
405
+ }
406
+ else if (content.startsWith("=") && content.length > 1 && !content[1].match(/\s/)) {
407
+ this.addOffense(`Add whitespace after \`<%#=\`.`, openTag.location, "error");
408
+ }
409
+ if (!content.endsWith(" ") && !content.endsWith("\n")) {
410
+ this.addOffense(`Add whitespace before \`${closeTag.value}\`.`, closeTag.location, "error");
411
+ }
353
412
  }
354
413
  checkOpenTagWhitespace(openTag, content) {
355
414
  if (content.startsWith(" ") || content.startsWith("\n")) {
@@ -810,13 +869,21 @@ class HTMLNoNestedLinksRule {
810
869
  }
811
870
 
812
871
  class TagNameLowercaseVisitor extends BaseRuleVisitor {
813
- visitHTMLOpenTagNode(node) {
814
- this.checkTagName(node);
815
- this.visitChildNodes(node);
816
- }
817
- visitHTMLCloseTagNode(node) {
818
- this.checkTagName(node);
872
+ visitHTMLElementNode(node) {
873
+ const tagName = node.tag_name?.value;
874
+ if (node.open_tag) {
875
+ this.checkTagName(node.open_tag);
876
+ }
877
+ if (tagName && ["svg"].includes(tagName.toLowerCase())) {
878
+ if (node.close_tag) {
879
+ this.checkTagName(node.close_tag);
880
+ }
881
+ return;
882
+ }
819
883
  this.visitChildNodes(node);
884
+ if (node.close_tag) {
885
+ this.checkTagName(node.close_tag);
886
+ }
820
887
  }
821
888
  visitHTMLSelfCloseTagNode(node) {
822
889
  this.checkTagName(node);
@@ -826,7 +893,8 @@ class TagNameLowercaseVisitor extends BaseRuleVisitor {
826
893
  const tagName = node.tag_name?.value;
827
894
  if (!tagName)
828
895
  return;
829
- if (tagName !== tagName.toLowerCase()) {
896
+ const lowercaseTagName = tagName.toLowerCase();
897
+ if (tagName !== lowercaseTagName) {
830
898
  let type = node.type;
831
899
  if (node.type == "AST_HTML_OPEN_TAG_NODE")
832
900
  type = "Opening";
@@ -834,7 +902,7 @@ class TagNameLowercaseVisitor extends BaseRuleVisitor {
834
902
  type = "Closing";
835
903
  if (node.type == "AST_HTML_SELF_CLOSE_TAG_NODE")
836
904
  type = "Self-closing";
837
- this.addOffense(`${type} tag name \`${tagName}\` should be lowercase. Use \`${tagName.toLowerCase()}\` instead.`, node.tag_name.location, "error");
905
+ this.addOffense(`${type} tag name \`${tagName}\` should be lowercase. Use \`${lowercaseTagName}\` instead.`, node.tag_name.location, "error");
838
906
  }
839
907
  }
840
908
  }
@@ -847,6 +915,62 @@ class HTMLTagNameLowercaseRule {
847
915
  }
848
916
  }
849
917
 
918
+ class SVGTagNameCapitalizationVisitor extends BaseRuleVisitor {
919
+ insideSVG = false;
920
+ visitHTMLElementNode(node) {
921
+ const tagName = node.tag_name?.value;
922
+ if (tagName && ["svg"].includes(tagName.toLowerCase())) {
923
+ const wasInsideSVG = this.insideSVG;
924
+ this.insideSVG = true;
925
+ this.visitChildNodes(node);
926
+ this.insideSVG = wasInsideSVG;
927
+ return;
928
+ }
929
+ if (this.insideSVG) {
930
+ if (node.open_tag) {
931
+ this.checkTagName(node.open_tag);
932
+ }
933
+ if (node.close_tag) {
934
+ this.checkTagName(node.close_tag);
935
+ }
936
+ }
937
+ this.visitChildNodes(node);
938
+ }
939
+ visitHTMLSelfCloseTagNode(node) {
940
+ if (this.insideSVG) {
941
+ this.checkTagName(node);
942
+ }
943
+ this.visitChildNodes(node);
944
+ }
945
+ checkTagName(node) {
946
+ const tagName = node.tag_name?.value;
947
+ if (!tagName)
948
+ return;
949
+ if (SVG_CAMEL_CASE_ELEMENTS.has(tagName))
950
+ return;
951
+ const lowercaseTagName = tagName.toLowerCase();
952
+ const correctCamelCase = SVG_LOWERCASE_TO_CAMELCASE.get(lowercaseTagName);
953
+ if (correctCamelCase && tagName !== correctCamelCase) {
954
+ let type = node.type;
955
+ if (node.type == "AST_HTML_OPEN_TAG_NODE")
956
+ type = "Opening";
957
+ if (node.type == "AST_HTML_CLOSE_TAG_NODE")
958
+ type = "Closing";
959
+ if (node.type == "AST_HTML_SELF_CLOSE_TAG_NODE")
960
+ type = "Self-closing";
961
+ this.addOffense(`${type} SVG tag name \`${tagName}\` should use proper capitalization. Use \`${correctCamelCase}\` instead.`, node.tag_name.location, "error");
962
+ }
963
+ }
964
+ }
965
+ class SVGTagNameCapitalizationRule {
966
+ name = "svg-tag-name-capitalization";
967
+ check(node) {
968
+ const visitor = new SVGTagNameCapitalizationVisitor(this.name);
969
+ visitor.visit(node);
970
+ return visitor.offenses;
971
+ }
972
+ }
973
+
850
974
  const defaultRules = [
851
975
  ERBNoEmptyTagsRule,
852
976
  ERBNoOutputControlFlowRule,
@@ -865,6 +989,7 @@ const defaultRules = [
865
989
  HTMLNoEmptyHeadingsRule,
866
990
  HTMLNoNestedLinksRule,
867
991
  HTMLTagNameLowercaseRule,
992
+ SVGTagNameCapitalizationRule,
868
993
  ];
869
994
 
870
995
  class Linter {
@@ -979,4 +1104,5 @@ exports.HTMLNoEmptyHeadingsRule = HTMLNoEmptyHeadingsRule;
979
1104
  exports.HTMLNoNestedLinksRule = HTMLNoNestedLinksRule;
980
1105
  exports.HTMLTagNameLowercaseRule = HTMLTagNameLowercaseRule;
981
1106
  exports.Linter = Linter;
1107
+ exports.SVGTagNameCapitalizationRule = SVGTagNameCapitalizationRule;
982
1108
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/rules/rule-utils.ts","../src/rules/erb-no-empty-tags.ts","../src/rules/erb-no-output-control-flow.ts","../src/rules/erb-require-whitespace-inside-tags.ts","../src/rules/html-anchor-require-href.ts","../src/rules/html-aria-attribute-must-be-valid.ts","../src/rules/html-aria-role-heading-requires-level.ts","../src/rules/html-aria-role-must-be-valid.ts","../src/rules/html-attribute-double-quotes.ts","../src/rules/html-attribute-values-require-quotes.ts","../src/rules/html-boolean-attributes-no-value.ts","../src/rules/html-img-require-alt.ts","../src/rules/html-no-duplicate-attributes.ts","../src/rules/html-no-duplicate-ids.ts","../src/rules/html-no-empty-headings.ts","../src/rules/html-no-nested-links.ts","../src/rules/html-tag-name-lowercase.ts","../src/default-rules.ts","../src/linter.ts","../src/rules/html-no-block-inside-inline.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Visitor","isERBNode"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/rules/rule-utils.ts","../src/rules/erb-no-empty-tags.ts","../src/rules/erb-no-output-control-flow.ts","../src/rules/erb-require-whitespace-inside-tags.ts","../src/rules/html-anchor-require-href.ts","../src/rules/html-aria-attribute-must-be-valid.ts","../src/rules/html-aria-role-heading-requires-level.ts","../src/rules/html-aria-role-must-be-valid.ts","../src/rules/html-attribute-double-quotes.ts","../src/rules/html-attribute-values-require-quotes.ts","../src/rules/html-boolean-attributes-no-value.ts","../src/rules/html-img-require-alt.ts","../src/rules/html-no-duplicate-attributes.ts","../src/rules/html-no-duplicate-ids.ts","../src/rules/html-no-empty-headings.ts","../src/rules/html-no-nested-links.ts","../src/rules/html-tag-name-lowercase.ts","../src/rules/svg-tag-name-capitalization.ts","../src/default-rules.ts","../src/linter.ts","../src/rules/html-no-block-inside-inline.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Visitor","isERBNode"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -146,6 +146,49 @@ const HTML_BOOLEAN_ATTRIBUTES = new Set([
146
146
  "noresize", "noshade", "nowrap", "sortable", "truespeed", "typemustmatch"
147
147
  ]);
148
148
  const HEADING_TAGS = new Set(["h1", "h2", "h3", "h4", "h5", "h6"]);
149
+ /**
150
+ * SVG elements that use camelCase naming
151
+ */
152
+ const SVG_CAMEL_CASE_ELEMENTS = new Set([
153
+ "animateMotion",
154
+ "animateTransform",
155
+ "clipPath",
156
+ "feBlend",
157
+ "feColorMatrix",
158
+ "feComponentTransfer",
159
+ "feComposite",
160
+ "feConvolveMatrix",
161
+ "feDiffuseLighting",
162
+ "feDisplacementMap",
163
+ "feDistantLight",
164
+ "feDropShadow",
165
+ "feFlood",
166
+ "feFuncA",
167
+ "feFuncB",
168
+ "feFuncG",
169
+ "feFuncR",
170
+ "feGaussianBlur",
171
+ "feImage",
172
+ "feMerge",
173
+ "feMergeNode",
174
+ "feMorphology",
175
+ "feOffset",
176
+ "fePointLight",
177
+ "feSpecularLighting",
178
+ "feSpotLight",
179
+ "feTile",
180
+ "feTurbulence",
181
+ "foreignObject",
182
+ "glyphRef",
183
+ "linearGradient",
184
+ "radialGradient",
185
+ "textPath"
186
+ ]);
187
+ /**
188
+ * Mapping from lowercase SVG element names to their correct camelCase versions
189
+ * Generated dynamically from SVG_CAMEL_CASE_ELEMENTS
190
+ */
191
+ const SVG_LOWERCASE_TO_CAMELCASE = new Map(Array.from(SVG_CAMEL_CASE_ELEMENTS).map(element => [element.toLowerCase(), element]));
149
192
  const VALID_ARIA_ROLES = new Set([
150
193
  "banner", "complementary", "contentinfo", "form", "main", "navigation", "region", "search",
151
194
  "article", "cell", "columnheader", "definition", "directory", "document", "feed", "figure",
@@ -346,8 +389,24 @@ class RequireWhitespaceInsideTags extends BaseRuleVisitor {
346
389
  return;
347
390
  }
348
391
  const value = content.value;
349
- this.checkOpenTagWhitespace(openTag, value);
350
- this.checkCloseTagWhitespace(closeTag, value);
392
+ if (openTag.value === "<%#") {
393
+ this.checkCommentTagWhitespace(openTag, closeTag, value);
394
+ }
395
+ else {
396
+ this.checkOpenTagWhitespace(openTag, value);
397
+ this.checkCloseTagWhitespace(closeTag, value);
398
+ }
399
+ }
400
+ checkCommentTagWhitespace(openTag, closeTag, content) {
401
+ if (!content.startsWith(" ") && !content.startsWith("\n") && !content.startsWith("=")) {
402
+ this.addOffense(`Add whitespace after \`${openTag.value}\`.`, openTag.location, "error");
403
+ }
404
+ else if (content.startsWith("=") && content.length > 1 && !content[1].match(/\s/)) {
405
+ this.addOffense(`Add whitespace after \`<%#=\`.`, openTag.location, "error");
406
+ }
407
+ if (!content.endsWith(" ") && !content.endsWith("\n")) {
408
+ this.addOffense(`Add whitespace before \`${closeTag.value}\`.`, closeTag.location, "error");
409
+ }
351
410
  }
352
411
  checkOpenTagWhitespace(openTag, content) {
353
412
  if (content.startsWith(" ") || content.startsWith("\n")) {
@@ -808,13 +867,21 @@ class HTMLNoNestedLinksRule {
808
867
  }
809
868
 
810
869
  class TagNameLowercaseVisitor extends BaseRuleVisitor {
811
- visitHTMLOpenTagNode(node) {
812
- this.checkTagName(node);
813
- this.visitChildNodes(node);
814
- }
815
- visitHTMLCloseTagNode(node) {
816
- this.checkTagName(node);
870
+ visitHTMLElementNode(node) {
871
+ const tagName = node.tag_name?.value;
872
+ if (node.open_tag) {
873
+ this.checkTagName(node.open_tag);
874
+ }
875
+ if (tagName && ["svg"].includes(tagName.toLowerCase())) {
876
+ if (node.close_tag) {
877
+ this.checkTagName(node.close_tag);
878
+ }
879
+ return;
880
+ }
817
881
  this.visitChildNodes(node);
882
+ if (node.close_tag) {
883
+ this.checkTagName(node.close_tag);
884
+ }
818
885
  }
819
886
  visitHTMLSelfCloseTagNode(node) {
820
887
  this.checkTagName(node);
@@ -824,7 +891,8 @@ class TagNameLowercaseVisitor extends BaseRuleVisitor {
824
891
  const tagName = node.tag_name?.value;
825
892
  if (!tagName)
826
893
  return;
827
- if (tagName !== tagName.toLowerCase()) {
894
+ const lowercaseTagName = tagName.toLowerCase();
895
+ if (tagName !== lowercaseTagName) {
828
896
  let type = node.type;
829
897
  if (node.type == "AST_HTML_OPEN_TAG_NODE")
830
898
  type = "Opening";
@@ -832,7 +900,7 @@ class TagNameLowercaseVisitor extends BaseRuleVisitor {
832
900
  type = "Closing";
833
901
  if (node.type == "AST_HTML_SELF_CLOSE_TAG_NODE")
834
902
  type = "Self-closing";
835
- this.addOffense(`${type} tag name \`${tagName}\` should be lowercase. Use \`${tagName.toLowerCase()}\` instead.`, node.tag_name.location, "error");
903
+ this.addOffense(`${type} tag name \`${tagName}\` should be lowercase. Use \`${lowercaseTagName}\` instead.`, node.tag_name.location, "error");
836
904
  }
837
905
  }
838
906
  }
@@ -845,6 +913,62 @@ class HTMLTagNameLowercaseRule {
845
913
  }
846
914
  }
847
915
 
916
+ class SVGTagNameCapitalizationVisitor extends BaseRuleVisitor {
917
+ insideSVG = false;
918
+ visitHTMLElementNode(node) {
919
+ const tagName = node.tag_name?.value;
920
+ if (tagName && ["svg"].includes(tagName.toLowerCase())) {
921
+ const wasInsideSVG = this.insideSVG;
922
+ this.insideSVG = true;
923
+ this.visitChildNodes(node);
924
+ this.insideSVG = wasInsideSVG;
925
+ return;
926
+ }
927
+ if (this.insideSVG) {
928
+ if (node.open_tag) {
929
+ this.checkTagName(node.open_tag);
930
+ }
931
+ if (node.close_tag) {
932
+ this.checkTagName(node.close_tag);
933
+ }
934
+ }
935
+ this.visitChildNodes(node);
936
+ }
937
+ visitHTMLSelfCloseTagNode(node) {
938
+ if (this.insideSVG) {
939
+ this.checkTagName(node);
940
+ }
941
+ this.visitChildNodes(node);
942
+ }
943
+ checkTagName(node) {
944
+ const tagName = node.tag_name?.value;
945
+ if (!tagName)
946
+ return;
947
+ if (SVG_CAMEL_CASE_ELEMENTS.has(tagName))
948
+ return;
949
+ const lowercaseTagName = tagName.toLowerCase();
950
+ const correctCamelCase = SVG_LOWERCASE_TO_CAMELCASE.get(lowercaseTagName);
951
+ if (correctCamelCase && tagName !== correctCamelCase) {
952
+ let type = node.type;
953
+ if (node.type == "AST_HTML_OPEN_TAG_NODE")
954
+ type = "Opening";
955
+ if (node.type == "AST_HTML_CLOSE_TAG_NODE")
956
+ type = "Closing";
957
+ if (node.type == "AST_HTML_SELF_CLOSE_TAG_NODE")
958
+ type = "Self-closing";
959
+ this.addOffense(`${type} SVG tag name \`${tagName}\` should use proper capitalization. Use \`${correctCamelCase}\` instead.`, node.tag_name.location, "error");
960
+ }
961
+ }
962
+ }
963
+ class SVGTagNameCapitalizationRule {
964
+ name = "svg-tag-name-capitalization";
965
+ check(node) {
966
+ const visitor = new SVGTagNameCapitalizationVisitor(this.name);
967
+ visitor.visit(node);
968
+ return visitor.offenses;
969
+ }
970
+ }
971
+
848
972
  const defaultRules = [
849
973
  ERBNoEmptyTagsRule,
850
974
  ERBNoOutputControlFlowRule,
@@ -863,6 +987,7 @@ const defaultRules = [
863
987
  HTMLNoEmptyHeadingsRule,
864
988
  HTMLNoNestedLinksRule,
865
989
  HTMLTagNameLowercaseRule,
990
+ SVGTagNameCapitalizationRule,
866
991
  ];
867
992
 
868
993
  class Linter {
@@ -961,5 +1086,5 @@ class HTMLNoBlockInsideInlineRule {
961
1086
  }
962
1087
  }
963
1088
 
964
- export { ERBNoEmptyTagsRule, ERBNoOutputControlFlowRule, HTMLAnchorRequireHrefRule, HTMLAriaRoleHeadingRequiresLevelRule, HTMLAriaRoleMustBeValidRule, HTMLAttributeDoubleQuotesRule, HTMLAttributeValuesRequireQuotesRule, HTMLBooleanAttributesNoValueRule, HTMLImgRequireAltRule, HTMLNoBlockInsideInlineRule, HTMLNoDuplicateAttributesRule, HTMLNoDuplicateIdsRule, HTMLNoEmptyHeadingsRule, HTMLNoNestedLinksRule, HTMLTagNameLowercaseRule, Linter };
1089
+ export { ERBNoEmptyTagsRule, ERBNoOutputControlFlowRule, HTMLAnchorRequireHrefRule, HTMLAriaRoleHeadingRequiresLevelRule, HTMLAriaRoleMustBeValidRule, HTMLAttributeDoubleQuotesRule, HTMLAttributeValuesRequireQuotesRule, HTMLBooleanAttributesNoValueRule, HTMLImgRequireAltRule, HTMLNoBlockInsideInlineRule, HTMLNoDuplicateAttributesRule, HTMLNoDuplicateIdsRule, HTMLNoEmptyHeadingsRule, HTMLNoNestedLinksRule, HTMLTagNameLowercaseRule, Linter, SVGTagNameCapitalizationRule };
965
1090
  //# sourceMappingURL=index.js.map