html-validate 7.12.0 → 7.12.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.
@@ -273,6 +273,30 @@ function naturalJoin(values, conjunction = "or") {
273
273
  }
274
274
  }
275
275
 
276
+ /**
277
+ * Partition an array to two new lists based on the result of a
278
+ * predicate. Similar to `Array.filter` but returns both matching and
279
+ * non-matching in the same call.
280
+ *
281
+ * Elements matching the predicate is placed in the first array and elements not
282
+ * matching is placed in the second.
283
+ *
284
+ * @public
285
+ * @param values - The array of values to partition.
286
+ * @param predicate - A predicate function taking a single element and returning
287
+ * a boolean.
288
+ * @returns - Two arrays where the first contains all elements where the
289
+ * predicate matched and second contains the rest of the elements.
290
+ */
291
+ function partition(values, predicate) {
292
+ const initial = [[], []];
293
+ return values.reduce((accumulator, value, index) => {
294
+ const match = predicate(value, index, values);
295
+ accumulator[match ? 0 : 1].push(value);
296
+ return accumulator;
297
+ }, initial);
298
+ }
299
+
276
300
  /**
277
301
  * Represents casing for a name, e.g. lowercase, uppercase, etc.
278
302
  */
@@ -458,4 +482,5 @@ exports.isHTMLHidden = isHTMLHidden;
458
482
  exports.isKeywordIgnored = isKeywordIgnored;
459
483
  exports.keywordPatternMatcher = keywordPatternMatcher;
460
484
  exports.naturalJoin = naturalJoin;
485
+ exports.partition = partition;
461
486
  //# sourceMappingURL=rules-helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rules-helper.js","sources":["../../../src/rules/helper/is-keyword-ignored.ts","../../../src/rules/helper/a11y.ts","../../../src/rules/helper/text.ts","../../../src/rules/helper/has-alt-text.ts","../../../src/rules/helper/has-aria-label.ts","../../../src/rules/helper/natural-join.ts","../../../src/rules/helper/case-style.ts","../../../src/rules/helper/has-accessible-name.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["TextClassification","isTextNode","isElementNode","ConfigError","DynamicValue","generateIdSelector"],"mappings":"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"}
