@markuplint/html-spec 3.0.0-dev.25 → 3.0.0-dev.290

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 (183) hide show
  1. package/index.d.ts +1 -1
  2. package/index.json +14776 -2258
  3. package/package.json +8 -13
  4. package/{src/structure.test.ts → test/structure.spec.mjs} +23 -13
  5. package/src/spec-common.attributes.json +0 -1650
  6. package/src/spec-common.contents.json +0 -392
  7. package/src/spec.a.json +0 -58
  8. package/src/spec.abbr.json +0 -25
  9. package/src/spec.address.json +0 -25
  10. package/src/spec.area.json +0 -64
  11. package/src/spec.article.json +0 -24
  12. package/src/spec.aside.json +0 -38
  13. package/src/spec.audio.json +0 -48
  14. package/src/spec.b.json +0 -24
  15. package/src/spec.base.json +0 -21
  16. package/src/spec.bdi.json +0 -24
  17. package/src/spec.bdo.json +0 -24
  18. package/src/spec.blockquote.json +0 -31
  19. package/src/spec.body.json +0 -100
  20. package/src/spec.br.json +0 -32
  21. package/src/spec.button.json +0 -70
  22. package/src/spec.canvas.json +0 -33
  23. package/src/spec.caption.json +0 -30
  24. package/src/spec.cite.json +0 -24
  25. package/src/spec.code.json +0 -27
  26. package/src/spec.col.json +0 -31
  27. package/src/spec.colgroup.json +0 -41
  28. package/src/spec.data.json +0 -29
  29. package/src/spec.datalist.json +0 -38
  30. package/src/spec.dd.json +0 -30
  31. package/src/spec.del.json +0 -36
  32. package/src/spec.details.json +0 -35
  33. package/src/spec.dfn.json +0 -23
  34. package/src/spec.dialog.json +0 -36
  35. package/src/spec.div.json +0 -55
  36. package/src/spec.dl.json +0 -56
  37. package/src/spec.dt.json +0 -26
  38. package/src/spec.em.json +0 -27
  39. package/src/spec.embed.json +0 -30
  40. package/src/spec.fieldset.json +0 -27
  41. package/src/spec.figcaption.json +0 -24
  42. package/src/spec.figure.json +0 -52
  43. package/src/spec.footer.json +0 -37
  44. package/src/spec.form.json +0 -100
  45. package/src/spec.h1.json +0 -26
  46. package/src/spec.h2.json +0 -26
  47. package/src/spec.h3.json +0 -26
  48. package/src/spec.h4.json +0 -26
  49. package/src/spec.h5.json +0 -26
  50. package/src/spec.h6.json +0 -26
  51. package/src/spec.head.json +0 -30
  52. package/src/spec.header.json +0 -37
  53. package/src/spec.hgroup.json +0 -45
  54. package/src/spec.hr.json +0 -23
  55. package/src/spec.html.json +0 -27
  56. package/src/spec.i.json +0 -24
  57. package/src/spec.iframe.json +0 -70
  58. package/src/spec.img.json +0 -109
  59. package/src/spec.input.json +0 -792
  60. package/src/spec.ins.json +0 -36
  61. package/src/spec.kbd.json +0 -24
  62. package/src/spec.label.json +0 -29
  63. package/src/spec.legend.json +0 -24
  64. package/src/spec.li.json +0 -40
  65. package/src/spec.link.json +0 -140
  66. package/src/spec.main.json +0 -27
  67. package/src/spec.map.json +0 -30
  68. package/src/spec.mark.json +0 -24
  69. package/src/spec.math.json +0 -20
  70. package/src/spec.menu.json +0 -53
  71. package/src/spec.meta.json +0 -59
  72. package/src/spec.meter.json +0 -62
  73. package/src/spec.nav.json +0 -26
  74. package/src/spec.noscript.json +0 -24
  75. package/src/spec.object.json +0 -40
  76. package/src/spec.ol.json +0 -71
  77. package/src/spec.optgroup.json +0 -34
  78. package/src/spec.option.json +0 -70
  79. package/src/spec.output.json +0 -29
  80. package/src/spec.p.json +0 -27
  81. package/src/spec.picture.json +0 -46
  82. package/src/spec.portal.json +0 -25
  83. package/src/spec.pre.json +0 -24
  84. package/src/spec.progress.json +0 -44
  85. package/src/spec.q.json +0 -29
  86. package/src/spec.rp.json +0 -23
  87. package/src/spec.rt.json +0 -24
  88. package/src/spec.ruby.json +0 -55
  89. package/src/spec.s.json +0 -24
  90. package/src/spec.samp.json +0 -24
  91. package/src/spec.script.json +0 -73
  92. package/src/spec.section.json +0 -73
  93. package/src/spec.select.json +0 -66
  94. package/src/spec.slot.json +0 -29
  95. package/src/spec.small.json +0 -24
  96. package/src/spec.source.json +0 -52
  97. package/src/spec.span.json +0 -24
  98. package/src/spec.strong.json +0 -27
  99. package/src/spec.style.json +0 -35
  100. package/src/spec.sub.json +0 -27
  101. package/src/spec.summary.json +0 -38
  102. package/src/spec.sup.json +0 -27
  103. package/src/spec.svg_a.json +0 -118
  104. package/src/spec.svg_animate.json +0 -109
  105. package/src/spec.svg_animateMotion.json +0 -73
  106. package/src/spec.svg_animateTransform.json +0 -47
  107. package/src/spec.svg_circle.json +0 -113
  108. package/src/spec.svg_clipPath.json +0 -108
  109. package/src/spec.svg_defs.json +0 -109
  110. package/src/spec.svg_desc.json +0 -21
  111. package/src/spec.svg_discard.json +0 -31
  112. package/src/spec.svg_ellipse.json +0 -116
  113. package/src/spec.svg_feBlend.json +0 -115
  114. package/src/spec.svg_feColorMatrix.json +0 -104
  115. package/src/spec.svg_feComponentTransfer.json +0 -97
  116. package/src/spec.svg_feComposite.json +0 -146
  117. package/src/spec.svg_feConvolveMatrix.json +0 -147
  118. package/src/spec.svg_feDiffuseLighting.json +0 -126
  119. package/src/spec.svg_feDisplacementMap.json +0 -133
  120. package/src/spec.svg_feDistantLight.json +0 -32
  121. package/src/spec.svg_feDropShadow.json +0 -109
  122. package/src/spec.svg_feFlood.json +0 -101
  123. package/src/spec.svg_feFuncA.json +0 -20
  124. package/src/spec.svg_feFuncB.json +0 -20
  125. package/src/spec.svg_feFuncG.json +0 -20
  126. package/src/spec.svg_feFuncR.json +0 -20
  127. package/src/spec.svg_feGaussianBlur.json +0 -105
  128. package/src/spec.svg_feImage.json +0 -123
  129. package/src/spec.svg_feMerge.json +0 -90
  130. package/src/spec.svg_feMergeNode.json +0 -20
  131. package/src/spec.svg_feMorphology.json +0 -106
  132. package/src/spec.svg_feOffset.json +0 -103
  133. package/src/spec.svg_fePointLight.json +0 -38
  134. package/src/spec.svg_feSpecularLighting.json +0 -131
  135. package/src/spec.svg_feSpotLight.json +0 -67
  136. package/src/spec.svg_feTile.json +0 -90
  137. package/src/spec.svg_feTurbulence.json +0 -127
  138. package/src/spec.svg_filter.json +0 -138
  139. package/src/spec.svg_foreignObject.json +0 -97
  140. package/src/spec.svg_g.json +0 -115
  141. package/src/spec.svg_image.json +0 -128
  142. package/src/spec.svg_line.json +0 -136
  143. package/src/spec.svg_linearGradient.json +0 -152
  144. package/src/spec.svg_marker.json +0 -180
  145. package/src/spec.svg_mask.json +0 -142
  146. package/src/spec.svg_metadata.json +0 -21
  147. package/src/spec.svg_mpath.json +0 -26
  148. package/src/spec.svg_path.json +0 -114
  149. package/src/spec.svg_pattern.json +0 -157
  150. package/src/spec.svg_polygon.json +0 -117
  151. package/src/spec.svg_polyline.json +0 -117
  152. package/src/spec.svg_radialGradient.json +0 -162
  153. package/src/spec.svg_rect.json +0 -118
  154. package/src/spec.svg_script.json +0 -40
  155. package/src/spec.svg_set.json +0 -42
  156. package/src/spec.svg_stop.json +0 -110
  157. package/src/spec.svg_style.json +0 -36
  158. package/src/spec.svg_svg.json +0 -170
  159. package/src/spec.svg_switch.json +0 -105
  160. package/src/spec.svg_symbol.json +0 -77
  161. package/src/spec.svg_text.json +0 -153
  162. package/src/spec.svg_textPath.json +0 -169
  163. package/src/spec.svg_title.json +0 -21
  164. package/src/spec.svg_tspan.json +0 -147
  165. package/src/spec.svg_use.json +0 -115
  166. package/src/spec.svg_view.json +0 -45
  167. package/src/spec.table.json +0 -64
  168. package/src/spec.tbody.json +0 -23
  169. package/src/spec.td.json +0 -37
  170. package/src/spec.template.json +0 -20
  171. package/src/spec.textarea.json +0 -67
  172. package/src/spec.tfoot.json +0 -23
  173. package/src/spec.th.json +0 -66
  174. package/src/spec.thead.json +0 -23
  175. package/src/spec.time.json +0 -32
  176. package/src/spec.title.json +0 -24
  177. package/src/spec.tr.json +0 -29
  178. package/src/spec.track.json +0 -54
  179. package/src/spec.u.json +0 -24
  180. package/src/spec.ul.json +0 -53
  181. package/src/spec.var.json +0 -24
  182. package/src/spec.video.json +0 -78
  183. package/src/spec.wbr.json +0 -25
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@markuplint/html-spec",
3
- "version": "3.0.0-dev.25+a27e39aa",
3
+ "version": "3.0.0-dev.290+af676442",
4
4
  "description": "A specification of HTML Living Standard for markuplint",
