html-validate 11.4.0 → 11.5.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.
Files changed (50) hide show
  1. package/dist/cjs/browser.js +1 -1
  2. package/dist/cjs/cli.js +7 -0
  3. package/dist/cjs/cli.js.map +1 -1
  4. package/dist/cjs/core-nodejs.js +212 -2
  5. package/dist/cjs/core-nodejs.js.map +1 -1
  6. package/dist/cjs/core.js +85 -30
  7. package/dist/cjs/core.js.map +1 -1
  8. package/dist/cjs/elements.js +429 -58
  9. package/dist/cjs/elements.js.map +1 -1
  10. package/dist/cjs/html-validate.js +1 -1
  11. package/dist/cjs/index.js +3 -1
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/jest-worker.js +1 -1
  14. package/dist/cjs/jest.js +1 -1
  15. package/dist/cjs/presets.d.ts +1 -0
  16. package/dist/cjs/presets.js +22 -0
  17. package/dist/cjs/presets.js.map +1 -0
  18. package/dist/cjs/vitest-matchers.js +20 -4
  19. package/dist/cjs/vitest-matchers.js.map +1 -1
  20. package/dist/cjs/vitest-worker.js +1 -1
  21. package/dist/cjs/vitest.js +1 -1
  22. package/dist/esm/browser.js +2 -2
  23. package/dist/esm/cli.js +10 -3
  24. package/dist/esm/cli.js.map +1 -1
  25. package/dist/esm/core-browser.js +1 -1
  26. package/dist/esm/core-nodejs.js +212 -4
  27. package/dist/esm/core-nodejs.js.map +1 -1
  28. package/dist/esm/core.js +78 -30
  29. package/dist/esm/core.js.map +1 -1
  30. package/dist/esm/elements.js +429 -58
  31. package/dist/esm/elements.js.map +1 -1
  32. package/dist/esm/html-validate.js +3 -3
  33. package/dist/esm/index.js +3 -3
  34. package/dist/esm/jest-matchers.js +2 -2
  35. package/dist/esm/jest-utils.js +2 -2
  36. package/dist/esm/jest-worker.js +2 -2
  37. package/dist/esm/jest.js +1 -1
  38. package/dist/esm/presets.d.ts +1 -0
  39. package/dist/esm/presets.js +11 -0
  40. package/dist/esm/presets.js.map +1 -0
  41. package/dist/esm/vitest-matchers.js +23 -7
  42. package/dist/esm/vitest-matchers.js.map +1 -1
  43. package/dist/esm/vitest-utils.js +2 -2
  44. package/dist/esm/vitest-worker.js +2 -2
  45. package/dist/esm/vitest.js +1 -1
  46. package/dist/schema/elements.json +14 -1
  47. package/dist/types/browser.d.ts +88 -4
  48. package/dist/types/index.d.ts +154 -4
  49. package/dist/types/presets.d.ts +8 -0
  50. package/package.json +7 -2
package/dist/cjs/core.js CHANGED
@@ -4,16 +4,16 @@ var Ajv = require('ajv');
4
4
  var elements = require('./elements.js');
5
5
  var betterAjvErrors = require('@sidvind/better-ajv-errors');
6
6
  var utils_naturalJoin = require('./utils/natural-join.js');
7
+ var semver = require('semver');
7
8
  var kleur = require('kleur');
8
9
  var stylish$1 = require('@html-validate/stylish');
9
- var semver = require('semver');
10
10
 
11
11
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
12
 
13
13
  var Ajv__default = /*#__PURE__*/_interopDefault(Ajv);
14
14
  var betterAjvErrors__default = /*#__PURE__*/_interopDefault(betterAjvErrors);
15
- var kleur__default = /*#__PURE__*/_interopDefault(kleur);
16
15
  var semver__default = /*#__PURE__*/_interopDefault(semver);
16
+ var kleur__default = /*#__PURE__*/_interopDefault(kleur);
17
17
 
18
18
  const $schema$2 = "http://json-schema.org/draft-06/schema#";
19
19
  const $id$2 = "http://json-schema.org/draft-06/schema#";
@@ -898,6 +898,31 @@ const definitions = {
898
898
  },
