@redocly/recheck 0.1.0 → 0.2.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 (591) hide show
  1. package/README.md +1006 -56
  2. package/dist/cli.js +27 -7
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/markdoc-schema.d.ts +17 -0
  5. package/dist/commands/markdoc-schema.d.ts.map +1 -0
  6. package/dist/commands/markdoc-schema.js +127 -0
  7. package/dist/commands/markdoc-schema.js.map +1 -0
  8. package/dist/commands/run.d.ts +0 -1
  9. package/dist/commands/run.d.ts.map +1 -1
  10. package/dist/commands/run.js +68 -5
  11. package/dist/commands/run.js.map +1 -1
  12. package/dist/config/load.d.ts +11 -0
  13. package/dist/config/load.d.ts.map +1 -1
  14. package/dist/config/load.js +12 -2
  15. package/dist/config/load.js.map +1 -1
  16. package/dist/config/presets/google.d.ts +3 -0
  17. package/dist/config/presets/google.d.ts.map +1 -0
  18. package/dist/config/presets/google.js +1671 -0
  19. package/dist/config/presets/google.js.map +1 -0
  20. package/dist/config/presets/inclusive-language.d.ts +3 -0
  21. package/dist/config/presets/inclusive-language.d.ts.map +1 -0
  22. package/dist/config/presets/inclusive-language.js +321 -0
  23. package/dist/config/presets/inclusive-language.js.map +1 -0
  24. package/dist/config/presets/index.d.ts +67 -0
  25. package/dist/config/presets/index.d.ts.map +1 -0
  26. package/dist/config/presets/index.js +137 -0
  27. package/dist/config/presets/index.js.map +1 -0
  28. package/dist/config/presets/markdoc.d.ts +21 -0
  29. package/dist/config/presets/markdoc.d.ts.map +1 -0
  30. package/dist/config/presets/markdoc.js +101 -0
  31. package/dist/config/presets/markdoc.js.map +1 -0
  32. package/dist/config/presets/markdown-relaxed.d.ts +3 -0
  33. package/dist/config/presets/markdown-relaxed.d.ts.map +1 -0
  34. package/dist/config/presets/markdown-relaxed.js +98 -0
  35. package/dist/config/presets/markdown-relaxed.js.map +1 -0
  36. package/dist/config/presets/markdown.d.ts +43 -0
  37. package/dist/config/presets/markdown.d.ts.map +1 -0
  38. package/dist/config/presets/markdown.js +132 -0
  39. package/dist/config/presets/markdown.js.map +1 -0
  40. package/dist/config/presets/microsoft.d.ts +3 -0
  41. package/dist/config/presets/microsoft.d.ts.map +1 -0
  42. package/dist/config/presets/microsoft.js +2268 -0
  43. package/dist/config/presets/microsoft.js.map +1 -0
  44. package/dist/config/presets/minimal.d.ts +3 -0
  45. package/dist/config/presets/minimal.d.ts.map +1 -0
  46. package/dist/config/presets/minimal.js +21 -0
  47. package/dist/config/presets/minimal.js.map +1 -0
  48. package/dist/config/presets/plain-language.d.ts +3 -0
  49. package/dist/config/presets/plain-language.d.ts.map +1 -0
  50. package/dist/config/presets/plain-language.js +351 -0
  51. package/dist/config/presets/plain-language.js.map +1 -0
  52. package/dist/config/presets/prose.d.ts +52 -0
  53. package/dist/config/presets/prose.d.ts.map +1 -0
  54. package/dist/config/presets/prose.js +138 -0
  55. package/dist/config/presets/prose.js.map +1 -0
  56. package/dist/config/schema.d.ts +128 -22
  57. package/dist/config/schema.d.ts.map +1 -1
  58. package/dist/config/schema.js +105 -21
  59. package/dist/config/schema.js.map +1 -1
  60. package/dist/config/validate.d.ts +12 -2
  61. package/dist/config/validate.d.ts.map +1 -1
  62. package/dist/config/validate.js +1200 -44
  63. package/dist/config/validate.js.map +1 -1
  64. package/dist/core/auto-fix.d.ts +8 -13
  65. package/dist/core/auto-fix.d.ts.map +1 -1
  66. package/dist/core/auto-fix.js +94 -75
  67. package/dist/core/auto-fix.js.map +1 -1
  68. package/dist/core/case-preserve.d.ts +46 -0
  69. package/dist/core/case-preserve.d.ts.map +1 -0
  70. package/dist/core/case-preserve.js +57 -0
  71. package/dist/core/case-preserve.js.map +1 -0
  72. package/dist/core/directives.d.ts +9 -0
  73. package/dist/core/directives.d.ts.map +1 -0
  74. package/dist/core/directives.js +73 -0
  75. package/dist/core/directives.js.map +1 -0
  76. package/dist/core/files.d.ts +63 -0
  77. package/dist/core/files.d.ts.map +1 -1
  78. package/dist/core/files.js +185 -0
  79. package/dist/core/files.js.map +1 -1
  80. package/dist/core/inline-code.d.ts +87 -0
  81. package/dist/core/inline-code.d.ts.map +1 -0
  82. package/dist/core/inline-code.js +104 -0
  83. package/dist/core/inline-code.js.map +1 -0
  84. package/dist/core/line-endings.d.ts +32 -0
  85. package/dist/core/line-endings.d.ts.map +1 -0
  86. package/dist/core/line-endings.js +65 -0
  87. package/dist/core/line-endings.js.map +1 -0
  88. package/dist/core/markdoc-tags.d.ts +79 -0
  89. package/dist/core/markdoc-tags.d.ts.map +1 -0
  90. package/dist/core/markdoc-tags.js +131 -0
  91. package/dist/core/markdoc-tags.js.map +1 -0
  92. package/dist/core/runner.d.ts +92 -3
  93. package/dist/core/runner.d.ts.map +1 -1
  94. package/dist/core/runner.js +348 -110
  95. package/dist/core/runner.js.map +1 -1
  96. package/dist/core/timing.d.ts.map +1 -1
  97. package/dist/data/markdoc-realm-schema.d.ts +3 -0
  98. package/dist/data/markdoc-realm-schema.d.ts.map +1 -0
  99. package/dist/data/markdoc-realm-schema.js +760 -0
  100. package/dist/data/markdoc-realm-schema.js.map +1 -0
  101. package/dist/data/proper-nouns.d.ts +2 -0
  102. package/dist/data/proper-nouns.d.ts.map +1 -0
  103. package/dist/data/proper-nouns.js +208 -0
  104. package/dist/data/proper-nouns.js.map +1 -0
  105. package/dist/index.d.ts +90 -0
  106. package/dist/index.d.ts.map +1 -0
  107. package/dist/index.js +152 -0
  108. package/dist/index.js.map +1 -0
  109. package/dist/metrics/formulas.d.ts +17 -0
  110. package/dist/metrics/formulas.d.ts.map +1 -0
  111. package/dist/metrics/formulas.js +70 -0
  112. package/dist/metrics/formulas.js.map +1 -0
  113. package/dist/metrics/index.d.ts +5 -0
  114. package/dist/metrics/index.d.ts.map +1 -0
  115. package/dist/metrics/index.js +3 -0
  116. package/dist/metrics/index.js.map +1 -0
  117. package/dist/metrics/statistics.d.ts +27 -0
  118. package/dist/metrics/statistics.d.ts.map +1 -0
  119. package/dist/metrics/statistics.js +56 -0
  120. package/dist/metrics/statistics.js.map +1 -0
  121. package/dist/parser/index.d.ts +18 -0
  122. package/dist/parser/index.d.ts.map +1 -0
  123. package/dist/parser/index.js +168 -0
  124. package/dist/parser/index.js.map +1 -0
  125. package/dist/parser/markdoc/extract-statics.d.ts +45 -0
  126. package/dist/parser/markdoc/extract-statics.d.ts.map +1 -0
  127. package/dist/parser/markdoc/extract-statics.js +139 -0
  128. package/dist/parser/markdoc/extract-statics.js.map +1 -0
  129. package/dist/parser/markdoc/pairing.d.ts +63 -0
  130. package/dist/parser/markdoc/pairing.d.ts.map +1 -0
  131. package/dist/parser/markdoc/pairing.js +94 -0
  132. package/dist/parser/markdoc/pairing.js.map +1 -0
  133. package/dist/parser/markdoc/schema.d.ts +85 -0
  134. package/dist/parser/markdoc/schema.d.ts.map +1 -0
  135. package/dist/parser/markdoc/schema.js +86 -0
  136. package/dist/parser/markdoc/schema.js.map +1 -0
  137. package/dist/parser/markdoc/span.d.ts +64 -0
  138. package/dist/parser/markdoc/span.d.ts.map +1 -0
  139. package/dist/parser/markdoc/span.js +729 -0
  140. package/dist/parser/markdoc/span.js.map +1 -0
  141. package/dist/parser/markdoc/structure.d.ts +28 -0
  142. package/dist/parser/markdoc/structure.d.ts.map +1 -0
  143. package/dist/parser/markdoc/structure.js +153 -0
  144. package/dist/parser/markdoc/structure.js.map +1 -0
  145. package/dist/parser/markdoc/syntax.d.ts +44 -0
  146. package/dist/parser/markdoc/syntax.d.ts.map +1 -0
  147. package/dist/parser/markdoc/syntax.js +317 -0
  148. package/dist/parser/markdoc/syntax.js.map +1 -0
  149. package/dist/parser/types.d.ts +18 -0
  150. package/dist/parser/types.d.ts.map +1 -0
  151. package/dist/parser/types.js.map +1 -0
  152. package/dist/reporter/fixes.d.ts.map +1 -1
  153. package/dist/reporter/fixes.js +22 -1
  154. package/dist/reporter/fixes.js.map +1 -1
  155. package/dist/reporter/statistics.d.ts +1 -8
  156. package/dist/reporter/statistics.d.ts.map +1 -1
  157. package/dist/reporter/statistics.js.map +1 -1
  158. package/dist/rules/registry.d.ts +15 -0
  159. package/dist/rules/registry.d.ts.map +1 -0
  160. package/dist/rules/registry.js +81 -0
  161. package/dist/rules/registry.js.map +1 -0
  162. package/dist/rules/scope/capitalization.d.ts +3 -0
  163. package/dist/rules/scope/capitalization.d.ts.map +1 -0
  164. package/dist/rules/scope/capitalization.js +161 -0
  165. package/dist/rules/scope/capitalization.js.map +1 -0
  166. package/dist/rules/scope/conditional.d.ts +3 -0
  167. package/dist/rules/scope/conditional.d.ts.map +1 -0
  168. package/dist/rules/scope/conditional.js +112 -0
  169. package/dist/rules/scope/conditional.js.map +1 -0
  170. package/dist/rules/scope/consistency.d.ts +3 -0
  171. package/dist/rules/scope/consistency.d.ts.map +1 -0
  172. package/dist/rules/scope/consistency.js +178 -0
  173. package/dist/rules/scope/consistency.js.map +1 -0
  174. package/dist/rules/scope/length.d.ts +3 -0
  175. package/dist/rules/scope/length.d.ts.map +1 -0
  176. package/dist/rules/scope/length.js +69 -0
  177. package/dist/rules/scope/length.js.map +1 -0
  178. package/dist/rules/scope/max-image-size.d.ts +3 -0
  179. package/dist/rules/scope/max-image-size.d.ts.map +1 -0
  180. package/dist/rules/scope/max-image-size.js +65 -0
  181. package/dist/rules/scope/max-image-size.js.map +1 -0
  182. package/dist/rules/scope/metric.d.ts +17 -0
  183. package/dist/rules/scope/metric.d.ts.map +1 -0
  184. package/dist/rules/scope/metric.js +216 -0
  185. package/dist/rules/scope/metric.js.map +1 -0
  186. package/dist/rules/scope/occurrence.d.ts +3 -0
  187. package/dist/rules/scope/occurrence.d.ts.map +1 -0
  188. package/dist/rules/scope/occurrence.js +48 -0
  189. package/dist/rules/scope/occurrence.js.map +1 -0
  190. package/dist/rules/scope/pattern.d.ts +3 -0
  191. package/dist/rules/scope/pattern.d.ts.map +1 -0
  192. package/dist/rules/scope/pattern.js +75 -0
  193. package/dist/rules/scope/pattern.js.map +1 -0
  194. package/dist/rules/scope/repetition.d.ts +3 -0
  195. package/dist/rules/scope/repetition.d.ts.map +1 -0
  196. package/dist/rules/scope/repetition.js +139 -0
  197. package/dist/rules/scope/repetition.js.map +1 -0
  198. package/dist/rules/scope/semantic-line-breaks.d.ts +3 -0
  199. package/dist/rules/scope/semantic-line-breaks.d.ts.map +1 -0
  200. package/dist/rules/scope/semantic-line-breaks.js +213 -0
  201. package/dist/rules/scope/semantic-line-breaks.js.map +1 -0
  202. package/dist/rules/scope/spelling.d.ts +27 -0
  203. package/dist/rules/scope/spelling.d.ts.map +1 -0
  204. package/dist/rules/scope/spelling.js +227 -0
  205. package/dist/rules/scope/spelling.js.map +1 -0
  206. package/dist/rules/scope/swap.d.ts +3 -0
  207. package/dist/rules/scope/swap.d.ts.map +1 -0
  208. package/dist/rules/scope/swap.js +149 -0
  209. package/dist/rules/scope/swap.js.map +1 -0
  210. package/dist/rules/scope/title-case.d.ts +42 -0
  211. package/dist/rules/scope/title-case.d.ts.map +1 -0
  212. package/dist/rules/scope/title-case.js +264 -0
  213. package/dist/rules/scope/title-case.js.map +1 -0
  214. package/dist/rules/token/blanks-around-fences.d.ts +3 -0
  215. package/dist/rules/token/blanks-around-fences.d.ts.map +1 -0
  216. package/dist/rules/token/blanks-around-fences.js +44 -0
  217. package/dist/rules/token/blanks-around-fences.js.map +1 -0
  218. package/dist/rules/token/blanks-around-headings.d.ts +3 -0
  219. package/dist/rules/token/blanks-around-headings.d.ts.map +1 -0
  220. package/dist/rules/token/blanks-around-headings.js +108 -0
  221. package/dist/rules/token/blanks-around-headings.js.map +1 -0
  222. package/dist/rules/token/blanks-around-lists.d.ts +3 -0
  223. package/dist/rules/token/blanks-around-lists.d.ts.map +1 -0
  224. package/dist/rules/token/blanks-around-lists.js +56 -0
  225. package/dist/rules/token/blanks-around-lists.js.map +1 -0
  226. package/dist/rules/token/blanks-around-tables.d.ts +3 -0
  227. package/dist/rules/token/blanks-around-tables.d.ts.map +1 -0
  228. package/dist/rules/token/blanks-around-tables.js +42 -0
  229. package/dist/rules/token/blanks-around-tables.js.map +1 -0
  230. package/dist/rules/token/code-block-style.d.ts +3 -0
  231. package/dist/rules/token/code-block-style.d.ts.map +1 -0
  232. package/dist/rules/token/code-block-style.js +30 -0
  233. package/dist/rules/token/code-block-style.js.map +1 -0
  234. package/dist/rules/token/code-fence-style.d.ts +3 -0
  235. package/dist/rules/token/code-fence-style.d.ts.map +1 -0
  236. package/dist/rules/token/code-fence-style.js +35 -0
  237. package/dist/rules/token/code-fence-style.js.map +1 -0
  238. package/dist/rules/token/commands-show-output.d.ts +3 -0
  239. package/dist/rules/token/commands-show-output.d.ts.map +1 -0
  240. package/dist/rules/token/commands-show-output.js +38 -0
  241. package/dist/rules/token/commands-show-output.js.map +1 -0
  242. package/dist/rules/token/descriptive-link-text.d.ts +3 -0
  243. package/dist/rules/token/descriptive-link-text.d.ts.map +1 -0
  244. package/dist/rules/token/descriptive-link-text.js +53 -0
  245. package/dist/rules/token/descriptive-link-text.js.map +1 -0
  246. package/dist/rules/token/emphasis-style.d.ts +3 -0
  247. package/dist/rules/token/emphasis-style.d.ts.map +1 -0
  248. package/dist/rules/token/emphasis-style.js +51 -0
  249. package/dist/rules/token/emphasis-style.js.map +1 -0
  250. package/dist/rules/token/fenced-code-language.d.ts +3 -0
  251. package/dist/rules/token/fenced-code-language.d.ts.map +1 -0
  252. package/dist/rules/token/fenced-code-language.js +35 -0
  253. package/dist/rules/token/fenced-code-language.js.map +1 -0
  254. package/dist/rules/token/first-line-h1.d.ts +3 -0
  255. package/dist/rules/token/first-line-h1.d.ts.map +1 -0
  256. package/dist/rules/token/first-line-h1.js +107 -0
  257. package/dist/rules/token/first-line-h1.js.map +1 -0
  258. package/dist/rules/token/heading-increment.d.ts +3 -0
  259. package/dist/rules/token/heading-increment.d.ts.map +1 -0
  260. package/dist/rules/token/heading-increment.js +27 -0
  261. package/dist/rules/token/heading-increment.js.map +1 -0
  262. package/dist/rules/token/heading-start-left.d.ts +3 -0
  263. package/dist/rules/token/heading-start-left.d.ts.map +1 -0
  264. package/dist/rules/token/heading-start-left.js +31 -0
  265. package/dist/rules/token/heading-start-left.js.map +1 -0
  266. package/dist/rules/token/heading-style.d.ts +3 -0
  267. package/dist/rules/token/heading-style.d.ts.map +1 -0
  268. package/dist/rules/token/heading-style.js +41 -0
  269. package/dist/rules/token/heading-style.js.map +1 -0
  270. package/dist/rules/token/helpers.d.ts +313 -0
  271. package/dist/rules/token/helpers.d.ts.map +1 -0
  272. package/dist/rules/token/helpers.js +746 -0
  273. package/dist/rules/token/helpers.js.map +1 -0
  274. package/dist/rules/token/hr-style.d.ts +3 -0
  275. package/dist/rules/token/hr-style.d.ts.map +1 -0
  276. package/dist/rules/token/hr-style.js +28 -0
  277. package/dist/rules/token/hr-style.js.map +1 -0
  278. package/dist/rules/token/index.d.ts +75 -0
  279. package/dist/rules/token/index.d.ts.map +1 -0
  280. package/dist/rules/token/index.js +226 -0
  281. package/dist/rules/token/index.js.map +1 -0
  282. package/dist/rules/token/line-length.d.ts +3 -0
  283. package/dist/rules/token/line-length.d.ts.map +1 -0
  284. package/dist/rules/token/line-length.js +120 -0
  285. package/dist/rules/token/line-length.js.map +1 -0
  286. package/dist/rules/token/link-fragments.d.ts +3 -0
  287. package/dist/rules/token/link-fragments.d.ts.map +1 -0
  288. package/dist/rules/token/link-fragments.js +145 -0
  289. package/dist/rules/token/link-fragments.js.map +1 -0
  290. package/dist/rules/token/link-image-reference-definitions.d.ts +3 -0
  291. package/dist/rules/token/link-image-reference-definitions.d.ts.map +1 -0
  292. package/dist/rules/token/link-image-reference-definitions.js +50 -0
  293. package/dist/rules/token/link-image-reference-definitions.js.map +1 -0
  294. package/dist/rules/token/link-image-style.d.ts +3 -0
  295. package/dist/rules/token/link-image-style.d.ts.map +1 -0
  296. package/dist/rules/token/link-image-style.js +131 -0
  297. package/dist/rules/token/link-image-style.js.map +1 -0
  298. package/dist/rules/token/list-indent.d.ts +3 -0
  299. package/dist/rules/token/list-indent.d.ts.map +1 -0
  300. package/dist/rules/token/list-indent.js +60 -0
  301. package/dist/rules/token/list-indent.js.map +1 -0
  302. package/dist/rules/token/list-length.d.ts +3 -0
  303. package/dist/rules/token/list-length.d.ts.map +1 -0
  304. package/dist/rules/token/list-length.js +55 -0
  305. package/dist/rules/token/list-length.js.map +1 -0
  306. package/dist/rules/token/list-marker-space.d.ts +3 -0
  307. package/dist/rules/token/list-marker-space.d.ts.map +1 -0
  308. package/dist/rules/token/list-marker-space.js +52 -0
  309. package/dist/rules/token/list-marker-space.js.map +1 -0
  310. package/dist/rules/token/markdoc-attributes.d.ts +3 -0
  311. package/dist/rules/token/markdoc-attributes.d.ts.map +1 -0
  312. package/dist/rules/token/markdoc-attributes.js +269 -0
  313. package/dist/rules/token/markdoc-attributes.js.map +1 -0
  314. package/dist/rules/token/markdoc-pairing.d.ts +3 -0
  315. package/dist/rules/token/markdoc-pairing.d.ts.map +1 -0
  316. package/dist/rules/token/markdoc-pairing.js +73 -0
  317. package/dist/rules/token/markdoc-pairing.js.map +1 -0
  318. package/dist/rules/token/markdoc-syntax.d.ts +3 -0
  319. package/dist/rules/token/markdoc-syntax.d.ts.map +1 -0
  320. package/dist/rules/token/markdoc-syntax.js +119 -0
  321. package/dist/rules/token/markdoc-syntax.js.map +1 -0
  322. package/dist/rules/token/markdoc-unknown-tag.d.ts +3 -0
  323. package/dist/rules/token/markdoc-unknown-tag.d.ts.map +1 -0
  324. package/dist/rules/token/markdoc-unknown-tag.js +64 -0
  325. package/dist/rules/token/markdoc-unknown-tag.js.map +1 -0
  326. package/dist/rules/token/messages.d.ts +4 -0
  327. package/dist/rules/token/messages.d.ts.map +1 -0
  328. package/dist/rules/token/messages.js +20 -0
  329. package/dist/rules/token/messages.js.map +1 -0
  330. package/dist/rules/token/no-alt-text.d.ts +3 -0
  331. package/dist/rules/token/no-alt-text.d.ts.map +1 -0
  332. package/dist/rules/token/no-alt-text.js +47 -0
  333. package/dist/rules/token/no-alt-text.js.map +1 -0
  334. package/dist/rules/token/no-bare-urls.d.ts +3 -0
  335. package/dist/rules/token/no-bare-urls.d.ts.map +1 -0
  336. package/dist/rules/token/no-bare-urls.js +88 -0
  337. package/dist/rules/token/no-bare-urls.js.map +1 -0
  338. package/dist/rules/token/no-blanks-blockquote.d.ts +3 -0
  339. package/dist/rules/token/no-blanks-blockquote.d.ts.map +1 -0
  340. package/dist/rules/token/no-blanks-blockquote.js +39 -0
  341. package/dist/rules/token/no-blanks-blockquote.js.map +1 -0
  342. package/dist/rules/token/no-duplicate-heading.d.ts +3 -0
  343. package/dist/rules/token/no-duplicate-heading.d.ts.map +1 -0
  344. package/dist/rules/token/no-duplicate-heading.js +101 -0
  345. package/dist/rules/token/no-duplicate-heading.js.map +1 -0
  346. package/dist/rules/token/no-duplicate-link-destinations.d.ts +3 -0
  347. package/dist/rules/token/no-duplicate-link-destinations.d.ts.map +1 -0
  348. package/dist/rules/token/no-duplicate-link-destinations.js +65 -0
  349. package/dist/rules/token/no-duplicate-link-destinations.js.map +1 -0
  350. package/dist/rules/token/no-emphasis-as-heading.d.ts +3 -0
  351. package/dist/rules/token/no-emphasis-as-heading.d.ts.map +1 -0
  352. package/dist/rules/token/no-emphasis-as-heading.js +44 -0
  353. package/dist/rules/token/no-emphasis-as-heading.js.map +1 -0
  354. package/dist/rules/token/no-empty-headings.d.ts +3 -0
  355. package/dist/rules/token/no-empty-headings.d.ts.map +1 -0
  356. package/dist/rules/token/no-empty-headings.js +28 -0
  357. package/dist/rules/token/no-empty-headings.js.map +1 -0
  358. package/dist/rules/token/no-empty-links.d.ts +3 -0
  359. package/dist/rules/token/no-empty-links.d.ts.map +1 -0
  360. package/dist/rules/token/no-empty-links.js +67 -0
  361. package/dist/rules/token/no-empty-links.js.map +1 -0
  362. package/dist/rules/token/no-hard-tabs.d.ts +3 -0
  363. package/dist/rules/token/no-hard-tabs.d.ts.map +1 -0
  364. package/dist/rules/token/no-hard-tabs.js +76 -0
  365. package/dist/rules/token/no-hard-tabs.js.map +1 -0
  366. package/dist/rules/token/no-inline-html.d.ts +3 -0
  367. package/dist/rules/token/no-inline-html.d.ts.map +1 -0
  368. package/dist/rules/token/no-inline-html.js +45 -0
  369. package/dist/rules/token/no-inline-html.js.map +1 -0
  370. package/dist/rules/token/no-missing-space-atx.d.ts +3 -0
  371. package/dist/rules/token/no-missing-space-atx.d.ts.map +1 -0
  372. package/dist/rules/token/no-missing-space-atx.js +36 -0
  373. package/dist/rules/token/no-missing-space-atx.js.map +1 -0
  374. package/dist/rules/token/no-missing-space-closed-atx.d.ts +3 -0
  375. package/dist/rules/token/no-missing-space-closed-atx.d.ts.map +1 -0
  376. package/dist/rules/token/no-missing-space-closed-atx.js +45 -0
  377. package/dist/rules/token/no-missing-space-closed-atx.js.map +1 -0
  378. package/dist/rules/token/no-multiple-blanks.d.ts +3 -0
  379. package/dist/rules/token/no-multiple-blanks.d.ts.map +1 -0
  380. package/dist/rules/token/no-multiple-blanks.js +35 -0
  381. package/dist/rules/token/no-multiple-blanks.js.map +1 -0
  382. package/dist/rules/token/no-multiple-space-atx.d.ts +13 -0
  383. package/dist/rules/token/no-multiple-space-atx.d.ts.map +1 -0
  384. package/dist/rules/token/no-multiple-space-atx.js +50 -0
  385. package/dist/rules/token/no-multiple-space-atx.js.map +1 -0
  386. package/dist/rules/token/no-multiple-space-blockquote.d.ts +3 -0
  387. package/dist/rules/token/no-multiple-space-blockquote.d.ts.map +1 -0
  388. package/dist/rules/token/no-multiple-space-blockquote.js +43 -0
  389. package/dist/rules/token/no-multiple-space-blockquote.js.map +1 -0
  390. package/dist/rules/token/no-multiple-space-closed-atx.d.ts +3 -0
  391. package/dist/rules/token/no-multiple-space-closed-atx.d.ts.map +1 -0
  392. package/dist/rules/token/no-multiple-space-closed-atx.js +19 -0
  393. package/dist/rules/token/no-multiple-space-closed-atx.js.map +1 -0
  394. package/dist/rules/token/no-reversed-links.d.ts +3 -0
  395. package/dist/rules/token/no-reversed-links.d.ts.map +1 -0
  396. package/dist/rules/token/no-reversed-links.js +52 -0
  397. package/dist/rules/token/no-reversed-links.js.map +1 -0
  398. package/dist/rules/token/no-space-in-code.d.ts +3 -0
  399. package/dist/rules/token/no-space-in-code.d.ts.map +1 -0
  400. package/dist/rules/token/no-space-in-code.js +75 -0
  401. package/dist/rules/token/no-space-in-code.js.map +1 -0
  402. package/dist/rules/token/no-space-in-emphasis.d.ts +3 -0
  403. package/dist/rules/token/no-space-in-emphasis.d.ts.map +1 -0
  404. package/dist/rules/token/no-space-in-emphasis.js +79 -0
  405. package/dist/rules/token/no-space-in-emphasis.js.map +1 -0
  406. package/dist/rules/token/no-space-in-links.d.ts +3 -0
  407. package/dist/rules/token/no-space-in-links.d.ts.map +1 -0
  408. package/dist/rules/token/no-space-in-links.js +48 -0
  409. package/dist/rules/token/no-space-in-links.js.map +1 -0
  410. package/dist/rules/token/no-trailing-punctuation.d.ts +3 -0
  411. package/dist/rules/token/no-trailing-punctuation.d.ts.map +1 -0
  412. package/dist/rules/token/no-trailing-punctuation.js +38 -0
  413. package/dist/rules/token/no-trailing-punctuation.js.map +1 -0
  414. package/dist/rules/token/no-trailing-spaces.d.ts +3 -0
  415. package/dist/rules/token/no-trailing-spaces.d.ts.map +1 -0
  416. package/dist/rules/token/no-trailing-spaces.js +89 -0
  417. package/dist/rules/token/no-trailing-spaces.js.map +1 -0
  418. package/dist/rules/token/ol-prefix.d.ts +3 -0
  419. package/dist/rules/token/ol-prefix.d.ts.map +1 -0
  420. package/dist/rules/token/ol-prefix.js +70 -0
  421. package/dist/rules/token/ol-prefix.js.map +1 -0
  422. package/dist/rules/token/proper-names.d.ts +3 -0
  423. package/dist/rules/token/proper-names.d.ts.map +1 -0
  424. package/dist/rules/token/proper-names.js +93 -0
  425. package/dist/rules/token/proper-names.js.map +1 -0
  426. package/dist/rules/token/reference-links-images.d.ts +3 -0
  427. package/dist/rules/token/reference-links-images.d.ts.map +1 -0
  428. package/dist/rules/token/reference-links-images.js +36 -0
  429. package/dist/rules/token/reference-links-images.js.map +1 -0
  430. package/dist/rules/token/required-headings.d.ts +3 -0
  431. package/dist/rules/token/required-headings.d.ts.map +1 -0
  432. package/dist/rules/token/required-headings.js +83 -0
  433. package/dist/rules/token/required-headings.js.map +1 -0
  434. package/dist/rules/token/single-h1.d.ts +3 -0
  435. package/dist/rules/token/single-h1.d.ts.map +1 -0
  436. package/dist/rules/token/single-h1.js +56 -0
  437. package/dist/rules/token/single-h1.js.map +1 -0
  438. package/dist/rules/token/single-trailing-newline.d.ts +3 -0
  439. package/dist/rules/token/single-trailing-newline.d.ts.map +1 -0
  440. package/dist/rules/token/single-trailing-newline.js +25 -0
  441. package/dist/rules/token/single-trailing-newline.js.map +1 -0
  442. package/dist/rules/token/strong-style.d.ts +3 -0
  443. package/dist/rules/token/strong-style.d.ts.map +1 -0
  444. package/dist/rules/token/strong-style.js +51 -0
  445. package/dist/rules/token/strong-style.js.map +1 -0
  446. package/dist/rules/token/table-column-count.d.ts +3 -0
  447. package/dist/rules/token/table-column-count.d.ts.map +1 -0
  448. package/dist/rules/token/table-column-count.js +44 -0
  449. package/dist/rules/token/table-column-count.js.map +1 -0
  450. package/dist/rules/token/table-column-style.d.ts +3 -0
  451. package/dist/rules/token/table-column-style.d.ts.map +1 -0
  452. package/dist/rules/token/table-column-style.js +179 -0
  453. package/dist/rules/token/table-column-style.js.map +1 -0
  454. package/dist/rules/token/table-pipe-style.d.ts +3 -0
  455. package/dist/rules/token/table-pipe-style.d.ts.map +1 -0
  456. package/dist/rules/token/table-pipe-style.js +54 -0
  457. package/dist/rules/token/table-pipe-style.js.map +1 -0
  458. package/dist/rules/token/ul-indent.d.ts +3 -0
  459. package/dist/rules/token/ul-indent.d.ts.map +1 -0
  460. package/dist/rules/token/ul-indent.js +72 -0
  461. package/dist/rules/token/ul-indent.js.map +1 -0
  462. package/dist/rules/token/ul-style.d.ts +3 -0
  463. package/dist/rules/token/ul-style.d.ts.map +1 -0
  464. package/dist/rules/token/ul-style.js +80 -0
  465. package/dist/rules/token/ul-style.js.map +1 -0
  466. package/dist/rules/types.d.ts +81 -0
  467. package/dist/rules/types.d.ts.map +1 -0
  468. package/dist/rules/types.js +2 -0
  469. package/dist/rules/types.js.map +1 -0
  470. package/dist/rules/utils.d.ts +29 -0
  471. package/dist/rules/utils.d.ts.map +1 -0
  472. package/dist/{assertions → rules}/utils.js +27 -0
  473. package/dist/rules/utils.js.map +1 -0
  474. package/dist/scopes/extractor.d.ts +7 -0
  475. package/dist/scopes/extractor.d.ts.map +1 -0
  476. package/dist/scopes/extractor.js +475 -0
  477. package/dist/scopes/extractor.js.map +1 -0
  478. package/dist/scopes/selector.d.ts +51 -0
  479. package/dist/scopes/selector.d.ts.map +1 -0
  480. package/dist/scopes/selector.js +121 -0
  481. package/dist/scopes/selector.js.map +1 -0
  482. package/dist/scopes/sentences.d.ts +7 -0
  483. package/dist/scopes/sentences.d.ts.map +1 -0
  484. package/dist/scopes/sentences.js +115 -0
  485. package/dist/scopes/sentences.js.map +1 -0
  486. package/dist/scopes/types.d.ts +44 -0
  487. package/dist/scopes/types.d.ts.map +1 -0
  488. package/dist/scopes/types.js +2 -0
  489. package/dist/scopes/types.js.map +1 -0
  490. package/dist/scopes/vocabulary.d.ts +16 -0
  491. package/dist/scopes/vocabulary.d.ts.map +1 -0
  492. package/dist/scopes/vocabulary.js +70 -0
  493. package/dist/scopes/vocabulary.js.map +1 -0
  494. package/dist/types/assertions.d.ts +95 -32
  495. package/dist/types/assertions.d.ts.map +1 -1
  496. package/dist/types/problems.d.ts +4 -5
  497. package/dist/types/problems.d.ts.map +1 -1
  498. package/dist/types/rules.d.ts +4 -6
  499. package/dist/types/rules.d.ts.map +1 -1
  500. package/examples/appendices/google.appendix.yaml +91 -0
  501. package/examples/appendices/inclusive-language.appendix.yaml +61 -0
  502. package/examples/appendices/microsoft.appendix.yaml +99 -0
  503. package/examples/appendices/plain-language.appendix.yaml +88 -0
  504. package/examples/google.yaml +1525 -0
  505. package/examples/inclusive-language.yaml +304 -0
  506. package/examples/microsoft.yaml +1542 -0
  507. package/examples/plain-language.yaml +325 -0
  508. package/package.json +49 -16
  509. package/presets/google/PROVENANCE.md +1022 -0
  510. package/presets/google/sources.json +192 -0
  511. package/presets/inclusive-language/PROVENANCE.md +174 -0
  512. package/presets/inclusive-language/sources.json +107 -0
  513. package/presets/microsoft/PROVENANCE.md +1555 -0
  514. package/presets/microsoft/sources.json +494 -0
  515. package/presets/plain-language/PROVENANCE.md +364 -0
  516. package/presets/plain-language/sources.json +108 -0
  517. package/dist/assertions/bullet-style.d.ts +0 -3
  518. package/dist/assertions/bullet-style.d.ts.map +0 -1
  519. package/dist/assertions/bullet-style.js +0 -60
  520. package/dist/assertions/bullet-style.js.map +0 -1
  521. package/dist/assertions/index.d.ts +0 -21
  522. package/dist/assertions/index.d.ts.map +0 -1
  523. package/dist/assertions/index.js +0 -30
  524. package/dist/assertions/index.js.map +0 -1
  525. package/dist/assertions/max-image-size.d.ts +0 -3
  526. package/dist/assertions/max-image-size.d.ts.map +0 -1
  527. package/dist/assertions/max-image-size.js +0 -73
  528. package/dist/assertions/max-image-size.js.map +0 -1
  529. package/dist/assertions/max-line-length.d.ts +0 -3
  530. package/dist/assertions/max-line-length.d.ts.map +0 -1
  531. package/dist/assertions/max-line-length.js +0 -68
  532. package/dist/assertions/max-line-length.js.map +0 -1
  533. package/dist/assertions/no-broken-fragment-links.d.ts +0 -3
  534. package/dist/assertions/no-broken-fragment-links.d.ts.map +0 -1
  535. package/dist/assertions/no-broken-fragment-links.js +0 -79
  536. package/dist/assertions/no-broken-fragment-links.js.map +0 -1
  537. package/dist/assertions/no-duplicate-headings.d.ts +0 -3
  538. package/dist/assertions/no-duplicate-headings.d.ts.map +0 -1
  539. package/dist/assertions/no-duplicate-headings.js +0 -66
  540. package/dist/assertions/no-duplicate-headings.js.map +0 -1
  541. package/dist/assertions/no-hard-tabs.d.ts +0 -3
  542. package/dist/assertions/no-hard-tabs.d.ts.map +0 -1
  543. package/dist/assertions/no-hard-tabs.js +0 -63
  544. package/dist/assertions/no-hard-tabs.js.map +0 -1
  545. package/dist/assertions/no-trailing-spaces.d.ts +0 -3
  546. package/dist/assertions/no-trailing-spaces.d.ts.map +0 -1
  547. package/dist/assertions/no-trailing-spaces.js +0 -72
  548. package/dist/assertions/no-trailing-spaces.js.map +0 -1
  549. package/dist/assertions/pattern.d.ts +0 -3
  550. package/dist/assertions/pattern.d.ts.map +0 -1
  551. package/dist/assertions/pattern.js +0 -39
  552. package/dist/assertions/pattern.js.map +0 -1
  553. package/dist/assertions/semantic-line-breaks.d.ts +0 -3
  554. package/dist/assertions/semantic-line-breaks.d.ts.map +0 -1
  555. package/dist/assertions/semantic-line-breaks.js +0 -152
  556. package/dist/assertions/semantic-line-breaks.js.map +0 -1
  557. package/dist/assertions/swap.d.ts +0 -3
  558. package/dist/assertions/swap.d.ts.map +0 -1
  559. package/dist/assertions/swap.js +0 -39
  560. package/dist/assertions/swap.js.map +0 -1
  561. package/dist/assertions/utils.d.ts +0 -8
  562. package/dist/assertions/utils.d.ts.map +0 -1
  563. package/dist/assertions/utils.js.map +0 -1
  564. package/dist/core/scope-parser.d.ts +0 -26
  565. package/dist/core/scope-parser.d.ts.map +0 -1
  566. package/dist/core/scope-parser.js +0 -110
  567. package/dist/core/scope-parser.js.map +0 -1
  568. package/dist/files.d.ts +0 -2
  569. package/dist/files.d.ts.map +0 -1
  570. package/dist/files.js +0 -39
  571. package/dist/files.js.map +0 -1
  572. package/dist/load-config.d.ts +0 -25
  573. package/dist/load-config.d.ts.map +0 -1
  574. package/dist/load-config.js +0 -104
  575. package/dist/load-config.js.map +0 -1
  576. package/dist/load.d.ts +0 -25
  577. package/dist/load.d.ts.map +0 -1
  578. package/dist/load.js +0 -112
  579. package/dist/load.js.map +0 -1
  580. package/dist/scope.d.ts +0 -26
  581. package/dist/scope.d.ts.map +0 -1
  582. package/dist/scope.js +0 -110
  583. package/dist/scope.js.map +0 -1
  584. package/dist/types.d.ts +0 -109
  585. package/dist/types.d.ts.map +0 -1
  586. package/dist/types.js.map +0 -1
  587. package/dist/validate.d.ts +0 -31
  588. package/dist/validate.d.ts.map +0 -1
  589. package/dist/validate.js +0 -154
  590. package/dist/validate.js.map +0 -1
  591. /package/dist/{types.js → parser/types.js} +0 -0