1
+ {"version":3,"file":"rules-helper.js","sources":["../../../src/rules/helper/is-keyword-ignored.ts","../../../src/rules/helper/a11y.ts","../../../src/rules/helper/text.ts","../../../src/rules/helper/has-alt-text.ts","../../../src/rules/helper/has-aria-label.ts","../../../src/rules/helper/natural-join.ts","../../../src/rules/helper/partition.ts","../../../src/rules/helper/case-style.ts","../../../src/rules/helper/has-accessible-name.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["TextClassification","isTextNode","isElementNode","ConfigError","DynamicValue","generateIdSelector"],"mappings":"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"}
package/dist/es/core.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import fs from 'fs';
2
2
  import betterAjvErrors from '@sidvind/better-ajv-errors';
3
- import { i as isKeywordIgnored, C as CaseStyle, n as naturalJoin, c as classifyNodeText, T as TextClassification, h as hasAltText, a as isHTMLHidden, b as isAriaHidden, d as hasAccessibleName, k as keywordPatternMatcher, e as inAccessibilityTree, f as hasAriaLabel } from './rules-helper.js';
3
+ import { i as isKeywordIgnored, C as CaseStyle, n as naturalJoin, c as classifyNodeText, T as TextClassification, h as hasAltText, p as partition, a as isHTMLHidden, b as isAriaHidden, d as hasAccessibleName, k as keywordPatternMatcher, e as inAccessibilityTree, f as hasAriaLabel } from './rules-helper.js';
4
4
  import Ajv from 'ajv';
5
5
  import deepmerge from 'deepmerge';
6
6
  import * as espree from 'espree';
@@ -3621,7 +3621,7 @@ class Rule {
3621
3621
  }
3622
3622
  }
3623
3623
 
3624
- const defaults$v = {
3624
+ const defaults$w = {
3625
3625
  allowExternal: true,
3626
3626
  allowRelative: true,
3627
3627
  allowAbsolute: true,
@@ -3665,7 +3665,7 @@ function matchList(value, list) {
3665
3665
  }
3666
3666
  class AllowedLinks extends Rule {
3667
3667
  constructor(options) {
3668
- super({ ...defaults$v, ...options });
3668
+ super({ ...defaults$w, ...options });
3669
3669
  this.allowExternal = parseAllow(this.options.allowExternal);
3670
3670
  this.allowRelative = parseAllow(this.options.allowRelative);
3671
3671
  this.allowAbsolute = parseAllow(this.options.allowAbsolute);
@@ -3813,7 +3813,7 @@ var RuleContext$1;
3813
3813
  RuleContext["MISSING_ALT"] = "missing-alt";
3814
3814
  RuleContext["MISSING_HREF"] = "missing-href";
3815
3815
  })(RuleContext$1 || (RuleContext$1 = {}));
3816
- const defaults$u = {
3816
+ const defaults$v = {
3817
3817
  accessible: true,
3818
3818
  };
3819
3819
  function findByTarget(target, siblings) {
@@ -3851,7 +3851,7 @@ function getDescription$1(context) {
3851
3851
  }
3852
3852
  class AreaAlt extends Rule {
3853
3853
  constructor(options) {
3854
- super({ ...defaults$u, ...options });
3854
+ super({ ...defaults$v, ...options });
3855
3855
  }
3856
3856
  static schema() {
3857
3857
  return {
@@ -4020,13 +4020,13 @@ class ConfigError extends UserError {
4020
4020
  }
4021
4021
  }
4022
4022
 
4023
- const defaults$t = {
4023
+ const defaults$u = {
4024
4024
  style: "lowercase",
4025
4025
  ignoreForeign: true,
4026
4026
  };
4027
4027
  class AttrCase extends Rule {
4028
4028
  constructor(options) {
4029
- super({ ...defaults$t, ...options });
4029
+ super({ ...defaults$u, ...options });
4030
4030
  this.style = new CaseStyle(this.options.style, "attr-case");
4031
4031
  }
4032
4032
  static schema() {
@@ -4371,7 +4371,7 @@ class AttrDelimiter extends Rule {
4371
4371
  }
4372
4372
 
4373
4373
  const DEFAULT_PATTERN = "[a-z0-9-:]+";
4374
- const defaults$s = {
4374
+ const defaults$t = {
4375
4375
  pattern: DEFAULT_PATTERN,
4376
4376
  ignoreForeign: true,
4377
4377
  };
@@ -4408,7 +4408,7 @@ function generateDescription(name, pattern) {
4408
4408
  }
4409
4409
  class AttrPattern extends Rule {
4410
4410
  constructor(options) {
4411
- super({ ...defaults$s, ...options });
4411
+ super({ ...defaults$t, ...options });
4412
4412
  this.pattern = generateRegexp(this.options.pattern);
4413
4413
  }
4414
4414
  static schema() {
@@ -4469,7 +4469,7 @@ var QuoteStyle;
4469
4469
  QuoteStyle["AUTO_QUOTE"] = "auto";
4470
4470
  QuoteStyle["ANY_QUOTE"] = "any";
4471
4471
  })(QuoteStyle || (QuoteStyle = {}));
4472
- const defaults$r = {
4472
+ const defaults$s = {
4473
4473
  style: "auto",
4474
4474
  unquoted: false,
4475
4475
  };
@@ -4536,7 +4536,7 @@ class AttrQuotes extends Rule {
4536
4536
  };
4537
4537
  }
4538
4538
  constructor(options) {
4539
- super({ ...defaults$r, ...options });
4539
+ super({ ...defaults$s, ...options });
4540
4540
  this.style = parseStyle$4(this.options.style);
4541
4541
  }
4542
4542
  setup() {
@@ -4706,12 +4706,12 @@ class AttributeAllowedValues extends Rule {
4706
4706
  }
4707
4707
  }
4708
4708
 
4709
- const defaults$q = {
4709
+ const defaults$r = {
4710
4710
  style: "omit",
4711
4711
  };
4712
4712
  class AttributeBooleanStyle extends Rule {
4713
4713
  constructor(options) {
4714
- super({ ...defaults$q, ...options });
4714
+ super({ ...defaults$r, ...options });
4715
4715
  this.hasInvalidStyle = parseStyle$3(this.options.style);
4716
4716
  }
4717
4717
  static schema() {
@@ -4787,12 +4787,12 @@ function reportMessage$1(attr, style) {
4787
4787
  return "";
4788
4788
  }
4789
4789
 
4790
- const defaults$p = {
4790
+ const defaults$q = {
4791
4791
  style: "omit",
4792
4792
  };
4793
4793
  class AttributeEmptyStyle extends Rule {
4794
4794
  constructor(options) {
4795
- super({ ...defaults$p, ...options });
4795
+ super({ ...defaults$q, ...options });
4796
4796
  this.hasInvalidStyle = parseStyle$2(this.options.style);
4797
4797
  }
4798
4798
  static schema() {
@@ -4948,12 +4948,12 @@ function describePattern(pattern) {
4948
4948
  }
4949
4949
  }
4950
4950
 
4951
- const defaults$o = {
4951
+ const defaults$p = {
4952
4952
  pattern: "kebabcase",
4953
4953
  };
4954
4954
  class ClassPattern extends Rule {
4955
4955
  constructor(options) {
4956
- super({ ...defaults$o, ...options });
4956
+ super({ ...defaults$p, ...options });
4957
4957
  this.pattern = parsePattern(this.options.pattern);
4958
4958
  }
4959
4959
  static schema() {
@@ -5062,13 +5062,13 @@ class CloseOrder extends Rule {
5062
5062
  }
5063
5063
  }
5064
5064
 
5065
- const defaults$n = {
5065
+ const defaults$o = {
5066
5066
  include: null,
5067
5067
  exclude: null,
5068
5068
  };
5069
5069
  class Deprecated extends Rule {
5070
5070
  constructor(options) {
5071
- super({ ...defaults$n, ...options });
5071
+ super({ ...defaults$o, ...options });
5072
5072
  }
5073
5073
  static schema() {
5074
5074
  return {
@@ -5231,12 +5231,12 @@ let NoStyleTag$1 = class NoStyleTag extends Rule {
5231
5231
  }
5232
5232
  };
5233
5233
 
5234
- const defaults$m = {
5234
+ const defaults$n = {
5235
5235
  style: "uppercase",
5236
5236
  };
5237
5237
  class DoctypeStyle extends Rule {
5238
5238
  constructor(options) {
5239
- super({ ...defaults$m, ...options });
5239
+ super({ ...defaults$n, ...options });
5240
5240
  }
5241
5241
  static schema() {
5242
5242
  return {
@@ -5268,12 +5268,12 @@ class DoctypeStyle extends Rule {
5268
5268
  }
5269
5269
  }
5270
5270
 
5271
- const defaults$l = {
5271
+ const defaults$m = {
5272
5272
  style: "lowercase",
5273
5273
  };
5274
5274
  class ElementCase extends Rule {
5275
5275
  constructor(options) {
5276
- super({ ...defaults$l, ...options });
5276
+ super({ ...defaults$m, ...options });
5277
5277
  this.style = new CaseStyle(this.options.style, "element-case");
5278
5278
  }
5279
5279
  static schema() {
@@ -5339,14 +5339,14 @@ class ElementCase extends Rule {
5339
5339
  }
5340
5340
  }
5341
5341
 
5342
- const defaults$k = {
5342
+ const defaults$l = {
5343
5343
  pattern: "^[a-z][a-z0-9\\-._]*-[a-z0-9\\-._]*$",
5344
5344
  whitelist: [],
5345
5345
  blacklist: [],
5346
5346
  };
5347
5347
  class ElementName extends Rule {
5348
5348
  constructor(options) {
5349
- super({ ...defaults$k, ...options });
5349
+ super({ ...defaults$l, ...options });
5350
5350
  // eslint-disable-next-line security/detect-non-literal-regexp
5351
5351
  this.pattern = new RegExp(this.options.pattern);
5352
5352
  }
@@ -5387,7 +5387,7 @@ class ElementName extends Rule {
5387
5387
  ...context.blacklist.map((cur) => `- ${cur}`),
5388
5388
  ];
5389
5389
  }
5390
- if (context.pattern !== defaults$k.pattern) {
5390
+ if (context.pattern !== defaults$l.pattern) {
5391
5391
  return [
5392
5392
  `<${context.tagName}> is not a valid element name. This project is configured to only allow names matching the following regular expression:`,
5393
5393
  "",
@@ -5931,46 +5931,125 @@ class EmptyTitle extends Rule {
5931
5931
  }
5932
5932
  }
5933
5933
 
5934
- const CACHE_KEY = Symbol("form-elements");
5934
+ const defaults$k = {
5935
+ allowArrayBrackets: true,
5936
+ shared: ["radio"],
5937
+ };
5938
+ const UNIQUE_CACHE_KEY = Symbol("form-elements-unique");
5939
+ const SHARED_CACHE_KEY = Symbol("form-elements-shared");
5935
5940
  function haveName(name) {
5936
5941
  return typeof name === "string" && name !== "";
5937
5942
  }
5938
- function isRelevant$4(node) {
5939
- if (node.is("input")) {
5940
- /* ignore radiobuttons and checkboxes */
5941
- const type = node.getAttribute("type");
5942
- return !type || !type.valueMatches(["radio", "checkbox"], true);
5943
+ function allowSharedName(node, shared) {
5944
+ const type = node.getAttribute("type");
5945
+ return Boolean(type && type.valueMatches(shared, false));
5946
+ }
5947
+ function getDocumentation(context) {
5948
+ const trailer = "Each form control must have a unique name.";
5949
+ if (!context) {
5950
+ return trailer;
5951
+ }
5952
+ else {
5953
+ const { name } = context;
5954
+ switch (context.kind) {
5955
+ case "duplicate":
5956
+ return [`Duplicate form control name "${name}"`, trailer].join("\n");
5957
+ case "mix":
5958
+ return [
5959
+ `Form control name cannot mix regular name "{{ name }}" with array brackets "{{ name }}[]"`,
5960
+ trailer,
5961
+ ].join("\n");
5962
+ }
5943
5963
  }
5944
- return true;
5945
5964
  }
5946
5965
  class FormDupName extends Rule {
5947
- documentation() {
5966
+ constructor(options) {
5967
+ super({ ...defaults$k, ...options });
5968
+ }
5969
+ static schema() {
5970
+ return {
5971
+ allowArrayBrackets: {
5972
+ type: "boolean",
5973
+ },
5974
+ shared: {
5975
+ type: "array",
5976
+ items: {
5977
+ enum: ["radio", "checkbox", "submit"],
5978
+ },
5979
+ },
5980
+ };
5981
+ }
5982
+ documentation(context) {
5948
5983
  return {
5949
- description: "Each form control must have a unique name.",
5984
+ description: getDocumentation(context),
5950
5985
  url: "https://html-validate.org/rules/form-dup-name.html",
5951
5986
  };
5952
5987
  }
5953
5988
  setup() {
5954
5989
  const selector = this.getSelector();
5990
+ const { shared } = this.options;
5955
5991
  this.on("dom:ready", (event) => {
5956
- var _a;
5992
+ var _a, _b;
5957
5993
  const { document } = event;
5958
- const controls = document.querySelectorAll(selector).filter(isRelevant$4);
5959
- for (const control of controls) {
5994
+ const controls = document.querySelectorAll(selector);
5995
+ const [sharedControls, uniqueControls] = partition(controls, (it) => {
5996
+ return allowSharedName(it, shared);
5997
+ });
5998
+ /* validate all form controls which require unique elements first so each
5999
+ * form has a populated list of unique names */
6000
+ for (const control of uniqueControls) {
6001
+ const attr = control.getAttribute("name");
6002
+ const name = attr === null || attr === void 0 ? void 0 : attr.value;
6003
+ if (!attr || !haveName(name)) {
6004
+ continue;
6005
+ }
6006
+ const form = (_a = control.closest("form")) !== null && _a !== void 0 ? _a : document.root;
6007
+ this.validateUniqueName(control, form, attr, name);
6008
+ }
6009
+ /* validate all form controls which allows shared names to ensure there is
6010
+ * no collision with other form controls */
6011
+ for (const control of sharedControls) {
5960
6012
  const attr = control.getAttribute("name");
5961
6013
  const name = attr === null || attr === void 0 ? void 0 : attr.value;
5962
- if (attr && haveName(name)) {
5963
- const form = (_a = control.closest("form")) !== null && _a !== void 0 ? _a : document.root;
5964
- this.validateName(control, form, attr, name);
6014
+ if (!attr || !haveName(name)) {
6015
+ continue;
5965
6016
  }
6017
+ const form = (_b = control.closest("form")) !== null && _b !== void 0 ? _b : document.root;
6018
+ this.validateSharedName(control, form, attr, name);
5966
6019
  }
5967
6020
  });
5968
6021
  }
5969
- validateName(control, form, attr, name) {
5970
- const elements = this.getElements(form);
6022
+ validateUniqueName(control, form, attr, name) {
6023
+ const elements = this.getUniqueElements(form);
6024
+ const { allowArrayBrackets } = this.options;
6025
+ if (allowArrayBrackets) {
6026
+ const isarray = name.endsWith("[]");
6027
+ const basename = isarray ? name.slice(0, -2) : name;
6028
+ const details = elements.get(basename);
6029
+ if (details && details.array !== isarray) {
6030
+ const context = {
6031
+ name: basename,
6032
+ kind: "mix",
6033
+ };
6034
+ this.report({
6035
+ node: control,
6036
+ location: attr.valueLocation,
6037
+ message: 'Cannot mix "{{ name }}[]" and "{{ name }}"',
6038
+ context,
6039
+ });
6040
+ return;
6041
+ }
6042
+ else if (!details && isarray) {
6043
+ elements.set(basename, {
6044
+ array: true,
6045
+ });
6046
+ return;
6047
+ }
6048
+ }
5971
6049
  if (elements.has(name)) {
5972
6050
  const context = {
5973
6051
  name,
6052
+ kind: "duplicate",
5974
6053
  };
5975
6054
  this.report({
5976
6055
  node: control,
@@ -5980,9 +6059,32 @@ class FormDupName extends Rule {
5980
6059
  });
5981
6060
  }
5982
6061
  else {
5983
- elements.add(name);
6062
+ elements.set(name, {
6063
+ array: false,
6064
+ });
5984
6065
  }
5985
6066
  }
6067
+ validateSharedName(control, form, attr, name) {
6068
+ var _a;
6069
+ const uniqueElements = this.getUniqueElements(form);
6070
+ const sharedElements = this.getSharedElements(form);
6071
+ /* istanbul ignore next: type will always be set or shared name wouldn't be allowed */
6072
+ const type = (_a = control.getAttributeValue("type")) !== null && _a !== void 0 ? _a : "";
6073
+ if (uniqueElements.has(name) ||
6074
+ (sharedElements.has(name) && sharedElements.get(name) !== type)) {
6075
+ const context = {
6076
+ name,
6077
+ kind: "duplicate",
6078
+ };
6079
+ this.report({
6080
+ node: control,
6081
+ location: attr.valueLocation,
6082
+ message: 'Duplicate form control name "{{ name }}"',
6083
+ context,
6084
+ });
6085
+ }
6086
+ sharedElements.set(name, type);
6087
+ }
5986
6088
  getSelector() {
5987
6089
  const tags = this.getTagsWithProperty("formAssociated").filter((it) => {
5988
6090
  return this.isListedElement(it);
@@ -5998,14 +6100,25 @@ class FormDupName extends Rule {
5998
6100
  }
5999
6101
  return meta.formAssociated.listed;
6000
6102
  }
6001
- getElements(form) {
6002
- const existing = form.cacheGet(CACHE_KEY);
6103
+ getUniqueElements(form) {
6104
+ const existing = form.cacheGet(UNIQUE_CACHE_KEY);
6105
+ if (existing) {
6106
+ return existing;
6107
+ }
6108
+ else {
6109
+ const elements = new Map();
6110
+ form.cacheSet(UNIQUE_CACHE_KEY, elements);
6111
+ return elements;
6112
+ }
6113
+ }
6114
+ getSharedElements(form) {
6115
+ const existing = form.cacheGet(SHARED_CACHE_KEY);
6003
6116
  if (existing) {
6004
6117
  return existing;
6005
6118
  }
6006
6119
  else {
6007
- const elements = new Set();
6008
- form.cacheSet(CACHE_KEY, elements);
6120
+ const elements = new Map();
6121
+ form.cacheSet(SHARED_CACHE_KEY, elements);
6009
6122
  return elements;
6010
6123
  }
6011
6124
  }
@@ -11392,7 +11505,7 @@ class HtmlValidate {
11392
11505
  /** @public */
11393
11506
  const name = "html-validate";
11394
11507
  /** @public */
11395
- const version = "7.12.0";
11508
+ const version = "7.12.2";
11396
11509
  /** @public */
11397
11510
  const bugs = "https://gitlab.com/html-validate/html-validate/issues/new";
11398
11511