5
5
  "repository": "git@github.com:markuplint/markuplint.git",
6
6
  "author": "Yusuke Hirao <yusukehirao@me.com>",
@@ -12,21 +12,16 @@
12
12
  "access": "public"
13
13
  },
14
14
  "scripts": {
15
- "gen": "ts-node gen/index.ts; prettier --write index.json"
15
+ "gen": "npm-run-all gen:*",
16
+ "gen:build": "node build.mjs",
17
+ "gen:prettier": "prettier --write index.json"
16
18
  },
17
19
  "devDependencies": {
18
- "@types/cheerio": "^0.22.31",
19
- "@types/cli-progress": "^3.11.0",
20
- "@types/node-fetch": "2",
21
- "ajv": "^8.11.2",
22
- "cheerio": "^1.0.0-rc.12",
23
- "cli-progress": "^3.11.2",
24
- "fast-xml-parser": "^4.0.12",
25
- "node-fetch": "2",
26
- "strip-json-comments": "3"
20
+ "@markuplint/spec-generator": "4.0.0-alpha.2",
21
+ "@markuplint/test-tools": "4.0.0-alpha.2"
27
22
  },
28
23
  "dependencies": {
29
- "@markuplint/ml-spec": "3.0.0-dev.25+a27e39aa"
24
+ "@markuplint/ml-spec": "3.0.0-dev.290+af676442"
30
25
  },
