html-validate 10.12.1 → 10.13.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.
Files changed (44) hide show
  1. package/dist/cjs/browser.js +1 -0
  2. package/dist/cjs/browser.js.map +1 -1
  3. package/dist/cjs/core.js +13 -6
  4. package/dist/cjs/core.js.map +1 -1
  5. package/dist/cjs/elements.js +11 -2
  6. package/dist/cjs/elements.js.map +1 -1
  7. package/dist/cjs/html-validate.js +1 -0
  8. package/dist/cjs/html-validate.js.map +1 -1
  9. package/dist/cjs/html5.js +1 -0
  10. package/dist/cjs/html5.js.map +1 -1
  11. package/dist/cjs/index.js +1 -0
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/jest-worker.js +1 -0
  14. package/dist/cjs/jest-worker.js.map +1 -1
  15. package/dist/cjs/jest.js +1 -0
  16. package/dist/cjs/jest.js.map +1 -1
  17. package/dist/cjs/utils/parse-image-candidate-string.js +38 -0
  18. package/dist/cjs/utils/parse-image-candidate-string.js.map +1 -0
  19. package/dist/cjs/vitest.js +1 -0
  20. package/dist/cjs/vitest.js.map +1 -1
  21. package/dist/esm/browser.js +1 -0
  22. package/dist/esm/browser.js.map +1 -1
  23. package/dist/esm/core.js +13 -6
  24. package/dist/esm/core.js.map +1 -1
  25. package/dist/esm/elements.js +11 -2
  26. package/dist/esm/elements.js.map +1 -1
  27. package/dist/esm/html-validate.js +1 -0
  28. package/dist/esm/html-validate.js.map +1 -1
  29. package/dist/esm/html5.js +1 -0
  30. package/dist/esm/html5.js.map +1 -1
  31. package/dist/esm/index.js +1 -0
  32. package/dist/esm/index.js.map +1 -1
  33. package/dist/esm/jest-worker.js +1 -0
  34. package/dist/esm/jest-worker.js.map +1 -1
  35. package/dist/esm/jest.js +1 -0
  36. package/dist/esm/jest.js.map +1 -1
  37. package/dist/esm/utils/parse-image-candidate-string.js +36 -0
  38. package/dist/esm/utils/parse-image-candidate-string.js.map +1 -0
  39. package/dist/esm/vitest.js +1 -0
  40. package/dist/esm/vitest.js.map +1 -1
  41. package/dist/schema/elements.json +6 -0
  42. package/dist/types/browser.d.ts +9 -0
  43. package/dist/types/index.d.ts +9 -0
  44. package/package.json +2 -2
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var metaHelper = require('./meta-helper.js');
4
+ var utils_parseImageCandidateString = require('./utils/parse-image-candidate-string.js');
4
5
 
5
6
  const {
6
7
  allowedIfAttributeIsPresent,
@@ -36,6 +37,9 @@ function isInsideLandmark(node) {
36
37
  ];
37
38
  return Boolean(node.closest(selectors.join(",")));
38
39
  }
40
+ function hasWidthDescriptor(srcset) {
41
+ return utils_parseImageCandidateString.parseImageCandidateString(srcset).some((it) => it.descriptor === "width");
42
+ }
39
43
  function linkBodyOk(node) {
40
44
  if (node.hasAttribute("itemprop")) {
41
45
  return true;
@@ -535,6 +539,7 @@ var html5 = {
535
539
  permittedContent: ["@flow"]
536
540
  },
537
541
  body: {
542
+ optionalEnd: true,
538
543
  permittedContent: ["@flow"],
539
544
  permittedParent: ["html"],
540
545
  attributes: {
@@ -1105,6 +1110,8 @@ var html5 = {
1105
1110
  }
1106
1111
  },
1107
1112
  head: {
1113
+ implicitClosed: ["body"],
1114
+ optionalEnd: true,
1108
1115
  permittedContent: ["base?", "title?", "@meta"],
1109
1116
  permittedParent: ["html"],
1110
1117
  requiredContent: ["title"],
@@ -1173,6 +1180,7 @@ var html5 = {
1173
1180
  }
1174
1181
  },
1175
1182
  html: {
1183
+ optionalEnd: true,
1176
1184
  permittedContent: ["head?", "body?"],
1177
1185
  permittedOrder: ["head", "body"],
1178
1186
  requiredContent: ["head", "body"],
@@ -1702,8 +1710,9 @@ var html5 = {
1702
1710
  return null;
1703
1711
  },
1704
1712
  required(node) {
1705
- if (node.hasAttribute("imagesrcset")) {
1706
- return `{{ tagName }} requires "{{ attr }}" attribute when "imagesrcset" attribute is set`;
1713
+ const imagesrcset = node.getAttribute("imagesrcset");
1714
+ if (typeof imagesrcset === "string" && hasWidthDescriptor(imagesrcset)) {
1715
+ return `{{ tagName }} requires "{{ attr }}" attribute when "imagesrcset" uses width descriptors`;
1707
1716
  }
1708
1717
  return false;
1709
1718
  }