@alexlit/lint-kit 214.0.0 → 214.1.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 (429) hide show
  1. package/package.json +1 -1
  2. package/packages/config-eslint/package.json +4 -4
  3. package/packages/config-markdownlint/node_modules/ansi-regex/index.d.ts +33 -0
  4. package/packages/config-markdownlint/node_modules/ansi-regex/index.js +15 -0
  5. package/packages/config-markdownlint/node_modules/ansi-regex/license +9 -0
  6. package/packages/config-markdownlint/node_modules/ansi-regex/package.json +61 -0
  7. package/packages/config-markdownlint/node_modules/ansi-regex/readme.md +66 -0
  8. package/packages/config-markdownlint/node_modules/markdownlint/CHANGELOG.md +553 -0
  9. package/packages/config-markdownlint/node_modules/markdownlint/CONTRIBUTING.md +77 -0
  10. package/packages/config-markdownlint/node_modules/markdownlint/LICENSE +21 -0
  11. package/packages/config-markdownlint/node_modules/markdownlint/README.md +1112 -0
  12. package/packages/config-markdownlint/node_modules/markdownlint/doc/CustomRules.md +196 -0
  13. package/packages/config-markdownlint/node_modules/markdownlint/doc/Prettier.md +27 -0
  14. package/packages/config-markdownlint/node_modules/markdownlint/doc/ReleaseProcess.md +20 -0
  15. package/packages/config-markdownlint/node_modules/markdownlint/doc/Rules.md +2909 -0
  16. package/packages/config-markdownlint/node_modules/markdownlint/doc/md001.md +51 -0
  17. package/packages/config-markdownlint/node_modules/markdownlint/doc/md003.md +59 -0
  18. package/packages/config-markdownlint/node_modules/markdownlint/doc/md004.md +50 -0
  19. package/packages/config-markdownlint/node_modules/markdownlint/doc/md005.md +53 -0
  20. package/packages/config-markdownlint/node_modules/markdownlint/doc/md007.md +52 -0
  21. package/packages/config-markdownlint/node_modules/markdownlint/doc/md009.md +50 -0
  22. package/packages/config-markdownlint/node_modules/markdownlint/doc/md010.md +61 -0
  23. package/packages/config-markdownlint/node_modules/markdownlint/doc/md011.md +30 -0
  24. package/packages/config-markdownlint/node_modules/markdownlint/doc/md012.md +38 -0
  25. package/packages/config-markdownlint/node_modules/markdownlint/doc/md013.md +58 -0
  26. package/packages/config-markdownlint/node_modules/markdownlint/doc/md014.md +54 -0
  27. package/packages/config-markdownlint/node_modules/markdownlint/doc/md018.md +27 -0
  28. package/packages/config-markdownlint/node_modules/markdownlint/doc/md019.md +28 -0
  29. package/packages/config-markdownlint/node_modules/markdownlint/doc/md020.md +29 -0
  30. package/packages/config-markdownlint/node_modules/markdownlint/doc/md021.md +31 -0
  31. package/packages/config-markdownlint/node_modules/markdownlint/doc/md022.md +67 -0
  32. package/packages/config-markdownlint/node_modules/markdownlint/doc/md023.md +33 -0
  33. package/packages/config-markdownlint/node_modules/markdownlint/doc/md024.md +44 -0
  34. package/packages/config-markdownlint/node_modules/markdownlint/doc/md025.md +49 -0
  35. package/packages/config-markdownlint/node_modules/markdownlint/doc/md026.md +40 -0
  36. package/packages/config-markdownlint/node_modules/markdownlint/doc/md027.md +32 -0
  37. package/packages/config-markdownlint/node_modules/markdownlint/doc/md028.md +44 -0
  38. package/packages/config-markdownlint/node_modules/markdownlint/doc/md029.md +110 -0
  39. package/packages/config-markdownlint/node_modules/markdownlint/doc/md030.md +82 -0
  40. package/packages/config-markdownlint/node_modules/markdownlint/doc/md031.md +50 -0
  41. package/packages/config-markdownlint/node_modules/markdownlint/doc/md032.md +55 -0
  42. package/packages/config-markdownlint/node_modules/markdownlint/doc/md033.md +33 -0
  43. package/packages/config-markdownlint/node_modules/markdownlint/doc/md034.md +55 -0
  44. package/packages/config-markdownlint/node_modules/markdownlint/doc/md035.md +44 -0
  45. package/packages/config-markdownlint/node_modules/markdownlint/doc/md036.md +45 -0
  46. package/packages/config-markdownlint/node_modules/markdownlint/doc/md037.md +37 -0
  47. package/packages/config-markdownlint/node_modules/markdownlint/doc/md038.md +52 -0
  48. package/packages/config-markdownlint/node_modules/markdownlint/doc/md039.md +21 -0
  49. package/packages/config-markdownlint/node_modules/markdownlint/doc/md040.md +52 -0
  50. package/packages/config-markdownlint/node_modules/markdownlint/doc/md041.md +64 -0
  51. package/packages/config-markdownlint/node_modules/markdownlint/doc/md042.md +38 -0
  52. package/packages/config-markdownlint/node_modules/markdownlint/doc/md043.md +125 -0
  53. package/packages/config-markdownlint/node_modules/markdownlint/doc/md044.md +45 -0
  54. package/packages/config-markdownlint/node_modules/markdownlint/doc/md045.md +48 -0
  55. package/packages/config-markdownlint/node_modules/markdownlint/doc/md046.md +40 -0
  56. package/packages/config-markdownlint/node_modules/markdownlint/doc/md047.md +34 -0
  57. package/packages/config-markdownlint/node_modules/markdownlint/doc/md048.md +42 -0
  58. package/packages/config-markdownlint/node_modules/markdownlint/doc/md049.md +36 -0
  59. package/packages/config-markdownlint/node_modules/markdownlint/doc/md050.md +35 -0
  60. package/packages/config-markdownlint/node_modules/markdownlint/doc/md051.md +117 -0
  61. package/packages/config-markdownlint/node_modules/markdownlint/doc/md052.md +52 -0
  62. package/packages/config-markdownlint/node_modules/markdownlint/doc/md053.md +38 -0
  63. package/packages/config-markdownlint/node_modules/markdownlint/doc/md054.md +100 -0
  64. package/packages/config-markdownlint/node_modules/markdownlint/doc/md055.md +58 -0
  65. package/packages/config-markdownlint/node_modules/markdownlint/doc/md056.md +37 -0
  66. package/packages/config-markdownlint/node_modules/markdownlint/doc/md058.md +48 -0
  67. package/packages/config-markdownlint/node_modules/markdownlint/doc/md059.md +33 -0
  68. package/packages/config-markdownlint/node_modules/markdownlint/doc/md060.md +131 -0
  69. package/packages/config-markdownlint/node_modules/markdownlint/helpers/LICENSE +21 -0
  70. package/packages/config-markdownlint/node_modules/markdownlint/helpers/README.md +29 -0
  71. package/packages/config-markdownlint/node_modules/markdownlint/helpers/helpers.cjs +711 -0
  72. package/packages/config-markdownlint/node_modules/markdownlint/helpers/micromark-helpers.cjs +328 -0
  73. package/packages/config-markdownlint/node_modules/markdownlint/helpers/package.json +22 -0
  74. package/packages/config-markdownlint/node_modules/markdownlint/helpers/shared.cjs +16 -0
  75. package/packages/config-markdownlint/node_modules/markdownlint/lib/cache.mjs +81 -0
  76. package/packages/config-markdownlint/node_modules/markdownlint/lib/configuration-strict.d.ts +2429 -0
  77. package/packages/config-markdownlint/node_modules/markdownlint/lib/configuration.d.ts +8 -0
  78. package/packages/config-markdownlint/node_modules/markdownlint/lib/constants.mjs +14 -0
  79. package/packages/config-markdownlint/node_modules/markdownlint/lib/defer-require.cjs +19 -0
  80. package/packages/config-markdownlint/node_modules/markdownlint/lib/exports-async.d.mts +1 -0
  81. package/packages/config-markdownlint/node_modules/markdownlint/lib/exports-async.mjs +3 -0
  82. package/packages/config-markdownlint/node_modules/markdownlint/lib/exports-promise.d.mts +1 -0
  83. package/packages/config-markdownlint/node_modules/markdownlint/lib/exports-promise.mjs +3 -0
  84. package/packages/config-markdownlint/node_modules/markdownlint/lib/exports-sync.d.mts +1 -0
  85. package/packages/config-markdownlint/node_modules/markdownlint/lib/exports-sync.mjs +3 -0
  86. package/packages/config-markdownlint/node_modules/markdownlint/lib/exports.d.mts +58 -0
  87. package/packages/config-markdownlint/node_modules/markdownlint/lib/exports.mjs +33 -0
  88. package/packages/config-markdownlint/node_modules/markdownlint/lib/markdownit.cjs +178 -0
  89. package/packages/config-markdownlint/node_modules/markdownlint/lib/markdownlint.d.mts +757 -0
  90. package/packages/config-markdownlint/node_modules/markdownlint/lib/markdownlint.mjs +1588 -0
  91. package/packages/config-markdownlint/node_modules/markdownlint/lib/md001.mjs +32 -0
  92. package/packages/config-markdownlint/node_modules/markdownlint/lib/md003.mjs +47 -0
  93. package/packages/config-markdownlint/node_modules/markdownlint/lib/md004.mjs +73 -0
  94. package/packages/config-markdownlint/node_modules/markdownlint/lib/md005.mjs +69 -0
  95. package/packages/config-markdownlint/node_modules/markdownlint/lib/md007.mjs +84 -0
  96. package/packages/config-markdownlint/node_modules/markdownlint/lib/md009.mjs +95 -0
  97. package/packages/config-markdownlint/node_modules/markdownlint/lib/md010.mjs +78 -0
  98. package/packages/config-markdownlint/node_modules/markdownlint/lib/md011.mjs +59 -0
  99. package/packages/config-markdownlint/node_modules/markdownlint/lib/md012.mjs +40 -0
  100. package/packages/config-markdownlint/node_modules/markdownlint/lib/md013.mjs +95 -0
  101. package/packages/config-markdownlint/node_modules/markdownlint/lib/md014.mjs +47 -0
  102. package/packages/config-markdownlint/node_modules/markdownlint/lib/md018.mjs +43 -0
  103. package/packages/config-markdownlint/node_modules/markdownlint/lib/md019-md021.mjs +78 -0
  104. package/packages/config-markdownlint/node_modules/markdownlint/lib/md020.mjs +68 -0
  105. package/packages/config-markdownlint/node_modules/markdownlint/lib/md022.mjs +103 -0
  106. package/packages/config-markdownlint/node_modules/markdownlint/lib/md023.mjs +37 -0
  107. package/packages/config-markdownlint/node_modules/markdownlint/lib/md024.mjs +45 -0
  108. package/packages/config-markdownlint/node_modules/markdownlint/lib/md025.mjs +45 -0
  109. package/packages/config-markdownlint/node_modules/markdownlint/lib/md026.mjs +46 -0
  110. package/packages/config-markdownlint/node_modules/markdownlint/lib/md027.mjs +50 -0
  111. package/packages/config-markdownlint/node_modules/markdownlint/lib/md028.mjs +38 -0
  112. package/packages/config-markdownlint/node_modules/markdownlint/lib/md029.mjs +95 -0
  113. package/packages/config-markdownlint/node_modules/markdownlint/lib/md030.mjs +57 -0
  114. package/packages/config-markdownlint/node_modules/markdownlint/lib/md031.mjs +61 -0
  115. package/packages/config-markdownlint/node_modules/markdownlint/lib/md032.mjs +79 -0
  116. package/packages/config-markdownlint/node_modules/markdownlint/lib/md033.mjs +46 -0
  117. package/packages/config-markdownlint/node_modules/markdownlint/lib/md034.mjs +92 -0
  118. package/packages/config-markdownlint/node_modules/markdownlint/lib/md035.mjs +23 -0
  119. package/packages/config-markdownlint/node_modules/markdownlint/lib/md036.mjs +55 -0
  120. package/packages/config-markdownlint/node_modules/markdownlint/lib/md037.mjs +93 -0
  121. package/packages/config-markdownlint/node_modules/markdownlint/lib/md038.mjs +73 -0
  122. package/packages/config-markdownlint/node_modules/markdownlint/lib/md039.mjs +63 -0
  123. package/packages/config-markdownlint/node_modules/markdownlint/lib/md040.mjs +32 -0
  124. package/packages/config-markdownlint/node_modules/markdownlint/lib/md041.mjs +71 -0
  125. package/packages/config-markdownlint/node_modules/markdownlint/lib/md042.mjs +58 -0
  126. package/packages/config-markdownlint/node_modules/markdownlint/lib/md043.mjs +126 -0
  127. package/packages/config-markdownlint/node_modules/markdownlint/lib/md044.mjs +110 -0
  128. package/packages/config-markdownlint/node_modules/markdownlint/lib/md045.mjs +61 -0
  129. package/packages/config-markdownlint/node_modules/markdownlint/lib/md046.mjs +31 -0
  130. package/packages/config-markdownlint/node_modules/markdownlint/lib/md047.mjs +28 -0
  131. package/packages/config-markdownlint/node_modules/markdownlint/lib/md048.mjs +45 -0
  132. package/packages/config-markdownlint/node_modules/markdownlint/lib/md049-md050.mjs +115 -0
  133. package/packages/config-markdownlint/node_modules/markdownlint/lib/md051.mjs +173 -0
  134. package/packages/config-markdownlint/node_modules/markdownlint/lib/md052.mjs +40 -0
  135. package/packages/config-markdownlint/node_modules/markdownlint/lib/md053.mjs +60 -0
  136. package/packages/config-markdownlint/node_modules/markdownlint/lib/md054.mjs +122 -0
  137. package/packages/config-markdownlint/node_modules/markdownlint/lib/md055.mjs +82 -0
  138. package/packages/config-markdownlint/node_modules/markdownlint/lib/md056.mjs +50 -0
  139. package/packages/config-markdownlint/node_modules/markdownlint/lib/md058.mjs +57 -0
  140. package/packages/config-markdownlint/node_modules/markdownlint/lib/md059.mjs +71 -0
  141. package/packages/config-markdownlint/node_modules/markdownlint/lib/md060.mjs +229 -0
  142. package/packages/config-markdownlint/node_modules/markdownlint/lib/micromark-parse.mjs +338 -0
  143. package/packages/config-markdownlint/node_modules/markdownlint/lib/micromark-types.d.mts +11 -0
  144. package/packages/config-markdownlint/node_modules/markdownlint/lib/node-imports-browser.mjs +22 -0
  145. package/packages/config-markdownlint/node_modules/markdownlint/lib/node-imports-node.mjs +11 -0
  146. package/packages/config-markdownlint/node_modules/markdownlint/lib/parse-configuration.mjs +47 -0
  147. package/packages/config-markdownlint/node_modules/markdownlint/lib/resolve-module.cjs +53 -0
  148. package/packages/config-markdownlint/node_modules/markdownlint/lib/resolve-module.d.cts +39 -0
  149. package/packages/config-markdownlint/node_modules/markdownlint/lib/rules.mjs +122 -0
  150. package/packages/config-markdownlint/node_modules/markdownlint/lib/types.d.mts +13 -0
  151. package/packages/config-markdownlint/node_modules/markdownlint/package.json +119 -0
  152. package/packages/config-markdownlint/node_modules/markdownlint/schema/.markdownlint.jsonc +349 -0
  153. package/packages/config-markdownlint/node_modules/markdownlint/schema/.markdownlint.yaml +310 -0
  154. package/packages/config-markdownlint/node_modules/markdownlint/schema/ValidatingConfiguration.md +26 -0
  155. package/packages/config-markdownlint/node_modules/markdownlint/schema/markdownlint-config-schema-strict.json +5146 -0
  156. package/packages/config-markdownlint/node_modules/markdownlint/schema/markdownlint-config-schema.json +5151 -0
  157. package/packages/config-markdownlint/node_modules/markdownlint/style/all.json +5 -0
  158. package/packages/config-markdownlint/node_modules/markdownlint/style/cirosantilli.json +22 -0
  159. package/packages/config-markdownlint/node_modules/markdownlint/style/prettier.json +27 -0
  160. package/packages/config-markdownlint/node_modules/markdownlint/style/relaxed.json +12 -0
  161. package/packages/config-markdownlint/node_modules/micromark/dev/index.d.ts +82 -0
  162. package/packages/config-markdownlint/node_modules/micromark/dev/index.d.ts.map +1 -0
  163. package/packages/config-markdownlint/node_modules/micromark/dev/index.js +68 -0
  164. package/packages/config-markdownlint/node_modules/micromark/dev/lib/compile.d.ts +16 -0
  165. package/packages/config-markdownlint/node_modules/micromark/dev/lib/compile.d.ts.map +1 -0
  166. package/packages/config-markdownlint/node_modules/micromark/dev/lib/compile.js +1162 -0
  167. package/packages/config-markdownlint/node_modules/micromark/dev/lib/constructs.d.ts +73 -0
  168. package/packages/config-markdownlint/node_modules/micromark/dev/lib/constructs.d.ts.map +1 -0
  169. package/packages/config-markdownlint/node_modules/micromark/dev/lib/constructs.js +101 -0
  170. package/packages/config-markdownlint/node_modules/micromark/dev/lib/create-tokenizer.d.ts +46 -0
  171. package/packages/config-markdownlint/node_modules/micromark/dev/lib/create-tokenizer.d.ts.map +1 -0
  172. package/packages/config-markdownlint/node_modules/micromark/dev/lib/create-tokenizer.js +718 -0
  173. package/packages/config-markdownlint/node_modules/micromark/dev/lib/initialize/content.d.ts +4 -0
  174. package/packages/config-markdownlint/node_modules/micromark/dev/lib/initialize/content.d.ts.map +1 -0
  175. package/packages/config-markdownlint/node_modules/micromark/dev/lib/initialize/content.js +99 -0
  176. package/packages/config-markdownlint/node_modules/micromark/dev/lib/initialize/document.d.ts +10 -0
  177. package/packages/config-markdownlint/node_modules/micromark/dev/lib/initialize/document.d.ts.map +1 -0
  178. package/packages/config-markdownlint/node_modules/micromark/dev/lib/initialize/document.js +449 -0
  179. package/packages/config-markdownlint/node_modules/micromark/dev/lib/initialize/flow.d.ts +4 -0
  180. package/packages/config-markdownlint/node_modules/micromark/dev/lib/initialize/flow.d.ts.map +1 -0
  181. package/packages/config-markdownlint/node_modules/micromark/dev/lib/initialize/flow.js +86 -0
  182. package/packages/config-markdownlint/node_modules/micromark/dev/lib/initialize/text.d.ts +8 -0
  183. package/packages/config-markdownlint/node_modules/micromark/dev/lib/initialize/text.d.ts.map +1 -0
  184. package/packages/config-markdownlint/node_modules/micromark/dev/lib/initialize/text.js +248 -0
  185. package/packages/config-markdownlint/node_modules/micromark/dev/lib/parse.d.ts +10 -0
  186. package/packages/config-markdownlint/node_modules/micromark/dev/lib/parse.d.ts.map +1 -0
  187. package/packages/config-markdownlint/node_modules/micromark/dev/lib/parse.js +58 -0
  188. package/packages/config-markdownlint/node_modules/micromark/dev/lib/postprocess.d.ts +9 -0
  189. package/packages/config-markdownlint/node_modules/micromark/dev/lib/postprocess.d.ts.map +1 -0
  190. package/packages/config-markdownlint/node_modules/micromark/dev/lib/postprocess.js +19 -0
  191. package/packages/config-markdownlint/node_modules/micromark/dev/lib/preprocess.d.ts +13 -0
  192. package/packages/config-markdownlint/node_modules/micromark/dev/lib/preprocess.d.ts.map +1 -0
  193. package/packages/config-markdownlint/node_modules/micromark/dev/lib/preprocess.js +139 -0
  194. package/packages/config-markdownlint/node_modules/micromark/dev/stream.d.ts +35 -0
  195. package/packages/config-markdownlint/node_modules/micromark/dev/stream.d.ts.map +1 -0
  196. package/packages/config-markdownlint/node_modules/micromark/dev/stream.js +270 -0
  197. package/packages/config-markdownlint/node_modules/micromark/index.d.ts +82 -0
  198. package/packages/config-markdownlint/node_modules/micromark/index.d.ts.map +1 -0
  199. package/packages/config-markdownlint/node_modules/micromark/index.js +60 -0
  200. package/packages/config-markdownlint/node_modules/micromark/lib/compile.d.ts +16 -0
  201. package/packages/config-markdownlint/node_modules/micromark/lib/compile.d.ts.map +1 -0
  202. package/packages/config-markdownlint/node_modules/micromark/lib/compile.js +1068 -0
  203. package/packages/config-markdownlint/node_modules/micromark/lib/constructs.d.ts +73 -0
  204. package/packages/config-markdownlint/node_modules/micromark/lib/constructs.d.ts.map +1 -0
  205. package/packages/config-markdownlint/node_modules/micromark/lib/constructs.js +85 -0
  206. package/packages/config-markdownlint/node_modules/micromark/lib/create-tokenizer.d.ts +46 -0
  207. package/packages/config-markdownlint/node_modules/micromark/lib/create-tokenizer.d.ts.map +1 -0
  208. package/packages/config-markdownlint/node_modules/micromark/lib/create-tokenizer.js +613 -0
  209. package/packages/config-markdownlint/node_modules/micromark/lib/initialize/content.d.ts +4 -0
  210. package/packages/config-markdownlint/node_modules/micromark/lib/initialize/content.d.ts.map +1 -0
  211. package/packages/config-markdownlint/node_modules/micromark/lib/initialize/content.js +79 -0
  212. package/packages/config-markdownlint/node_modules/micromark/lib/initialize/document.d.ts +10 -0
  213. package/packages/config-markdownlint/node_modules/micromark/lib/initialize/document.d.ts.map +1 -0
  214. package/packages/config-markdownlint/node_modules/micromark/lib/initialize/document.js +370 -0
  215. package/packages/config-markdownlint/node_modules/micromark/lib/initialize/flow.d.ts +4 -0
  216. package/packages/config-markdownlint/node_modules/micromark/lib/initialize/flow.d.ts.map +1 -0
  217. package/packages/config-markdownlint/node_modules/micromark/lib/initialize/flow.js +58 -0
  218. package/packages/config-markdownlint/node_modules/micromark/lib/initialize/text.d.ts +8 -0
  219. package/packages/config-markdownlint/node_modules/micromark/lib/initialize/text.d.ts.map +1 -0
  220. package/packages/config-markdownlint/node_modules/micromark/lib/initialize/text.js +216 -0
  221. package/packages/config-markdownlint/node_modules/micromark/lib/parse.d.ts +10 -0
  222. package/packages/config-markdownlint/node_modules/micromark/lib/parse.d.ts.map +1 -0
  223. package/packages/config-markdownlint/node_modules/micromark/lib/parse.js +56 -0
  224. package/packages/config-markdownlint/node_modules/micromark/lib/postprocess.d.ts +9 -0
  225. package/packages/config-markdownlint/node_modules/micromark/lib/postprocess.d.ts.map +1 -0
  226. package/packages/config-markdownlint/node_modules/micromark/lib/postprocess.js +18 -0
  227. package/packages/config-markdownlint/node_modules/micromark/lib/preprocess.d.ts +13 -0
  228. package/packages/config-markdownlint/node_modules/micromark/lib/preprocess.d.ts.map +1 -0
  229. package/packages/config-markdownlint/node_modules/micromark/lib/preprocess.js +112 -0
  230. package/packages/config-markdownlint/node_modules/micromark/license +22 -0
  231. package/packages/config-markdownlint/node_modules/micromark/package.json +87 -0
  232. package/packages/config-markdownlint/node_modules/micromark/readme.md +488 -0
  233. package/packages/config-markdownlint/node_modules/micromark/stream.d.ts +35 -0
  234. package/packages/config-markdownlint/node_modules/micromark/stream.d.ts.map +1 -0
  235. package/packages/config-markdownlint/node_modules/micromark/stream.js +256 -0
  236. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/index.d.ts +23 -0
  237. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/index.d.ts.map +1 -0
  238. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/index.js +22 -0
  239. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/attention.d.ts +4 -0
  240. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/attention.d.ts.map +1 -0
  241. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/attention.js +294 -0
  242. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/autolink.d.ts +4 -0
  243. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/autolink.d.ts.map +1 -0
  244. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/autolink.js +269 -0
  245. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/blank-line.d.ts +4 -0
  246. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/blank-line.d.ts.map +1 -0
  247. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/blank-line.js +62 -0
  248. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/block-quote.d.ts +4 -0
  249. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/block-quote.d.ts.map +1 -0
  250. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/block-quote.js +162 -0
  251. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/character-escape.d.ts +4 -0
  252. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/character-escape.d.ts.map +1 -0
  253. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/character-escape.js +69 -0
  254. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/character-reference.d.ts +4 -0
  255. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/character-reference.d.ts.map +1 -0
  256. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/character-reference.js +166 -0
  257. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/code-fenced.d.ts +4 -0
  258. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/code-fenced.d.ts.map +1 -0
  259. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/code-fenced.js +472 -0
  260. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/code-indented.d.ts +4 -0
  261. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/code-indented.d.ts.map +1 -0
  262. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/code-indented.js +178 -0
  263. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/code-text.d.ts +4 -0
  264. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/code-text.d.ts.map +1 -0
  265. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/code-text.js +257 -0
  266. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/content.d.ts +7 -0
  267. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/content.d.ts.map +1 -0
  268. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/content.js +185 -0
  269. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/definition.d.ts +4 -0
  270. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/definition.d.ts.map +1 -0
  271. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/definition.js +295 -0
  272. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.d.ts +4 -0
  273. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.d.ts.map +1 -0
  274. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js +65 -0
  275. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/heading-atx.d.ts +4 -0
  276. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/heading-atx.d.ts.map +1 -0
  277. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/heading-atx.js +229 -0
  278. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/html-flow.d.ts +4 -0
  279. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/html-flow.d.ts.map +1 -0
  280. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/html-flow.js +938 -0
  281. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/html-text.d.ts +4 -0
  282. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/html-text.d.ts.map +1 -0
  283. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/html-text.js +783 -0
  284. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/label-end.d.ts +4 -0
  285. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/label-end.d.ts.map +1 -0
  286. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/label-end.js +658 -0
  287. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/label-start-image.d.ts +4 -0
  288. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/label-start-image.d.ts.map +1 -0
  289. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/label-start-image.js +119 -0
  290. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/label-start-link.d.ts +4 -0
  291. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/label-start-link.d.ts.map +1 -0
  292. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/label-start-link.js +71 -0
  293. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/line-ending.d.ts +4 -0
  294. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/line-ending.d.ts.map +1 -0
  295. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/line-ending.js +34 -0
  296. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/list.d.ts +4 -0
  297. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/list.d.ts.map +1 -0
  298. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/list.js +306 -0
  299. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/partial-non-lazy-continuation.d.ts +4 -0
  300. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/partial-non-lazy-continuation.d.ts.map +1 -0
  301. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/partial-non-lazy-continuation.js +67 -0
  302. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/setext-underline.d.ts +4 -0
  303. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/setext-underline.d.ts.map +1 -0
  304. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/setext-underline.js +213 -0
  305. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/thematic-break.d.ts +4 -0
  306. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/thematic-break.d.ts.map +1 -0
  307. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/dev/lib/thematic-break.js +120 -0
  308. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/index.d.ts +23 -0
  309. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/index.d.ts.map +1 -0
  310. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/index.js +22 -0
  311. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/attention.d.ts +4 -0
  312. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/attention.d.ts.map +1 -0
  313. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/attention.js +231 -0
  314. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/autolink.d.ts +4 -0
  315. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/autolink.d.ts.map +1 -0
  316. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/autolink.js +233 -0
  317. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/blank-line.d.ts +4 -0
  318. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/blank-line.d.ts.map +1 -0
  319. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/blank-line.js +61 -0
  320. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/block-quote.d.ts +4 -0
  321. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/block-quote.d.ts.map +1 -0
  322. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/block-quote.js +143 -0
  323. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/character-escape.d.ts +4 -0
  324. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/character-escape.d.ts.map +1 -0
  325. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/character-escape.js +64 -0
  326. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/character-reference.d.ts +4 -0
  327. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/character-reference.d.ts.map +1 -0
  328. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/character-reference.js +149 -0
  329. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/code-fenced.d.ts +4 -0
  330. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/code-fenced.d.ts.map +1 -0
  331. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/code-fenced.js +422 -0
  332. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/code-indented.d.ts +4 -0
  333. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/code-indented.d.ts.map +1 -0
  334. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/code-indented.js +159 -0
  335. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/code-text.d.ts +4 -0
  336. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/code-text.d.ts.map +1 -0
  337. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/code-text.js +225 -0
  338. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/content.d.ts +7 -0
  339. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/content.d.ts.map +1 -0
  340. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/content.js +163 -0
  341. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/definition.d.ts +4 -0
  342. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/definition.d.ts.map +1 -0
  343. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/definition.js +254 -0
  344. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/hard-break-escape.d.ts +4 -0
  345. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/hard-break-escape.d.ts.map +1 -0
  346. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/hard-break-escape.js +60 -0
  347. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/heading-atx.d.ts +4 -0
  348. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/heading-atx.d.ts.map +1 -0
  349. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/heading-atx.js +191 -0
  350. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/html-flow.d.ts +4 -0
  351. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/html-flow.d.ts.map +1 -0
  352. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/html-flow.js +827 -0
  353. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/html-text.d.ts +4 -0
  354. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/html-text.d.ts.map +1 -0
  355. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/html-text.js +678 -0
  356. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/label-end.d.ts +4 -0
  357. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/label-end.d.ts.map +1 -0
  358. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/label-end.js +561 -0
  359. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/label-start-image.d.ts +4 -0
  360. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/label-start-image.d.ts.map +1 -0
  361. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/label-start-image.js +110 -0
  362. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/label-start-link.d.ts +4 -0
  363. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/label-start-link.d.ts.map +1 -0
  364. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/label-start-link.js +63 -0
  365. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/line-ending.d.ts +4 -0
  366. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/line-ending.d.ts.map +1 -0
  367. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/line-ending.js +33 -0
  368. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/list.d.ts +4 -0
  369. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/list.d.ts.map +1 -0
  370. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/list.js +213 -0
  371. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.d.ts +4 -0
  372. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.d.ts.map +1 -0
  373. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.js +61 -0
  374. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/setext-underline.d.ts +4 -0
  375. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/setext-underline.d.ts.map +1 -0
  376. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/setext-underline.js +187 -0
  377. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/thematic-break.d.ts +4 -0
  378. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/thematic-break.d.ts.map +1 -0
  379. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/lib/thematic-break.js +102 -0
  380. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/license +22 -0
  381. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/package.json +62 -0
  382. package/packages/config-markdownlint/node_modules/micromark-core-commonmark/readme.md +171 -0
  383. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/dev/index.d.ts +55 -0
  384. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/dev/index.js +2 -0
  385. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/dev/lib/edit-map.d.ts +51 -0
  386. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/dev/lib/edit-map.d.ts.map +1 -0
  387. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/dev/lib/edit-map.js +231 -0
  388. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/dev/lib/html.d.ts +11 -0
  389. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/dev/lib/html.d.ts.map +1 -0
  390. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/dev/lib/html.js +153 -0
  391. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/dev/lib/infer.d.ts +14 -0
  392. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/dev/lib/infer.d.ts.map +1 -0
  393. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/dev/lib/infer.js +64 -0
  394. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/dev/lib/syntax.d.ts +18 -0
  395. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/dev/lib/syntax.d.ts.map +1 -0
  396. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/dev/lib/syntax.js +964 -0
  397. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/index.d.ts +55 -0
  398. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/index.js +2 -0
  399. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/lib/edit-map.d.ts +51 -0
  400. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/lib/edit-map.d.ts.map +1 -0
  401. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/lib/edit-map.js +222 -0
  402. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/lib/html.d.ts +11 -0
  403. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/lib/html.d.ts.map +1 -0
  404. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/lib/html.js +135 -0
  405. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/lib/infer.d.ts +14 -0
  406. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/lib/infer.d.ts.map +1 -0
  407. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/lib/infer.js +52 -0
  408. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/lib/syntax.d.ts +18 -0
  409. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/lib/syntax.d.ts.map +1 -0
  410. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/lib/syntax.js +846 -0
  411. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/license +22 -0
  412. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/package.json +86 -0
  413. package/packages/config-markdownlint/node_modules/micromark-extension-gfm-table/readme.md +515 -0
  414. package/packages/config-markdownlint/node_modules/micromark-util-types/index.d.ts +1315 -0
  415. package/packages/config-markdownlint/node_modules/micromark-util-types/index.js +2 -0
  416. package/packages/config-markdownlint/node_modules/micromark-util-types/license +22 -0
  417. package/packages/config-markdownlint/node_modules/micromark-util-types/package.json +37 -0
  418. package/packages/config-markdownlint/node_modules/micromark-util-types/readme.md +151 -0
  419. package/packages/config-markdownlint/node_modules/string-width/index.d.ts +39 -0
  420. package/packages/config-markdownlint/node_modules/string-width/index.js +203 -0
  421. package/packages/config-markdownlint/node_modules/string-width/license +9 -0
  422. package/packages/config-markdownlint/node_modules/string-width/package.json +65 -0
  423. package/packages/config-markdownlint/node_modules/string-width/readme.md +66 -0
  424. package/packages/config-markdownlint/node_modules/strip-ansi/index.d.ts +15 -0
  425. package/packages/config-markdownlint/node_modules/strip-ansi/index.js +19 -0
  426. package/packages/config-markdownlint/node_modules/strip-ansi/license +9 -0
  427. package/packages/config-markdownlint/node_modules/strip-ansi/package.json +59 -0
  428. package/packages/config-markdownlint/node_modules/strip-ansi/readme.md +37 -0
  429. package/packages/config-markdownlint/package.json +2 -2