31
- "gitHead": "a27e39aa4362bce572d1893df2f1571705b62df1"
26
+ "gitHead": "af6764422feecb56d1d84659028f53daf685bb78"
32
27
  }
@@ -1,13 +1,16 @@
1
- import { readFile } from 'fs/promises';
2
- import path from 'path';
1
+ import { readFile } from 'node:fs/promises';
2
+ import { createRequire } from 'node:module';
3
+ import path from 'node:path';
3
4
 
4
- import { resolveNamespace } from '@markuplint/ml-spec';
5
- import { getAttrSpecs } from '@markuplint/ml-spec/lib/specs/get-attr-specs';
6
- import Ajv, { type ValidateFunction } from 'ajv';
7
- import { sync as glob } from 'glob';
5
+ import { resolveNamespace, getAttrSpecsByNames } from '@markuplint/ml-spec';
6
+ import { glob } from '@markuplint/test-tools';
7
+ import Ajv from 'ajv';
8
8
  import strip from 'strip-json-comments';
9
+ import { describe, test, expect } from 'vitest';
9
10
 
10
- import htmlSpec, { specs } from '../index';
11
+ import htmlSpec from '../index.js';
12
+
13
+ const require = createRequire(import.meta.url);
11
14
 
12
15
  const schemas = {
13
16
  element: {
@@ -37,14 +40,19 @@ const schemas = {
37
40
  };
38
41
 
39
42
  test('structure', () => {
40
- specs.forEach(el => {
43
+ // eslint-disable-next-line import/no-named-as-default-member
44
+ htmlSpec.specs.forEach(el => {
41
45
  const { localName, namespaceURI } = resolveNamespace(el.name);
42
- getAttrSpecs(localName, namespaceURI, htmlSpec);
46
+ try {
47
+ getAttrSpecsByNames(localName, namespaceURI, htmlSpec);
48
+ } catch (e) {
49
+ throw el;
50
+ }
43
51
  });
44
52
  });
45
53
 
46
54
  describe('schema', () => {
47
- const map: [name: string, validator: ValidateFunction, targetFiles: string][] = [
55
+ const map = [
48
56
  [
49
57
  'spec.*.json',
50
58
  new Ajv({
@@ -56,21 +64,23 @@ describe('schema', () => {
56
64
  schemas.attributes,
57
65
  schemas.types,
58
66
  ],
59
- }).getSchema(schemas.element.$id)!,
67
+ }).getSchema(schemas.element.$id),
68
+ // eslint-disable-next-line no-restricted-globals
60
69
  path.resolve(__dirname, 'spec.*.json'),
61
70
  ],
62
71
  [
63
72
  'spec-common.attributes.json',
64
73
  new Ajv({
65
74
  schemas: [schemas.globalAttributes, schemas.attributes, schemas.types],
66
- }).getSchema(schemas.globalAttributes.$id)!,
75
+ }).getSchema(schemas.globalAttributes.$id),
76
+ // eslint-disable-next-line no-restricted-globals
67
77
  path.resolve(__dirname, 'spec-common.attributes.json'),
68
78
  ],
69
79
  ];
70
80
 
71
81
  for (const [testName, validator, targetFiles] of map) {
72
82
  test(testName, async () => {
73
- const files = glob(targetFiles);
83
+ const files = await glob(targetFiles);
74
84
  for (const jsonPath of files) {
75
85
  const json = JSON.parse(strip(await readFile(jsonPath, { encoding: 'utf-8' })));
76
86
  const isValid = validator(json);