899
899
  {
900
900
  regexp: true
901
+ },
902
+ {
903
+ type: "object",
904
+ title: "Named regular expression",
905
+ required: [
906
+ "name",
907
+ "pattern"
908
+ ],
909
+ additionalProperties: false,
910
+ properties: {
911
+ name: {
912
+ type: "string",
913
+ minLength: 1
914
+ },
915
+ pattern: {
916
+ anyOf: [
917
+ {
918
+ type: "string"
919
+ },
920
+ {
921
+ regexp: true
922
+ }
923
+ ]
924
+ }
925
+ }
901
926
  }
902
927
  ]
903
928
  }
@@ -1500,10 +1525,7 @@ function expandProperties(node, entry) {
1500
1525
  setMetaProperty(entry, "focusable", entry.focusable(node._adapter));
1501
1526
  }
1502
1527
  }
1503
- function expandRegexValue(value) {
1504
- if (value instanceof RegExp) {
1505
- return value;
1506
- }
1528
+ function compileRegexString(value) {
1507
1529
  const match = /^\/(.*(?=\/))\/(i?)$/.exec(value);
1508
1530
  if (match) {
1509
1531
  const [, expr, flags] = match;
@@ -1512,9 +1534,28 @@ function expandRegexValue(value) {
1512
1534
  } else {
1513
1535
  return new RegExp(`^${expr}$`, flags);
1514
1536
  }
1515
- } else {
1516
- return value;
1517
1537
  }
1538
+ return null;
1539
+ }
1540
+ function expandRegexValue(value) {
1541
+ if (value instanceof RegExp) {
1542
+ return { name: value.toString(), pattern: value };
1543
+ }
1544
+ if (typeof value === "object") {
1545
+ if (value.pattern instanceof RegExp) {
1546
+ return { name: value.name, pattern: value.pattern };
1547
+ }
1548
+ const compiled = compileRegexString(value.pattern);
1549
+ if (!compiled) {
1550
+ throw new Error(`Failed to create regular expression from "${value.pattern}"`);
1551
+ }
1552
+ return { name: value.name, pattern: compiled };
1553
+ }
1554
+ const regex = compileRegexString(value);
1555
+ if (regex) {
1556
+ return { name: regex.toString(), pattern: regex };
1557
+ }
1558
+ return value;
1518
1559
  }
1519
1560
  function expandRegex(entry) {
1520
1561
  for (const [name, values] of Object.entries(entry.attributes)) {
@@ -3332,10 +3373,14 @@ class Validator {
3332
3373
  }
3333
3374
  const caseInsensitiveValue = value.toLowerCase();
3334
3375
  return rule.enum.some((entry) => {
3335
- if (entry instanceof RegExp) {
3376
+ if (typeof entry === "string") {
3377
+ return caseInsensitiveValue === entry;
3378
+ } else if (entry instanceof RegExp) {
3336
3379
  return entry.test(value);
3380
+ } else if (entry.pattern instanceof RegExp) {
3381
+ return entry.pattern.test(value);
3337
3382
  } else {
3338
- return caseInsensitiveValue === entry;
3383
+ throw new TypeError("RegExp was not precompiled when it should have been");
3339
3384
  }
3340
3385
  });
3341
3386
  }
@@ -5406,8 +5451,10 @@ class AttributeAllowedValues extends Rule {
5406
5451
  const allowedList = allowed.enum.map((value2) => {
5407
5452
  if (typeof value2 === "string") {
5408
5453
  return `- \`"${value2}"\``;
5409
- } else {
5454
+ } else if (value2 instanceof RegExp) {
5410
5455
  return `- \`${value2.toString()}\``;
5456
+ } else {
5457
+ return `- ${value2.name}`;
5411
5458
  }
5412
5459
  });
5413
5460
  docs.description = [
@@ -11882,7 +11929,8 @@ class ResolvedConfig {
11882
11929
  /**
11883
11930
  * @internal
11884
11931
  */
11885
- constructor({ metaTable, plugins, rules, transformers }, original) {
11932
+ constructor(options, original) {
11933
+ const { metaTable, plugins, rules, transformers } = options;
11886
11934
  this.metaTable = metaTable;
11887
11935
  this.plugins = plugins;
11888
11936
  this.rules = rules;
@@ -12784,7 +12832,7 @@ class EventHandler {
12784
12832
  }
12785
12833
 
12786
12834
  const name = "html-validate";
12787
- const version = "11.4.0";
12835
+ const version = "11.5.1";
12788
12836
  const bugs = "https://gitlab.com/html-validate/html-validate/issues/new";
12789
12837
 
12790
12838
  function freeze(src) {
@@ -14384,6 +14432,22 @@ function transformFilenameSync(resolvers, config, filename, fs) {
14384
14432
  return transformSourceSync(resolvers, config, source, filename);
14385
14433
  }
14386
14434
 
14435
+ function compatibilityCheckImpl(name, declared, options) {
14436
+ const { silent, version: current, logger } = options;
14437
+ const valid = semver__default.default.satisfies(current, declared);
14438
+ if (valid || silent) {
14439
+ return valid;
14440
+ }
14441
+ const text = [
14442
+ "-----------------------------------------------------------------------------------------------------",
14443
+ `${name} requires html-validate version "${declared}" but current installed version is ${current}`,
14444
+ "This is not a supported configuration. Please install a supported version before reporting bugs.",
14445
+ "-----------------------------------------------------------------------------------------------------"
14446
+ ].join("\n");
14447
+ logger(text);
14448
+ return false;
14449
+ }
14450
+
14387
14451
  const entities = {
14388
14452
  ">": ">",
14389
14453
  "<": "&lt;",
@@ -14675,22 +14739,6 @@ function getFormatter(name) {
14675
14739
  return availableFormatters[name] ?? null;
14676
14740
  }
14677
14741
 
14678
- function compatibilityCheckImpl(name, declared, options) {
14679
- const { silent, version: current, logger } = options;
14680
- const valid = semver__default.default.satisfies(current, declared);
14681
- if (valid || silent) {
14682
- return valid;
14683
- }
14684
- const text = [
14685
- "-----------------------------------------------------------------------------------------------------",
14686
- `${name} requires html-validate version "${declared}" but current installed version is ${current}`,
14687
- "This is not a supported configuration. Please install a supported version before reporting bugs.",
14688
- "-----------------------------------------------------------------------------------------------------"
14689
- ].join("\n");
14690
- logger(text);
14691
- return false;
14692
- }
14693
-
14694
14742
  var ignore$1 = {exports: {}};
14695
14743
 
14696
14744
  var hasRequiredIgnore;
@@ -15491,7 +15539,7 @@ var ignoreExports = /*@__PURE__*/ requireIgnore();
15491
15539
  var ignore = /*@__PURE__*/getDefaultExportFromCjs(ignoreExports);
15492
15540
 
15493
15541
  const engines = {
15494
- node: "^22.17.0 || >= 24.0.0"
15542
+ node: "^22.22.0 || >= 24.8.0"
15495
15543
  };
15496
15544
 
15497
15545
  var jestWorkerPath = "./jest-worker.js";
@@ -15531,6 +15579,12 @@ exports.bugs = bugs;
15531
15579
  exports.classifyNodeText = classifyNodeText;
15532
15580
  exports.codeFrameColumns = codeFrameColumns;
15533
15581
  exports.compatibilityCheckImpl = compatibilityCheckImpl;
15582
+ exports.config = config$5;
15583
+ exports.config$1 = config$4;
15584
+ exports.config$2 = config$3;
15585
+ exports.config$3 = config$2;
15586
+ exports.config$4 = config$1;
15587
+ exports.config$5 = config;
15534
15588
  exports.configurationSchema = configurationSchema;
15535
15589
  exports.deepmerge = deepmerge;
15536
15590
  exports.defineConfig = defineConfig;
@@ -15547,6 +15601,7 @@ exports.jestWorkerPath = jestWorkerPath;
15547
15601
  exports.keywordPatternMatcher = keywordPatternMatcher;
15548
15602
  exports.name = name;
15549
15603
  exports.normalizeSource = normalizeSource;
15604
+ exports.parseSeverity = parseSeverity;
15550
15605
  exports.presets = presets;
15551
15606
  exports.ruleExists = ruleExists;
15552
15607
  exports.sliceLocation = sliceLocation;