@@ -0,0 +1,711 @@
1
+ // @ts-check
2
+
3
+ "use strict";
4
+
5
+ const micromark = require("./micromark-helpers.cjs");
6
+ const { newlineRe, nextLinesRe } = require("./shared.cjs");
7
+
8
+ module.exports.newLineRe = newlineRe;
9
+ module.exports.nextLinesRe = nextLinesRe;
10
+
11
+ /** @typedef {import("../lib/exports.mjs").RuleOnError} RuleOnError */
12
+ /** @typedef {import("../lib/exports.mjs").RuleOnErrorFixInfo} RuleOnErrorFixInfo */
13
+ /** @typedef {import("../lib/exports.mjs").MicromarkToken} MicromarkToken */
14
+ // eslint-disable-next-line jsdoc/valid-types
15
+ /** @typedef {typeof import("micromark-extension-gfm-footnote", { with: { "resolution-mode": "import" } })} _ambient_ */
16
+ // eslint-disable-next-line jsdoc/valid-types
17
+ /** @typedef {typeof import("../lib/micromark-types.d.mts", { with: { "resolution-mode": "import" } })} _ambient_2_ */
18
+
19
+ // Regular expression for matching common front matter (YAML and TOML)
20
+ // Potential for regular expression denial of service is mitigated at point-of-use via "re2js" package
21
+ module.exports.frontMatterRe =
22
+ // eslint-disable-next-line redos/no-vulnerable, unicorn/prefer-unicode-code-point-escapes
23
+ /((^---[^\S\r\n\u2028\u2029]*$[\s\S]+?^---\s*)|(^\+\+\+[^\S\r\n\u2028\u2029]*$[\s\S]+?^(\+\+\+|\.\.\.)\s*)|(^\{[^\S\r\n\u2028\u2029]*$[\s\S]+?^\}\s*))(\r\n|\r|\n|$)/m;
24
+
25
+ // Regular expression for matching the start of inline disable/enable comments
26
+ const inlineCommentStartRe =
27
+ /(<!--\s*markdownlint-(disable|enable|capture|restore|disable-file|enable-file|disable-line|disable-next-line|configure-file))(?:\s|-->)/gi;
28
+ module.exports.inlineCommentStartRe = inlineCommentStartRe;
29
+
30
+ // Regular expression for identifying an HTML entity at the end of a line
31
+ module.exports.endOfLineHtmlEntityRe =
32
+ /&(?:#\d+|#[xX][\da-fA-F]+|[a-zA-Z]{2,31}|blk\d{2}|emsp1[34]|frac\d{2}|sup\d|there4);$/;
33
+
34
+ // Regular expression for identifying a GitHub emoji code at the end of a line
35
+ module.exports.endOfLineGemojiCodeRe =
36
+ /:(?:[abmovx]|[-+]1|100|1234|(?:1st|2nd|3rd)_place_medal|8ball|clock\d{1,4}|e-mail|non-potable_water|o2|t-rex|u5272|u5408|u55b6|u6307|u6708|u6709|u6e80|u7121|u7533|u7981|u7a7a|[a-z]{2,15}2?|[a-z]{1,14}(?:_[a-z\d]{1,16})+):$/;
37
+
38
+ // All punctuation characters (normal and full-width)
39
+ const allPunctuation = ".,;:!?。,;:!?";
40
+ module.exports.allPunctuation = allPunctuation;
41
+
42
+ // All punctuation characters without question mark (normal and full-width)
43
+ module.exports.allPunctuationNoQuestion = allPunctuation.replace(/[??]/gu, "");
44
+
45
+ /**
46
+ * Returns true iff the input is a Boolean.
47
+ *
48
+ * @param {Object} obj Object of unknown type.
49
+ * @returns {boolean} True iff obj is a Boolean.
50
+ */
51
+ function isBoolean(obj) {
52
+ return typeof obj === "boolean";
53
+ }
54
+ module.exports.isBoolean = isBoolean;
55
+
56
+ /**
57
+ * Returns true iff the input is a Number.
58
+ *
59
+ * @param {Object} obj Object of unknown type.
60
+ * @returns {boolean} True iff obj is a Number.
61
+ */
62
+ function isNumber(obj) {
63
+ return typeof obj === "number";
64
+ }
65
+ module.exports.isNumber = isNumber;
66
+
67
+ /**
68
+ * Returns true iff the input is a String.
69
+ *
70
+ * @param {Object} obj Object of unknown type.
71
+ * @returns {boolean} True iff obj is a String.
72
+ */
73
+ function isString(obj) {
74
+ return typeof obj === "string";
75
+ }
76
+ module.exports.isString = isString;
77
+
78
+ /**
79
+ * Returns true iff the input String is empty.
80
+ *
81
+ * @param {string} str String of unknown length.
82
+ * @returns {boolean} True iff the input String is empty.
83
+ */
84
+ function isEmptyString(str) {
85
+ return str.length === 0;
86
+ }
87
+ module.exports.isEmptyString = isEmptyString;
88
+
89
+ /**
90
+ * Returns true iff the input is an Object.
91
+ *
92
+ * @param {Object} obj Object of unknown type.
93
+ * @returns {boolean} True iff obj is an Object.
94
+ */
95
+ function isObject(obj) {
96
+ return !!obj && (typeof obj === "object") && !Array.isArray(obj);
97
+ }
98
+ module.exports.isObject = isObject;
99
+
100
+ /**
101
+ * Returns true iff the input is a URL.
102
+ *
103
+ * @param {Object} obj Object of unknown type.
104
+ * @returns {boolean} True iff obj is a URL.
105
+ */
106
+ function isUrl(obj) {
107
+ return !!obj && (Object.getPrototypeOf(obj) === URL.prototype);
108
+ }
109
+ module.exports.isUrl = isUrl;
110
+
111
+ /**
112
+ * Clones the input if it is an Array.
113
+ *
114
+ * @param {Object} arr Object of unknown type.
115
+ * @returns {Object} Clone of obj iff obj is an Array.
116
+ */
117
+ function cloneIfArray(arr) {
118
+ return Array.isArray(arr) ? [ ...arr ] : arr;
119
+ }
120
+ module.exports.cloneIfArray = cloneIfArray;
121
+
122
+ /**
123
+ * Clones the input if it is a URL.
124
+ *
125
+ * @param {Object | undefined} url Object of unknown type.
126
+ * @returns {Object} Clone of obj iff obj is a URL.
127
+ */
128
+ function cloneIfUrl(url) {
129
+ // @ts-ignore
130
+ return isUrl(url) ? new URL(url) : url;
131
+ }
132
+ module.exports.cloneIfUrl = cloneIfUrl;
133
+
134
+ /**
135
+ * Gets a Regular Expression for matching the specified HTML attribute.
136
+ *
137
+ * @param {string} name HTML attribute name.
138
+ * @returns {RegExp} Regular Expression for matching.
139
+ */
140
+ module.exports.getHtmlAttributeRe = function getHtmlAttributeRe(name) {
141
+ return new RegExp(`\\s${name}\\s*=\\s*['"]?([^'"\\s>]*)`, "iu");
142
+ };
143
+
144
+ /**
145
+ * Returns true iff the input line is blank (contains nothing, whitespace, or
146
+ * comments (unclosed start/end comments allowed)).
147
+ *
148
+ * @param {string} line Input line.
149
+ * @returns {boolean} True iff line is blank.
150
+ */
151
+ function isBlankLine(line) {
152
+ const startComment = "<!--";
153
+ const endComment = "-->";
154
+ const removeComments = (/** @type {string} */ s) => {
155
+ while (true) {
156
+ const start = s.indexOf(startComment);
157
+ const end = s.indexOf(endComment);
158
+ if ((end !== -1) && ((start === -1) || (end < start))) {
159
+ // Unmatched end comment is first
160
+ s = s.slice(end + endComment.length);
161
+ } else if ((start !== -1) && (end !== -1)) {
162
+ // Start comment is before end comment
163
+ s = s.slice(0, start) + s.slice(end + endComment.length);
164
+ } else if ((start !== -1) && (end === -1)) {
165
+ // Unmatched start comment is last
166
+ s = s.slice(0, start);
167
+ } else {
168
+ // No more comments to remove
169
+ return s;
170
+ }
171
+ }
172
+ };
173
+ return (
174
+ !line ||
175
+ !line.trim() ||
176
+ !removeComments(line).replace(/>/g, "").trim()
177
+ );
178
+ }
179
+ module.exports.isBlankLine = isBlankLine;
180
+
181
+ // Replaces the content of properly-formatted CommonMark comments with "."
182
+ // This preserves the line/column information for the rest of the document
183
+ // https://spec.commonmark.org/0.29/#html-blocks
184
+ // https://spec.commonmark.org/0.29/#html-comment
185
+ const htmlCommentBegin = "<!--";
186
+ const htmlCommentEnd = "-->";
187
+ const safeCommentCharacter = ".";
188
+ const startsWithPipeRe = /^ *\|/;
189
+ const notCrLfRe = /[^\r\n]/g;
190
+ const notSpaceCrLfRe = /[^ \r\n]/g;
191
+ const trailingSpaceRe = /(?<=^|[^ ]) +[\r\n]/g;
192
+ // eslint-disable-next-line unicorn/no-unsafe-string-replacement
193
+ const replaceTrailingSpace = (/** @type {string} */ s) => s.replace(notCrLfRe, safeCommentCharacter);
194
+ module.exports.clearHtmlCommentText = function clearHtmlCommentText(/** @type {string} */ text) {
195
+ let i = 0;
196
+ while ((i = text.indexOf(htmlCommentBegin, i)) !== -1) {
197
+ const j = text.indexOf(htmlCommentEnd, i + 2);
198
+ if (j === -1) {
199
+ // Un-terminated comments are treated as text
200
+ break;
201
+ }
202
+ // If the comment has content...
203
+ if (j > i + htmlCommentBegin.length) {
204
+ const content = text.slice(i + htmlCommentBegin.length, j);
205
+ const lastLf = text.lastIndexOf("\n", i) + 1;
206
+ const preText = text.slice(lastLf, i);
207
+ const isBlock = preText.trim().length === 0;
208
+ const couldBeTable = startsWithPipeRe.test(preText);
209
+ const spansTableCells = couldBeTable && content.includes("\n");
210
+ const isValid =
211
+ isBlock ||
212
+ !(
213
+ spansTableCells ||
214
+ content.startsWith(">") ||
215
+ content.startsWith("->") ||
216
+ content.endsWith("-") ||
217
+ content.includes("--")
218
+ );
219
+ // If a valid block/inline comment...
220
+ if (isValid) {
221
+ const clearedContent = content
222
+ // eslint-disable-next-line unicorn/no-unsafe-string-replacement
223
+ .replace(notSpaceCrLfRe, safeCommentCharacter)
224
+ // eslint-disable-next-line unicorn/no-unsafe-string-replacement
225
+ .replace(trailingSpaceRe, replaceTrailingSpace);
226
+ text =
227
+ text.slice(0, i + htmlCommentBegin.length) +
228
+ clearedContent +
229
+ text.slice(j);
230
+ }
231
+ }
232
+ i = j + htmlCommentEnd.length;
233
+ }
234
+ return text;
235
+ };
236
+
237
+ // Escapes a string for use in a RegExp
238
+ module.exports.escapeForRegExp = function escapeForRegExp(/** @type {string} */ str) {
239
+ // eslint-disable-next-line unicorn/prefer-regexp-escape
240
+ return str.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&");
241
+ };
242
+
243
+ /**
244
+ * Adds ellipsis to the left/right/middle of the specified text.
245
+ *
246
+ * @param {string} text Text to ellipsify.
247
+ * @param {boolean} [start] True iff the start of the text is important.
248
+ * @param {boolean} [end] True iff the end of the text is important.
249
+ * @returns {string} Ellipsified text.
250
+ */
251
+ function ellipsify(text, start, end) {
252
+ if (text.length <= 30) {
253
+ // Nothing to do
254
+ } else if (start && end) {
255
+ text = text.slice(0, 15) + "..." + text.slice(-15);
256
+ } else if (end) {
257
+ text = "..." + text.slice(-30);
258
+ } else {
259
+ text = text.slice(0, 30) + "...";
260
+ }
261
+ return text;
262
+ }
263
+ module.exports.ellipsify = ellipsify;
264
+
265
+ /**
266
+ * Adds a generic error object via the onError callback.
267
+ *
268
+ * @param {RuleOnError} onError RuleOnError instance.
269
+ * @param {number} lineNumber Line number.
270
+ * @param {string} [detail] Error details.
271
+ * @param {string} [context] Error context.
272
+ * @param {number[]} [range] Column and length of error.
273
+ * @param {RuleOnErrorFixInfo} [fixInfo] RuleOnErrorFixInfo instance.
274
+ * @returns {void}
275
+ */
276
+ function addError(onError, lineNumber, detail, context, range, fixInfo) {
277
+ onError({
278
+ lineNumber,
279
+ detail,
280
+ context,
281
+ range,
282
+ fixInfo
283
+ });
284
+ }
285
+ module.exports.addError = addError;
286
+
287
+ /**
288
+ * Adds an error object with details conditionally via the onError callback.
289
+ *
290
+ * @param {RuleOnError} onError RuleOnError instance.
291
+ * @param {number} lineNumber Line number.
292
+ * @param {Object} expected Expected value.
293
+ * @param {Object} actual Actual value.
294
+ * @param {string} [detail] Error details.
295
+ * @param {string} [context] Error context.
296
+ * @param {number[]} [range] Column and length of error.
297
+ * @param {RuleOnErrorFixInfo} [fixInfo] RuleOnErrorFixInfo instance.
298
+ * @returns {void}
299
+ */
300
+ function addErrorDetailIf(
301
+ onError, lineNumber, expected, actual, detail, context, range, fixInfo) {
302
+ if (expected !== actual) {
303
+ addError(
304
+ onError,
305
+ lineNumber,
306
+ "Expected: " + expected + "; Actual: " + actual +
307
+ (detail ? "; " + detail : ""),
308
+ context,
309
+ range,
310
+ fixInfo);
311
+ }
312
+ }
313
+ module.exports.addErrorDetailIf = addErrorDetailIf;
314
+
315
+ /**
316
+ * Adds an error object with context via the onError callback.
317
+ *
318
+ * @param {RuleOnError} onError RuleOnError instance.
319
+ * @param {number} lineNumber Line number.
320
+ * @param {string} context Error context.
321
+ * @param {boolean} [start] True iff the start of the text is important.
322
+ * @param {boolean} [end] True iff the end of the text is important.
323
+ * @param {number[]} [range] Column and length of error.
324
+ * @param {RuleOnErrorFixInfo} [fixInfo] RuleOnErrorFixInfo instance.
325
+ * @returns {void}
326
+ */
327
+ function addErrorContext(onError, lineNumber, context, start, end, range, fixInfo) {
328
+ // Normalize new line characters so Linux and Windows trim consistently
329
+ context = ellipsify(context.replace(newlineRe, "\n"), start, end);
330
+ addError(onError, lineNumber, undefined, context, range, fixInfo);
331
+ }
332
+ module.exports.addErrorContext = addErrorContext;
333
+
334
+ /**
335
+ * Defines a range within a file (start line/column to end line/column, subset of MicromarkToken).
336
+ *
337
+ * @typedef {Object} FileRange
338
+ * @property {number} startLine Start line (1-based).
339
+ * @property {number} startColumn Start column (1-based).
340
+ * @property {number} endLine End line (1-based).
341
+ * @property {number} endColumn End column (1-based).
342
+ */
343
+
344
+ /**
345
+ * Returns whether line/column A is less than or equal to line/column B.
346
+ *
347
+ * @param {number} lineA Line A.
348
+ * @param {number} columnA Column A.
349
+ * @param {number} lineB Line B.
350
+ * @param {number} columnB Column B.
351
+ * @returns {boolean} True iff A is less than or equal to B.
352
+ */
353
+ const positionLessThanOrEqual = (lineA, columnA, lineB, columnB) => (
354
+ (lineA < lineB) ||
355
+ ((lineA === lineB) && (columnA <= columnB))
356
+ );
357
+
358
+ /**
359
+ * Returns whether two ranges (or MicromarkTokens) overlap anywhere.
360
+ *
361
+ * @param {FileRange|MicromarkToken} rangeA Range A.
362
+ * @param {FileRange|MicromarkToken} rangeB Range B.
363
+ * @returns {boolean} True iff the two ranges overlap.
364
+ */
365
+ module.exports.hasOverlap = function hasOverlap(rangeA, rangeB) {
366
+ const lte = positionLessThanOrEqual(rangeA.startLine, rangeA.startColumn, rangeB.startLine, rangeB.startColumn);
367
+ const first = lte ? rangeA : rangeB;
368
+ const second = lte ? rangeB : rangeA;
369
+ return positionLessThanOrEqual(second.startLine, second.startColumn, first.endLine, first.endColumn);
370
+ };
371
+
372
+ // Determines if the front matter includes a title
373
+ module.exports.frontMatterHasTitle =
374
+ function frontMatterHasTitle(/** @type {readonly string[]} */ frontMatterLines, /** @type {string} */ frontMatterTitlePattern) {
375
+ const ignoreFrontMatter =
376
+ (frontMatterTitlePattern !== undefined) && !frontMatterTitlePattern;
377
+ const frontMatterTitleRe =
378
+ new RegExp(
379
+ String(frontMatterTitlePattern || "^\\s*\"?title\"?\\s*[:=]"),
380
+ "i"
381
+ );
382
+ return !ignoreFrontMatter &&
383
+ frontMatterLines.some((line) => frontMatterTitleRe.test(line));
384
+ };
385
+
386
+ /**
387
+ * Result object for getReferenceLinkImageData.
388
+ *
389
+ * @typedef {Object} GetReferenceLinkImageDataResult
390
+ * @property {Map<string, number[][]>} references References.
391
+ * @property {Map<string, number[][]>} shortcuts Shortcuts.
392
+ * @property {Map<string, [number, string]>} definitions Definitions.
393
+ * @property {[string, number][]} duplicateDefinitions Duplicate definitions.
394
+ * @property {number[]} definitionLineIndices Definition line indices.
395
+ */
396
+
397
+ /**
398
+ * Returns an object with information about reference links and images.
399
+ *
400
+ * @param {MicromarkToken[]} tokens Micromark tokens.
401
+ * @returns {GetReferenceLinkImageDataResult} Reference link/image data.
402
+ */
403
+ function getReferenceLinkImageData(tokens) {
404
+ const normalizeReference = (/** @type {string} */ s) => s.toLowerCase().trim().replace(/\s+/g, " ");
405
+ const getText = (/** @type {MicromarkToken} */ t) => t?.children.filter((c) => c.type !== "blockQuotePrefix").map((c) => c.text).join("");
406
+ /** @type {Map<string, number[][]>} */
407
+ const references = new Map();
408
+ /** @type {Map<string, number[][]>} */
409
+ const shortcuts = new Map();
410
+ const addReferenceToDictionary = (/** @type {MicromarkToken} */ token, /** @type {string} */ label, /** @type {boolean} */ isShortcut) => {
411
+ const referenceDatum = [
412
+ token.startLine - 1,
413
+ token.startColumn - 1,
414
+ token.text.length
415
+ ];
416
+ const reference = normalizeReference(label);
417
+ const dictionary = isShortcut ? shortcuts : references;
418
+ const referenceData = dictionary.get(reference) || [];
419
+ referenceData.push(referenceDatum);
420
+ dictionary.set(reference, referenceData);
421
+ };
422
+ /** @type {Map<string, [number, string]>} */
423
+ const definitions = new Map();
424
+ /** @type {number[]} */
425
+ const definitionLineIndices = [];
426
+ /** @type {[string, number][]} */
427
+ const duplicateDefinitions = [];
428
+ const filteredTokens =
429
+ micromark.filterByTypes(
430
+ tokens,
431
+ [
432
+ // definitionLineIndices
433
+ "definition", "gfmFootnoteDefinition",
434
+ // definitions and definitionLineIndices
435
+ "definitionLabelString", "gfmFootnoteDefinitionLabelString",
436
+ // references and shortcuts
437
+ "gfmFootnoteCall", "image", "link",
438
+ // undefined link labels
439
+ "undefinedReferenceCollapsed", "undefinedReferenceFull", "undefinedReferenceShortcut"
440
+ ]
441
+ );
442
+ for (const token of filteredTokens) {
443
+ let labelPrefix = "";
444
+ // eslint-disable-next-line default-case
445
+ switch (token.type) {
446
+ case "definition":
447
+ case "gfmFootnoteDefinition":
448
+ // definitionLineIndices
449
+ for (let i = token.startLine; i <= token.endLine; i++) {
450
+ definitionLineIndices.push(i - 1);
451
+ }
452
+ break;
453
+ case "gfmFootnoteDefinitionLabelString":
454
+ labelPrefix = "^";
455
+ case "definitionLabelString": // eslint-disable-line no-fallthrough
456
+ {
457
+ // definitions and definitionLineIndices
458
+ const reference = normalizeReference(`${labelPrefix}${token.text}`);
459
+ if (definitions.has(reference)) {
460
+ duplicateDefinitions.push([ reference, token.startLine - 1 ]);
461
+ } else {
462
+ const parent =
463
+ micromark.getParentOfType(token, [ "definition" ]);
464
+ const destinationString = parent &&
465
+ micromark.getDescendantsByType(parent, [ "definitionDestination", "definitionDestinationRaw", "definitionDestinationString" ])[0]?.text;
466
+ definitions.set(
467
+ reference,
468
+ [ token.startLine - 1, destinationString || "" ]
469
+ );
470
+ }
471
+ break;
472
+ }
473
+ case "gfmFootnoteCall":
474
+ case "image":
475
+ case "link":
476
+ {
477
+ // Identify if shortcut or full/collapsed
478
+ let isShortcut = (token.children.length === 1);
479
+ const isFullOrCollapsed = (token.children.length === 2) && !token.children.some((t) => t.type === "resource");
480
+ const [ labelText ] = micromark.getDescendantsByType(token, [ "label", "labelText" ]);
481
+ const [ referenceString ] = micromark.getDescendantsByType(token, [ "reference", "referenceString" ]);
482
+ let label = getText(labelText);
483
+ // Identify if footnote
484
+ if (!isShortcut && !isFullOrCollapsed) {
485
+ const [ footnoteCallMarker, footnoteCallString ] = token.children.filter(
486
+ (t) => [ "gfmFootnoteCallMarker", "gfmFootnoteCallString" ].includes(t.type)
487
+ );
488
+ if (footnoteCallMarker && footnoteCallString) {
489
+ label = `${footnoteCallMarker.text}${footnoteCallString.text}`;
490
+ isShortcut = true;
491
+ }
492
+ }
493
+ // Track link (handle shortcuts separately due to ambiguity in "text [text] text")
494
+ if (isShortcut || isFullOrCollapsed) {
495
+ addReferenceToDictionary(token, getText(referenceString) || label, isShortcut);
496
+ }
497
+ break;
498
+ }
499
+ case "undefinedReferenceCollapsed":
500
+ case "undefinedReferenceFull":
501
+ case "undefinedReferenceShortcut":
502
+ {
503
+ const undefinedReference = micromark.getDescendantsByType(token, [ "undefinedReference" ])[0];
504
+ const label = undefinedReference.children.map((t) => t.text).join("");
505
+ const isShortcut = (token.type === "undefinedReferenceShortcut");
506
+ addReferenceToDictionary(token, label, isShortcut);
507
+ break;
508
+ }
509
+ }
510
+ }
511
+ return {
512
+ references,
513
+ shortcuts,
514
+ definitions,
515
+ duplicateDefinitions,
516
+ definitionLineIndices
517
+ };
518
+ }
519
+ module.exports.getReferenceLinkImageData = getReferenceLinkImageData;
520
+
521
+ /**
522
+ * Gets the most common line ending, falling back to the platform default.
523
+ *
524
+ * @param {string} input Markdown content to analyze.
525
+ * @param {{EOL: string}} [os] Node.js "os" module.
526
+ * @returns {string} Preferred line ending.
527
+ */
528
+ function getPreferredLineEnding(input, os) {
529
+ let cr = 0;
530
+ let lf = 0;
531
+ let crlf = 0;
532
+ const endings = input.match(newlineRe) || [];
533
+ for (const ending of endings) {
534
+ // eslint-disable-next-line default-case
535
+ switch (ending) {
536
+ case "\r":
537
+ cr++;
538
+ break;
539
+ case "\n":
540
+ lf++;
541
+ break;
542
+ case "\r\n":
543
+ crlf++;
544
+ break;
545
+ }
546
+ }
547
+ let preferredLineEnding = null;
548
+ if (!cr && !lf && !crlf) {
549
+ preferredLineEnding = (os && os.EOL) || "\n";
550
+ } else if ((lf >= crlf) && (lf >= cr)) {
551
+ preferredLineEnding = "\n";
552
+ } else if (crlf >= cr) {
553
+ preferredLineEnding = "\r\n";
554
+ } else {
555
+ preferredLineEnding = "\r";
556
+ }
557
+ return preferredLineEnding;
558
+ }
559
+ module.exports.getPreferredLineEnding = getPreferredLineEnding;
560
+
561
+ /**
562
+ * Expands a path with a tilde to an absolute path.
563
+ *
564
+ * @param {string} file Path that may begin with a tilde.
565
+ * @param {{homedir: () => string}} os Node.js "os" module.
566
+ * @returns {string} Absolute path (or original path).
567
+ */
568
+ function expandTildePath(file, os) {
569
+ const homedir = os && os.homedir && os.homedir();
570
+ // eslint-disable-next-line unicorn/no-unsafe-string-replacement
571
+ return homedir ? file.replace(/^~($|\/|\\)/, `${homedir}$1`) : file;
572
+ }
573
+ module.exports.expandTildePath = expandTildePath;
574
+
575
+ /** @typedef {import("../lib/markdownlint.mjs").LintError[]} LintErrors */
576
+ /** @typedef {import("../lib/markdownlint.mjs").LintResults} LintResults */
577
+
578
+ /**
579
+ * Converts lint errors from resultVersion 3 to 2.
580
+ *
581
+ * @param {LintErrors} errors Lint errors (v3).
582
+ * @returns {LintErrors} Lint errors (v2).
583
+ */
584
+ function convertLintErrorsVersion3To2(errors) {
585
+ const noPrevious = {
586
+ "ruleNames": [],
587
+ "lineNumber": -1
588
+ };
589
+ return errors.filter((error, index, array) => {
590
+ // @ts-ignore
591
+ delete error.fixInfo;
592
+ // @ts-ignore
593
+ delete error.severity;
594
+ const previous = array[index - 1] || noPrevious;
595
+ return (
596
+ (error.ruleNames[0] !== previous.ruleNames[0]) ||
597
+ (error.lineNumber !== previous.lineNumber)
598
+ );
599
+ });
600
+ }
601
+
602
+ /**
603
+ * Converts lint errors from resultVersion 2 to 1.
604
+ *
605
+ * @param {LintErrors} errors Lint errors (v2).
606
+ * @returns {LintErrors} Lint errors (v1).
607
+ */
608
+ function convertLintErrorsVersion2To1(errors) {
609
+ for (const error of errors) {
610
+ // @ts-ignore
611
+ error.ruleName = error.ruleNames[0];
612
+ // @ts-ignore
613
+ error.ruleAlias = error.ruleNames[1] || error.ruleName;
614
+ // @ts-ignore
615
+ delete error.ruleNames;
616
+ }
617
+ return errors;
618
+ }
619
+
620
+ /**
621
+ * Converts lint errors from resultVersion 2 to 0.
622
+ *
623
+ * @param {LintErrors} errors Lint errors (v2).
624
+ * @returns {LintErrors} Lint errors (v0).
625
+ */
626
+ function convertLintErrorsVersion2To0(errors) {
627
+ /** @type {Object.<string, number[]>} */
628
+ const dictionary = {};
629
+ for (const error of errors) {
630
+ const ruleName = error.ruleNames[0];
631
+ const ruleLines = dictionary[ruleName] || [];
632
+ ruleLines.push(error.lineNumber);
633
+ dictionary[ruleName] = ruleLines;
634
+ }
635
+ // @ts-ignore
636
+ return dictionary;
637
+ }
638
+
639
+ /**
640
+ * Copies and transforms lint results from resultVersion 3 to ?.
641
+ *
642
+ * @param {LintResults} results Lint results (v3).
643
+ * @param {(errors: LintErrors) => LintErrors} transform Lint errors (v?).
644
+ * @returns {LintResults} Lint results (v?).
645
+ */
646
+ function copyAndTransformResults(results, transform) {
647
+ /** @type {Object.<string, LintErrors>} */
648
+ const newResults = {};
649
+ for (const [ key, value ] of Object.entries(results)) {
650
+ const arr = value.map((r) => ({ ...r }));
651
+ newResults[key] = transform(arr);
652
+ }
653
+ // @ts-ignore
654
+ return newResults;
655
+ }
656
+
657
+ /**
658
+ * Converts lint results from resultVersion 3 to 0.
659
+ *
660
+ * @param {LintResults} results Lint results (v3).
661
+ * @returns {LintResults} Lint results (v0).
662
+ */
663
+ module.exports.convertToResultVersion0 = function convertToResultVersion0(results) {
664
+ return copyAndTransformResults(results, (r) => convertLintErrorsVersion2To0(convertLintErrorsVersion3To2(r)));
665
+ };
666
+
667
+ /**
668
+ * Converts lint results from resultVersion 3 to 1.
669
+ *
670
+ * @param {LintResults} results Lint results (v3).
671
+ * @returns {LintResults} Lint results (v1).
672
+ */
673
+ module.exports.convertToResultVersion1 = function convertToResultVersion1(results) {
674
+ return copyAndTransformResults(results, (r) => convertLintErrorsVersion2To1(convertLintErrorsVersion3To2(r)));
675
+ };
676
+
677
+ /**
678
+ * Converts lint results from resultVersion 3 to 2.
679
+ *
680
+ * @param {LintResults} results Lint results (v3).
681
+ * @returns {LintResults} Lint results (v2).
682
+ */
683
+ module.exports.convertToResultVersion2 = function convertToResultVersion2(results) {
684
+ return copyAndTransformResults(results, convertLintErrorsVersion3To2);
685
+ };
686
+
687
+ /**
688
+ * Formats lint results to an array of strings.
689
+ *
690
+ * @param {LintResults|undefined} lintResults Lint results.
691
+ * @returns {string[]} Lint error strings.
692
+ */
693
+ module.exports.formatLintResults = function formatLintResults(lintResults) {
694
+ const results = [];
695
+ const entries = Object.entries(lintResults || {});
696
+ entries.sort((a, b) => a[0].localeCompare(b[0]));
697
+ for (const [ source, lintErrors ] of entries) {
698
+ for (const lintError of lintErrors) {
699
+ const { lineNumber, ruleNames, ruleDescription, errorDetail, errorContext, errorRange, severity } = lintError;
700
+ const rule = ruleNames.join("/");
701
+ const line = `:${lineNumber}`;
702
+ const rangeStart = (errorRange && errorRange[0]) || 0;
703
+ const column = rangeStart ? `:${rangeStart}` : "";
704
+ const description = ruleDescription;
705
+ const detail = (errorDetail ? ` [${errorDetail}]` : "");
706
+ const context = (errorContext ? ` [Context: "${errorContext}"]` : "");
707
+ results.push(`${source}${line}${column} ${severity} ${rule} ${description}${detail}${context}`);
708
+ }
709
+ }
710
+ return results;
711
+ };