@@ -0,0 +1,138 @@
1
+ /**
2
+ * `recheck/prose` — the Vale-parity counterpart to `recheck/markdown`:
3
+ * `extends: [recheck/markdown, recheck/prose]` is the README-documented
4
+ * one-liner that replaces a markdownlint + Vale combo with one config.
5
+ *
6
+ * A deliberately small, high-signal set, all at `severity: warn` (prose
7
+ * suggestions, not structural violations):
8
+ *
9
+ * - `repetition` — default options, flags an adjacent repeated word.
10
+ * - `consistency` — internal consistency (first-seen wins) for four common
11
+ * British/American variant pairs, with `ignoreCase: true` so a
12
+ * sentence-initial "Colour" still counts. Deliberately not a `swap`-style
13
+ * fixed-spelling list — `consistency` only requires the file be
14
+ * internally consistent, the gentler default.
15
+ * - `capitalization` — `$sentence`, scoped to `heading` only, with
16
+ * `fix: false` (see the `capitalization` rule below). No preset-level
17
+ * `exceptions` list: `TECHNICAL_PROPER_NOUNS` (`../../data/proper-nouns.ts`,
18
+ * Task 8 of this phase) is unioned in by default by the `capitalization`
19
+ * rule itself (rules/scope/capitalization.ts), so the preset inherits the
20
+ * built-in vocabulary instead of shipping its own copy — this also
21
+ * dissolves the ergonomic wart the Phase 3 version of this list had: a
22
+ * user's own `exceptions` on a preset-configured rule *replaces* the
23
+ * preset's list (see the README's `extends` merge semantics), so a
24
+ * preset-shipped list and built-ins unioned by the rule are not the same
25
+ * guarantee — only the latter survives a user override.
26
+ *
27
+ * Scope rules have no `defaults.message` to derive a message from (see
28
+ * markdown.ts's doc comment), so each entry sets its own explicit
29
+ * `message`, matching the assertion module's own fallback string exactly
30
+ * so the two never drift apart.
31
+ *
32
+ * `occurrence`, `conditional`, `metric`, and `spelling` are documented
33
+ * opt-ins instead (see the README's "Opt-in prose assertions") — their
34
+ * thresholds or external peer dependencies are inherently project-specific.
35
+ * `DOCUMENTED_OPT_IN_ASSERTIONS` (presets/index.ts) is the source of truth
36
+ * the registry<->preset completeness test (config/__tests__/presets.test.ts)
37
+ * checks against: every scope-rule assertion must be shipped in some
38
+ * preset (any preset, not just this one) or be in that list — never
39
+ * neither, never both.
40
+ *
41
+ * `length` used to be a fifth entry here (an opt-in, not a preset default,
42
+ * because it has no default bounds and requires a `unit` -- see
43
+ * rules/scope/length.ts). `recheck/google` now ships it directly (see
44
+ * `google/sentence-length`, spec §5.6's "fewer than 26 words per sentence"
45
+ * rule), so it moved out of the opt-in list entirely -- see
46
+ * `DOCUMENTED_OPT_IN_ASSERTIONS`'s own doc comment in presets/index.ts and
47
+ * cross-task-constraints.md §C / task-9-10-resolutions.md §5 for why.
48
+ */
49
+ export const PROSE_PRESET_ASSERTIONS = ['repetition', 'consistency', 'capitalization'];
50
+ /**
51
+ * Shared scope for the preset's `repetition`/`consistency` rules: `summary`
52
+ * is the canonical all-prose scope — paragraph, heading (all levels),
53
+ * list-item, blockquote, and table header/body cell text (see
54
+ * scopes/extractor.ts). Without an explicit scope these would default to
55
+ * `all` (the whole raw file), and a `--fix` run could rewrite code samples
56
+ * or frontmatter — "never rewrites code samples" is part of the preset's
57
+ * README contract; code and frontmatter are not summary sources.
58
+ */
59
+ const PROSE_SCOPE = 'summary';
60
+ export function buildProsePreset() {
61
+ const repetition = {
62
+ severity: 'warn',
63
+ scope: PROSE_SCOPE,
64
+ message: 'Repeated word "%s".',
65
+ assertions: { repetition: {} },
66
+ };
67
+ const consistency = {
68
+ severity: 'warn',
69
+ scope: PROSE_SCOPE,
70
+ message: 'Inconsistent spelling: "%s" conflicts with first-seen "%s".',
71
+ assertions: {
72
+ consistency: {
73
+ either: {
74
+ behavior: 'behaviour',
75
+ color: 'colour',
76
+ license: 'licence',
77
+ organize: 'organise',
78
+ },
79
+ ignoreCase: true,
80
+ },
81
+ },
82
+ };
83
+ // SENTENCE case, not AP title case (changed from `$title` + `style: 'ap'`
84
+ // by product decision 2026-07-29: Redocly's own documentation style guide,
85
+ // this repo's CLAUDE.md, Google's developer documentation style guide, and
86
+ // Microsoft's writing style guide all mandate sentence case for headings —
87
+ // AP title case was the outlier).
88
+ //
89
+ // No `style` key: applyDollarStyle in rules/scope/capitalization.ts only
90
+ // reads `style` inside its `$title` branch, so alongside `$sentence` it
91
+ // would be dead config (the README already documents it as a no-op for
92
+ // every other `match`).
93
+ //
94
+ // `fix: false` (the per-rule auto-fix opt-out the runner honors as
95
+ // `rule.fix !== false`, see core/runner.ts) even though `capitalization`
96
+ // is registered `fixable` for the four `$`-styles: a sentence-case
97
+ // auto-fix lowercases any proper noun the built-in vocabulary (see below)
98
+ // and the user's own `exceptions` don't cover, so enabling it out of the
99
+ // box would silently damage content the moment a project's vocabulary
100
+ // went beyond that. Users turn fixes on (`fix: true`, or just drop this
101
+ // key) once their exceptions list covers their own vocabulary.
102
+ //
103
+ // No `exceptions` key here (Task 8 of this phase; Phase 3 shipped a
104
+ // 38-entry starter list directly on this rule): `capitalization` itself
105
+ // now unions `TECHNICAL_PROPER_NOUNS` (../../data/proper-nouns.ts) into
106
+ // `exceptions` by default (rules/scope/capitalization.ts's `collectSites`),
107
+ // so this preset inherits that protection instead of shipping its own
108
+ // copy of the vocabulary — one copy of the list for the whole package,
109
+ // and it survives a user's own `exceptions` override on this rule key
110
+ // (which would otherwise REPLACE a preset-shipped list entirely, per the
111
+ // README's `extends` merge semantics — see proper-nouns.ts's header
112
+ // comment for why the two are not the same guarantee). Only a handful of
113
+ // entries don't qualify for the built-in vocabulary's inclusion bar (the
114
+ // ALL-CAPS `JWT`/`YAML`; `Realm`/`Replay`/`Respect`/`Node`; and, per the
115
+ // final-review fix wave's audit, `Chrome`/`Markdown`/`Postman`/`Prettier`/
116
+ // `Safari`/`Swagger`/`Windows` — each a real ordinary English word — see
117
+ // proper-nouns.ts's header comment for why) and are no longer protected by
118
+ // this preset by default; ordinary Title-Case brand names like `Redocly`
119
+ // and `Kubernetes` DO qualify as of the Task 8 fix wave (see
120
+ // task-8-report.md) and are covered. A project relying on one of the
121
+ // excluded entries adds it back via its own `exceptions` list on this rule
122
+ // key, same as any other project-specific vocabulary.
123
+ const capitalization = {
124
+ severity: 'warn',
125
+ scope: 'heading',
126
+ fix: false,
127
+ message: '"%s" should use %s capitalization.',
128
+ assertions: {
129
+ capitalization: { match: '$sentence' },
130
+ },
131
+ };
132
+ return {
133
+ 'recheck/repetition': repetition,
134
+ 'recheck/consistency': consistency,
135
+ 'recheck/capitalization': capitalization,
136
+ };
137
+ }
138
+ //# sourceMappingURL=prose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prose.js","sourceRoot":"","sources":["../../../src/config/presets/prose.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,gBAAgB,CAAU,CAAC;AAEhG;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAG,SAAS,CAAC;AAE9B,MAAM,UAAU,gBAAgB;IAC9B,MAAM,UAAU,GAAa;QAC3B,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,qBAAqB;QAC9B,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;KAC/B,CAAC;IAEF,MAAM,WAAW,GAAa;QAC5B,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,6DAA6D;QACtE,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,MAAM,EAAE;oBACN,QAAQ,EAAE,WAAW;oBACrB,KAAK,EAAE,QAAQ;oBACf,OAAO,EAAE,SAAS;oBAClB,QAAQ,EAAE,UAAU;iBACrB;gBACD,UAAU,EAAE,IAAI;aACjB;SACF;KACF,CAAC;IAEF,0EAA0E;IAC1E,2EAA2E;IAC3E,2EAA2E;IAC3E,2EAA2E;IAC3E,kCAAkC;IAClC,EAAE;IACF,yEAAyE;IACzE,wEAAwE;IACxE,uEAAuE;IACvE,wBAAwB;IACxB,EAAE;IACF,mEAAmE;IACnE,yEAAyE;IACzE,mEAAmE;IACnE,0EAA0E;IAC1E,yEAAyE;IACzE,sEAAsE;IACtE,wEAAwE;IACxE,+DAA+D;IAC/D,EAAE;IACF,oEAAoE;IACpE,wEAAwE;IACxE,wEAAwE;IACxE,4EAA4E;IAC5E,sEAAsE;IACtE,uEAAuE;IACvE,sEAAsE;IACtE,yEAAyE;IACzE,oEAAoE;IACpE,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,2EAA2E;IAC3E,yEAAyE;IACzE,2EAA2E;IAC3E,yEAAyE;IACzE,6DAA6D;IAC7D,qEAAqE;IACrE,2EAA2E;IAC3E,sDAAsD;IACtD,MAAM,cAAc,GAAa;QAC/B,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,KAAK;QACV,OAAO,EAAE,oCAAoC;QAC7C,UAAU,EAAE;YACV,cAAc,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;SACvC;KACF,CAAC;IAEF,OAAO;QACL,oBAAoB,EAAE,UAAU;QAChC,qBAAqB,EAAE,WAAW;QAClC,wBAAwB,EAAE,cAAc;KACzC,CAAC;AACJ,CAAC"}
@@ -1,8 +1,131 @@
1
+ export declare const MARKDOC_TAG_SCHEMA: {
2
+ type: string;
3
+ properties: {
4
+ selfClosing: {
5
+ type: string;
6
+ };
7
+ attributes: {
8
+ type: string;
9
+ additionalProperties: {
10
+ type: string;
11
+ properties: {
12
+ type: {
13
+ enum: string[];
14
+ };
15
+ required: {
16
+ type: string;
17
+ };
18
+ default: {
19
+ oneOf: {
20
+ type: string;
21
+ }[];
22
+ };
23
+ enum: {
24
+ type: string;
25
+ items: {
26
+ type: string;
27
+ };
28
+ minItems: number;
29
+ };
30
+ dynamic: {
31
+ type: string;
32
+ };
33
+ };
34
+ required: string[];
35
+ additionalProperties: boolean;
36
+ };
37
+ };
38
+ };
39
+ additionalProperties: boolean;
40
+ };
1
41
  export declare const RECHECK_CONFIG_SCHEMA: {
2
42
  $schema: string;
3
43
  type: string;
44
+ properties: {
45
+ extends: {
46
+ type: string;
47
+ items: {
48
+ type: string;
49
+ minLength: number;
50
+ };
51
+ };
52
+ markdoc: {
53
+ if: {
54
+ type: string;
55
+ };
56
+ then: {
57
+ type: string;
58
+ properties: {
59
+ schema: {
60
+ enum: (string | boolean)[];
61
+ };
62
+ extend: {
63
+ type: string;
64
+ properties: {
65
+ tags: {
66
+ type: string;
67
+ additionalProperties: {
68
+ type: string;
69
+ properties: {
70
+ selfClosing: {
71
+ type: string;
72
+ };
73
+ attributes: {
74
+ type: string;
75
+ additionalProperties: {
76
+ type: string;
77
+ properties: {
78
+ type: {
79
+ enum: string[];
80
+ };
81
+ required: {
82
+ type: string;
83
+ };
84
+ default: {
85
+ oneOf: {
86
+ type: string;
87
+ }[];
88
+ };
89
+ enum: {
90
+ type: string;
91
+ items: {
92
+ type: string;
93
+ };
94
+ minItems: number;
95
+ };
96
+ dynamic: {
97
+ type: string;
98
+ };
99
+ };
100
+ required: string[];
101
+ additionalProperties: boolean;
102
+ };
103
+ };
104
+ };
105
+ additionalProperties: boolean;
106
+ };
107
+ };
108
+ tagsFile: {
109
+ type: string;
110
+ minLength: number;
111
+ };
112
+ };
113
+ anyOf: {
114
+ required: string[];
115
+ }[];
116
+ additionalProperties: boolean;
117
+ };
118
+ };
119
+ required: string[];
120
+ additionalProperties: boolean;
121
+ };
122
+ else: {
123
+ type: string;
124
+ };
125
+ };
126
+ };
4
127
  patternProperties: {
5
- '^recheck/[a-z0-9-_]+$': {
128
+ '^[a-z][a-z0-9-]*/[a-z0-9-_]+$': {
6
129
  type: string;
7
130
  properties: {
8
131
  severity: {
@@ -14,13 +137,8 @@ export declare const RECHECK_CONFIG_SCHEMA: {
14
137
  type: string;
15
138
  minLength: number;
16
139
  };
17
- enabled: {
18
- type: string;
19
- default: boolean;
20
- };
21
- autoFixable: {
140
+ fix: {
22
141
  type: string;
23
- default: boolean;
24
142
  };
25
143
  tags: {
26
144
  type: string;
@@ -38,29 +156,17 @@ export declare const RECHECK_CONFIG_SCHEMA: {
38
156
  scope: {
39
157
  oneOf: ({
40
158
  type: string;
41
- anyOf: ({
42
- enum: string[];
43
- pattern?: undefined;
44
- } | {
45
- pattern: string;
46
- enum?: undefined;
47
- })[];
159
+ minLength: number;
48
160
  items?: undefined;
49
161
  minItems?: undefined;
50
162
  } | {
163
+ minLength?: undefined;
51
164
  type: string;
52
165
  items: {
53
166
  type: string;
54
- anyOf: ({
55
- enum: string[];
56
- pattern?: undefined;
57
- } | {
58
- pattern: string;
59
- enum?: undefined;
60
- })[];
167
+ minLength: number;
61
168
  };
62
169
  minItems: number;
63
- anyOf?: undefined;
64
170
  })[];
65
171
  default: string;
66
172
  };
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqGjC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,kBAAkB;IAC7B,IAAI;IACJ,UAAU;QACR,WAAW;YAAI,IAAI;;QACnB,UAAU;YACR,IAAI;YACJ,oBAAoB;;;;wBApBd,IAAI;;;wBACA,IAAI;;;;;;;;wBAMR,IAAI;wBAAW,KAAK;4BAAI,IAAI;;wBAAc,QAAQ;;;wBAC/C,IAAI;;;;;;;;IAejB,oBAAoB;CACrB,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;YAS5B,IAAI;YACJ,KAAK;gBAAI,IAAI;gBAAY,SAAS;;;;;gBAkB5B,IAAI;;;;;;wBAII,IAAI;;;;;4BAIV,IAAI;gCAAI,IAAI;gCAAY,oBAAoB;;;wCA7CtD,WAAW;4CAAI,IAAI;;wCACnB,UAAU;4CACR,IAAI;4CACJ,oBAAoB;;;;wDApBd,IAAI;;;wDACA,IAAI;;;;;;;;wDAMR,IAAI;wDAAW,KAAK;4DAAI,IAAI;;wDAAc,QAAQ;;;wDAC/C,IAAI;;;;;;;;;;;4BA2DL,QAAQ;gCAAI,IAAI;gCAAY,SAAS;;;;;;;;;;;;;gBAWrC,IAAI;;;;;;;;;oBAiBR,IAAI;oBACJ,IAAI;oBACJ,OAAO;;;oBAGP,IAAI;oBACJ,SAAS;;;oBAGT,IAAI;;;oBAGJ,IAAI;oBACJ,KAAK;wBACH,IAAI;;;;oBAIN,IAAI;;;oBAGJ,IAAI;oBACJ,MAAM;;;;;;;;;;;;4BAaO,IAAI;4BAAY,SAAS;;;;;;;oBAOtC,IAAI;oBACJ,KAAK;wBACH,IAAI;;;;oBAIN,IAAI;oBACJ,KAAK;wBACH,IAAI;;;;oBAIN,IAAI;oBACJ,UAAU;wBACR,KAAK;4BACH,IAAI;4BACJ,KAAK;gCACH,IAAI;;;wBAGR,KAAK;4BACH,IAAI;4BACJ,KAAK;gCACH,IAAI;;;;oBAIV,oBAAoB;;;oBAGpB,IAAI;oBACJ,oBAAoB;oBACpB,aAAa;;;;;;;;CAQtB,CAAC"}
@@ -1,8 +1,103 @@
1
+ // The object form of the `markdoc` option (schema selection and extension),
2
+ // alongside the boolean shorthand below. Every nested level is
3
+ // `additionalProperties: false` so a misspelled or removed key fails loudly
4
+ // instead of silently doing nothing — the same treatment a rule's own options
5
+ // get. The shape mirrors `MarkdocAttributeSchema`/`MarkdocTagSchema` in
6
+ // parser/markdoc/schema.ts, so a user's `extend.tags` entry is validated
7
+ // exactly like the built-in Realm schema.
8
+ const MARKDOC_ATTRIBUTE_SCHEMA = {
9
+ type: 'object',
10
+ properties: {
11
+ type: { enum: ['string', 'number', 'boolean'] },
12
+ required: { type: 'boolean' },
13
+ // `oneOf` of single-type schemas, not a `type: [...]` union array: AJV's
14
+ // strict mode (on by default -- see the `ajv` instance below) warns
15
+ // "use allowUnionTypes" on the array form, and this avoids loosening
16
+ // strict mode globally just for one field.
17
+ default: { oneOf: [{ type: 'string' }, { type: 'number' }, { type: 'boolean' }] },
18
+ enum: { type: 'array', items: { type: 'string' }, minItems: 1 },
19
+ dynamic: { type: 'boolean' },
20
+ },
21
+ required: ['type'],
22
+ additionalProperties: false,
23
+ };
24
+ export const MARKDOC_TAG_SCHEMA = {
25
+ type: 'object',
26
+ properties: {
27
+ selfClosing: { type: 'boolean' },
28
+ attributes: {
29
+ type: 'object',
30
+ additionalProperties: MARKDOC_ATTRIBUTE_SCHEMA,
31
+ },
32
+ },
33
+ additionalProperties: false,
34
+ };
1
35
  export const RECHECK_CONFIG_SCHEMA = {
2
36
  $schema: 'http://json-schema.org/draft-07/schema#',
3
37
  type: 'object',
38
+ properties: {
39
+ // Preset names to expand before schema/semantic rule validation runs —
40
+ // resolved in src/config/validate.ts via resolveExtends() (see
41
+ // src/config/presets/index.ts). Not a rule; excluded from rule
42
+ // iteration in validateSemantics().
43
+ extends: {
44
+ type: 'array',
45
+ items: { type: 'string', minLength: 1 },
46
+ },
47
+ // Opt-in because Liquid/Jinja share the {% %} delimiters: default-on would
48
+ // tokenize Jekyll/Hugo template syntax as Markdoc. `true` is shorthand for
49
+ // `{ schema: 'realm' }` (see parser/markdoc/schema.ts's
50
+ // resolveMarkdocConfig, which normalizes both forms); `schema: false`
51
+ // still parses/pairs, just without a schema to validate tags/attributes
52
+ // against. `extend.tags` layers a project's own custom tags over the
53
+ // chosen base.
54
+ //
55
+ // `if`/`then`/`else` on `type`, not a flat `oneOf: [boolean, object]`. With
56
+ // `allErrors: true`, AJV collects errors from every failing branch of a
57
+ // `oneOf`, so an invalid object such as `{ schema: 'bogus' }` also failed
58
+ // the boolean branch and reported a misleading `/markdoc: must be boolean`
59
+ // ahead of the real problem. Routing each input shape to exactly one branch
60
+ // means an object only sees the object-shaped errors, and anything else
61
+ // only sees `must be boolean`.
62
+ markdoc: {
63
+ if: { type: 'object' },
64
+ then: {
65
+ type: 'object',
66
+ properties: {
67
+ schema: { enum: ['realm', false] },
68
+ extend: {
69
+ type: 'object',
70
+ properties: {
71
+ tags: { type: 'object', additionalProperties: MARKDOC_TAG_SCHEMA },
72
+ // Path to a YAML file of tag-name -> tag schema, resolved
73
+ // relative to the config file's directory and read by
74
+ // config/validate.ts (this module has no filesystem access).
75
+ // Inline `tags` above override file entries on collision.
76
+ tagsFile: { type: 'string', minLength: 1 },
77
+ },
78
+ // At least one of the two is required -- an `extend` with neither
79
+ // is a no-op the user almost certainly didn't intend.
80
+ anyOf: [{ required: ['tags'] }, { required: ['tagsFile'] }],
81
+ additionalProperties: false,
82
+ },
83
+ },
84
+ required: ['schema'],
85
+ additionalProperties: false,
86
+ },
87
+ else: { type: 'boolean' },
88
+ },
89
+ },
4
90
  patternProperties: {
5
- '^recheck/[a-z0-9-_]+$': {
91
+ // Originally `^recheck/[a-z0-9-_]+$` only, back when every rule key in
92
+ // every config was `recheck/<name>`. Widened for the style-guide presets,
93
+ // which namespace each preset's own rule ids by preset name
94
+ // (`google/no-latinisms`,
95
+ // `microsoft/use-contractions`, ...) precisely so two flagship presets
96
+ // can be composed in one config without their rule keys colliding --
97
+ // `recheck/<name>` remains valid (it's just the `recheck` namespace),
98
+ // and any other lowercase-alpha-led namespace segment before the `/`
99
+ // is now accepted too.
100
+ '^[a-z][a-z0-9-]*/[a-z0-9-_]+$': {
6
101
  type: 'object',
7
102
  properties: {
8
103
  severity: {
@@ -14,13 +109,8 @@ export const RECHECK_CONFIG_SCHEMA = {
14
109
  type: 'string',
15
110
  minLength: 1,
16
111
  },
17
- enabled: {
18
- type: 'boolean',
19
- default: true,
20
- },
21
- autoFixable: {
112
+ fix: {
22
113
  type: 'boolean',
23
- default: false,
24
114
  },
25
115
  tags: {
26
116
  type: 'array',
@@ -35,24 +125,18 @@ export const RECHECK_CONFIG_SCHEMA = {
35
125
  type: 'string',
36
126
  format: 'uri',
37
127
  },
128
+ // Structural shape only (string, or non-empty array of strings).
129
+ // Term-level vocabulary/selector-syntax validation (the full scope
130
+ // vocabulary, `~negation`, `&`-conjunction) happens post-schema in
131
+ // src/config/validate.ts, which can produce a helpful per-term error
132
+ // message — something AJV's enum/pattern errors can't do well. See
133
+ // src/scopes/vocabulary.ts for the shared vocabulary list.
38
134
  scope: {
39
135
  oneOf: [
40
- {
41
- type: 'string',
42
- anyOf: [
43
- { enum: ['all', 'heading', 'sentence', 'paragraph', 'code', 'default', 'raw'] },
44
- { pattern: '^heading\\.h[1-6]$' },
45
- ],
46
- },
136
+ { type: 'string', minLength: 1 },
47
137
  {
48
138
  type: 'array',
49
- items: {
50
- type: 'string',
51
- anyOf: [
52
- { enum: ['all', 'heading', 'sentence', 'paragraph', 'code', 'default', 'raw'] },
53
- { pattern: '^heading\\.h[1-6]$' },
54
- ],
55
- },
139
+ items: { type: 'string', minLength: 1 },
56
140
  minItems: 1,
57
141
  },
58
142
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,OAAO,EAAE,yCAAyC;IAClD,IAAI,EAAE,QAAQ;IACd,iBAAiB,EAAE;QACjB,uBAAuB,EAAE;YACvB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;oBACtC,OAAO,EAAE,OAAO;iBACjB;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,SAAS,EAAE,CAAC;iBACb;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;iBACd;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,KAAK;iBACf;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;qBACf;iBACF;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;iBACf;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,KAAK;iBACd;gBACD,KAAK,EAAE;oBACL,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE;gCACL,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE;gCAC/E,EAAE,OAAO,EAAE,oBAAoB,EAAE;6BAClC;yBACF;wBACD;4BACE,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE;oCACL,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE;oCAC/E,EAAE,OAAO,EAAE,oBAAoB,EAAE;iCAClC;6BACF;4BACD,QAAQ,EAAE,CAAC;yBACZ;qBACF;oBACD,OAAO,EAAE,KAAK;iBACf;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;qBACf;iBACF;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;qBACf;iBACF;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE;4BACL,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;6BACf;yBACF;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;6BACf;yBACF;qBACF;oBACD,oBAAoB,EAAE,KAAK;iBAC5B;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,oBAAoB,EAAE,IAAI;oBAC1B,aAAa,EAAE,CAAC;iBACjB;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC;YAC/C,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD,oBAAoB,EAAE,KAAK;CAC5B,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,20 @@
1
1
  import type { NormalizedRule, ValidationError } from '../types/index.js';
2
+ import type { MarkdocSchema } from '../parser/markdoc/schema.js';
2
3
  /**
3
- * Full validation pipeline
4
+ * Full validation pipeline. `options.configDir` (default `process.cwd()`) is
5
+ * where a relative `markdoc.extend.tagsFile` resolves from -- the directory
6
+ * containing the config file, so a project's `tagsFile: ./tags.yaml` behaves
7
+ * the same regardless of the caller's own working directory.
4
8
  */
5
- export declare function validate(config: any): Promise<{
9
+ export declare function validate(config: any, options?: {
10
+ configDir?: string;
11
+ }): Promise<{
6
12
  isValid: boolean;
7
13
  errors: ValidationError[];
8
14
  rules: NormalizedRule[];
15
+ markdoc: {
16
+ enabled: boolean;
17
+ schema: MarkdocSchema | null;
18
+ };
9
19
  }>;
10
20
  //# sourceMappingURL=validate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/config/validate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,cAAc,EAAE,eAAe,EAAY,MAAM,mBAAmB,CAAC;AA4HlG;;GAEG;AACH,wBAAsB,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB,CAAC,CAkBD"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/config/validate.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAiB,cAAc,EAAE,eAAe,EAAY,MAAM,mBAAmB,CAAC;AAIlG,OAAO,KAAK,EACV,aAAa,EAId,MAAM,6BAA6B,CAAC;AAg3CrC;;;;;GAKG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,GAAG,EACX,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/B,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,KAAK,EAAE,cAAc,EAAE,CAAC;IAQxB,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;KAAE,CAAC;CAC7D,CAAC,CAqHD"}