@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,131 @@
1
+ import { filterByTypes } from '../parser/index.js';
2
+ import { newLineRe } from './line-endings.js';
3
+ /**
4
+ * The character `scopes/extractor.ts` blanks a markdoc tag's span with when
5
+ * building prose content. A SPACE, deliberately, and not
6
+ * `core/inline-code.ts`'s `\0` sentinel:
7
+ *
8
+ * - Recheck's prose model must read a tag's span as a GAP, and the word
9
+ * tokenizers, `String.prototype.trim`, and the sentence splitter all agree on
10
+ * whitespace, so a space makes every one of them treat the tag as absent.
11
+ * - A user-supplied regex must NOT read it as a gap, and no sentinel can give
12
+ * that: `\0` stops `\s+` from crossing a tag, but a negated class (`[^,]+`)
13
+ * walks straight through it either way. Regex rules therefore have to reject
14
+ * a match by RANGE, after the fact, against the unmodified text — see
15
+ * `ScopedSegment.maskedRanges` and `nonProseRanges` in `rules/utils.ts`.
16
+ */
17
+ export const MARKDOC_TAG_MASK_CHAR = ' ';
18
+ /**
19
+ * Every markdoc tag's source span in `content`, split per line (see
20
+ * `MarkdocTagSpan`). Empty for a flag-off parse, since no `markdocTag` tokens
21
+ * exist in the tree at all, so `--fix` behaves byte-identically.
22
+ *
23
+ * Uses `filterByTypes` rather than a raw `tree.flat.filter` so htmlFlow-reparsed
24
+ * tokens are excluded on the same terms as for every other consumer: they
25
+ * duplicate positions already covered by their `htmlFlow` parent, and treating a
26
+ * duplicate as a protected span would block fixes on a line with no real tag.
27
+ */
28
+ export function markdocTagSpans(tree, content) {
29
+ const tags = filterByTypes(tree, ['markdocTag']);
30
+ if (tags.length === 0)
31
+ return [];
32
+ const sourceLines = content.split(newLineRe);
33
+ const spans = [];
34
+ for (const tag of tags) {
35
+ for (let line = tag.startLine; line <= tag.endLine; line++) {
36
+ const sourceLine = sourceLines[line - 1] ?? '';
37
+ const startColumn = line === tag.startLine ? tag.startColumn : 1;
38
+ const endColumn = line === tag.endLine ? tag.endColumn : sourceLine.length + 1;
39
+ if (endColumn <= startColumn)
40
+ continue;
41
+ spans.push({
42
+ line,
43
+ startColumn,
44
+ endColumn,
45
+ text: sourceLine.slice(startColumn - 1, endColumn - 1),
46
+ });
47
+ }
48
+ }
49
+ return spans;
50
+ }
51
+ /**
52
+ * The choke point that keeps `--fix` from rewriting a markdoc tag's bytes.
53
+ *
54
+ * Prose scope content is masked (see `MARKDOC_TAG_MASK_CHAR`), which breaks the
55
+ * precondition every whole-span rewriter relied on: `ScopedSegment.content` used
56
+ * to be a verbatim source slice, so a rule replacing its whole span writes the
57
+ * mask back over the real source and DELETES the tag. Rather than teach each such
58
+ * rule to splice its own tags back, every fix from every rule passes through here
59
+ * once, on its way to `applyFixesToContent`:
60
+ *
61
+ * - No tag on the fix's line, or no overlap with one: passes through untouched.
62
+ * This is the only path a flag-off run can take, so flag-off byte-identity is
63
+ * structural, not a special case.
64
+ * - Overlap where the fix replaces its span with the SAME number of characters:
65
+ * each overlapped tag's original bytes are spliced back at their own offsets.
66
+ * Length preservation is what makes those offsets meaningful, and it is the
67
+ * same contract `restoreInlineCode` (core/inline-code.ts) already relies on.
68
+ * - Anything else — a length-changing replacement, a fix that cuts a tag in half,
69
+ * a whole-line rewrite (`deleteCount: -1`) on a line with a tag — is DROPPED
70
+ * and reported as skipped, since there is no position to splice into without
71
+ * inventing one.
72
+ *
73
+ * A fix that turns out to change nothing once its tags are restored is dropped
74
+ * too: it only matched mask characters, and letting it through would report a
75
+ * byte-identical file as fixed and make `runRulesUntilStable` re-propose it on
76
+ * every pass.
77
+ */
78
+ export function protectMarkdocTags(fixes, spans, content) {
79
+ if (spans.length === 0 || fixes.length === 0)
80
+ return { fixes, dropped: [] };
81
+ const byLine = new Map();
82
+ for (const span of spans) {
83
+ const existing = byLine.get(span.line);
84
+ if (existing)
85
+ existing.push(span);
86
+ else
87
+ byLine.set(span.line, [span]);
88
+ }
89
+ const sourceLines = content.split(newLineRe);
90
+ const safe = [];
91
+ const dropped = [];
92
+ for (const fix of fixes) {
93
+ const lineSpans = byLine.get(fix.lineNumber);
94
+ if (lineSpans === undefined) {
95
+ safe.push(fix);
96
+ continue;
97
+ }
98
+ const deleteCount = fix.deleteCount ?? 0;
99
+ if (deleteCount === -1) {
100
+ dropped.push(fix);
101
+ continue;
102
+ }
103
+ const editColumn = fix.editColumn ?? 1;
104
+ const editEnd = editColumn + deleteCount;
105
+ const overlapped = lineSpans.filter((span) => editColumn < span.endColumn && span.startColumn < editEnd);
106
+ if (overlapped.length === 0) {
107
+ safe.push(fix);
108
+ continue;
109
+ }
110
+ const insertText = fix.insertText ?? '';
111
+ const splittable = insertText.length === deleteCount &&
112
+ overlapped.every((span) => span.startColumn >= editColumn && span.endColumn <= editEnd);
113
+ if (!splittable) {
114
+ dropped.push(fix);
115
+ continue;
116
+ }
117
+ let restored = insertText;
118
+ for (const span of overlapped) {
119
+ const at = span.startColumn - editColumn;
120
+ restored = restored.slice(0, at) + span.text + restored.slice(at + span.text.length);
121
+ }
122
+ const replaced = (sourceLines[fix.lineNumber - 1] ?? '').slice(editColumn - 1, editEnd - 1);
123
+ if (restored === replaced) {
124
+ dropped.push(fix);
125
+ continue;
126
+ }
127
+ safe.push({ ...fix, insertText: restored });
128
+ }
129
+ return { fixes: safe, dropped };
130
+ }
131
+ //# sourceMappingURL=markdoc-tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdoc-tags.js","sourceRoot":"","sources":["../../src/core/markdoc-tags.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,93 @@
1
- import type { Problem, NormalizedRule } from '../types/index.js';
2
- import type { RunOptions } from '../commands/run.js';
3
- export declare function runRecheck(files: string[], rules: NormalizedRule[], options?: RunOptions): Promise<Problem[]>;
1
+ import type { NormalizedRule, Problem } from '../types/index.js';
2
+ import type { Fix } from '../types/index.js';
3
+ import type { ScopeRuleContext } from '../rules/types.js';
4
+ import { type MarkdocSchema } from '../parser/markdoc/schema.js';
5
+ export interface RunnerOptions {
6
+ fix?: boolean;
7
+ /**
8
+ * Cap on the total problems a run may collect, enforced BETWEEN files:
9
+ * once a file's lint pushes the total to (or past) the cap, that file's
10
+ * overflow is truncated and NO further file is linted at all — so a
11
+ * pathological input set can't ballon memory past cap + one file's worth
12
+ * of problems. Runs that hit the cap report `truncated: true` on their
13
+ * RunResult. Omit for unbounded collection (the default).
14
+ */
15
+ maxProblems?: number;
16
+ /**
17
+ * FULL set of configured rule names, used only to decide which inline
18
+ * directive names get an "unknown rule" warning (see core/directives.ts).
19
+ * Callers filter `severity: off` rules out of `rules` before runRules, so
20
+ * without this a directive suppressing an off-rule — a deliberate no-op,
21
+ * not a typo — would warn as unknown. Defaults to the names of `rules`
22
+ * (correct for callers that never pre-filter).
23
+ */
24
+ knownRuleNames?: Set<string>;
25
+ /**
26
+ * Opt-in Markdoc tokenization, passed through to every `parseMarkdown` call
27
+ * this run makes. Defaults to disabled, matching `parseMarkdown`'s own
28
+ * default, which leaves the parse byte-identical.
29
+ */
30
+ markdoc?: boolean;
31
+ /**
32
+ * The resolved schema used to derive `ctx.markdoc.pairing`'s self-closing
33
+ * set; only meaningful alongside `markdoc: true`. `null` or omitted means no
34
+ * schema: parsing and pairing still run, every rule reading
35
+ * `ctx.markdoc.schema` sees `null`, and no tag name counts as self-closing,
36
+ * so an unclosed one lands in `pairing.unclosed` rather than
37
+ * `voidMissingSlash`.
38
+ */
39
+ markdocSchema?: MarkdocSchema | null;
40
+ }
41
+ export interface FileInput {
42
+ path: string;
43
+ content: string;
44
+ metadata?: ScopeRuleContext['fileMetadata'];
45
+ }
46
+ export interface RunResult {
47
+ problems: Problem[];
48
+ fixedFiles: Map<string, string>;
49
+ /**
50
+ * Flat list of the fixes that GENUINELY landed in `fixedFiles`, for
51
+ * reporting. Proposed fixes dropped by the applier's overlap resolution
52
+ * are NOT here — they're in `skippedFixes` (see applyFixesToContent's
53
+ * applied/skipped classification).
54
+ */
55
+ fixes: Fix[];
56
+ /**
57
+ * Proposed fixes that could not be applied (overlapping edits,
58
+ * out-of-range lines). For runRulesUntilStable this holds only the fixes
59
+ * still pending after the final pass — a fix skipped in one pass but
60
+ * re-proposed and applied in a later pass is (correctly) reported in
61
+ * `fixes` instead.
62
+ */
63
+ skippedFixes: Fix[];
64
+ /**
65
+ * True when `RunnerOptions.maxProblems` cut the run short: problems were
66
+ * dropped past the cap and/or later files were never linted. Always false
67
+ * for uncapped runs, and for capped runs whose problem count never
68
+ * exceeded the cap with files left over.
69
+ */
70
+ truncated: boolean;
71
+ }
72
+ export declare function runRules(files: FileInput[], rules: NormalizedRule[], options?: RunnerOptions): Promise<RunResult>;
73
+ /**
74
+ * Runs rules with fix:true repeatedly (lint → apply fixes → re-lint the
75
+ * fixed content) until a pass produces zero fixes, capped at
76
+ * MAX_FIX_PASSES. runRules() itself is single-pass by design (library
77
+ * callers that need convergence should loop, as this helper does). This is
78
+ * what public API's lintFiles() and the CLI's run
79
+ * command use so a single --fix invocation fully converges instead of
80
+ * requiring the user to re-run --fix multiple times.
81
+ *
82
+ * The returned `problems` are from the FIRST pass (matching prior
83
+ * single-pass behavior: --fix reports the issues it found/fixed, not the
84
+ * post-fix state) while `fixedFiles` reflects the final, fully-converged
85
+ * content. `fixes` is the flat list of every fix genuinely applied across
86
+ * all passes; `skippedFixes` holds only the fixes still pending after the
87
+ * final pass. A fix skipped mid-run (overlap) is normally re-proposed
88
+ * against the fixed content and applied by a later pass — it then counts
89
+ * in `fixes`, not `skippedFixes` — so a non-empty `skippedFixes` here
90
+ * means the run hit MAX_FIX_PASSES with conflicting edits unresolved.
91
+ */
92
+ export declare function runRulesUntilStable(files: FileInput[], rules: NormalizedRule[], options?: Omit<RunnerOptions, 'fix'>): Promise<RunResult>;
4
93
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AA0DrD,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,OAAO,EAAE,CAAC,CAsGpB"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,mBAAmB,CAAC;AAc5E,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEtF,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC;;;;;OAKG;IACH,KAAK,EAAE,GAAG,EAAE,CAAC;IACb;;;;;;OAMG;IACH,YAAY,EAAE,GAAG,EAAE,CAAC;IACpB;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AA0ED,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,SAAS,EAAE,EAClB,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,SAAS,CAAC,CAqPpB;AAOD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,SAAS,EAAE,EAClB,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,GAAE,IAAI,CAAC,aAAa,EAAE,KAAK,CAAM,GACvC,OAAO,CAAC,SAAS,CAAC,CAuCpB"}