@alexlit/lint-kit 214.0.1 → 214.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 (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,964 @@
1
+ /**
2
+ * @import {Event, Extension, Point, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'
3
+ */
4
+
5
+ /**
6
+ * @typedef {[number, number, number, number]} Range
7
+ * Cell info.
8
+ *
9
+ * @typedef {0 | 1 | 2 | 3} RowKind
10
+ * Where we are: `1` for head row, `2` for delimiter row, `3` for body row.
11
+ */
12
+
13
+ import {ok as assert} from 'devlop'
14
+ import {factorySpace} from 'micromark-factory-space'
15
+ import {
16
+ markdownLineEnding,
17
+ markdownLineEndingOrSpace,
18
+ markdownSpace
19
+ } from 'micromark-util-character'
20
+ import {codes, constants, types} from 'micromark-util-symbol'
21
+ import {EditMap} from './edit-map.js'
22
+ import {gfmTableAlign} from './infer.js'
23
+
24
+ /**
25
+ * Create an HTML extension for `micromark` to support GitHub tables syntax.
26
+ *
27
+ * @returns {Extension}
28
+ * Extension for `micromark` that can be passed in `extensions` to enable GFM
29
+ * table syntax.
30
+ */
31
+ export function gfmTable() {
32
+ return {
33
+ flow: {
34
+ null: {name: 'table', tokenize: tokenizeTable, resolveAll: resolveTable}
35
+ }
36
+ }
37
+ }
38
+
39
+ /**
40
+ * Tokenizer for GFM tables.
41
+ *
42
+ * @this {TokenizeContext}
43
+ * @type {Tokenizer}
44
+ */
45
+ function tokenizeTable(effects, ok, nok) {
46
+ const self = this
47
+ let size = 0
48
+ let sizeB = 0
49
+ /** @type {boolean | undefined} */
50
+ let seen
51
+
52
+ return start
53
+
54
+ /**
55
+ * Start of a GFM table.
56
+ *
57
+ * If there is a valid table row or table head before, then we try to parse
58
+ * another row.
59
+ * Otherwise, we try to parse a head.
60
+ *
61
+ * ```markdown
62
+ * > | | a |
63
+ * ^
64
+ * | | - |
65
+ * > | | b |
66
+ * ^
67
+ * ```
68
+ * @type {State}
69
+ */
70
+ function start(code) {
71
+ let index = self.events.length - 1
72
+
73
+ while (index > -1) {
74
+ const {type} = self.events[index][1]
75
+ if (
76
+ type === types.lineEnding ||
77
+ // Note: markdown-rs uses `whitespace` instead of `linePrefix`
78
+ type === types.linePrefix
79
+ ) {
80
+ index--
81
+ } else {
82
+ break
83
+ }
84
+ }
85
+
86
+ const tail = index > -1 ? self.events[index][1].type : null
87
+
88
+ const next =
89
+ tail === 'tableHead' || tail === 'tableRow' ? bodyRowStart : headRowBefore
90
+
91
+ // Don’t allow lazy body rows.
92
+ if (next === bodyRowStart && self.parser.lazy[self.now().line]) {
93
+ return nok(code)
94
+ }
95
+
96
+ return next(code)
97
+ }
98
+
99
+ /**
100
+ * Before table head row.
101
+ *
102
+ * ```markdown
103
+ * > | | a |
104
+ * ^
105
+ * | | - |
106
+ * | | b |
107
+ * ```
108
+ *
109
+ * @type {State}
110
+ */
111
+ function headRowBefore(code) {
112
+ effects.enter('tableHead')
113
+ effects.enter('tableRow')
114
+ return headRowStart(code)
115
+ }
116
+
117
+ /**
118
+ * Before table head row, after whitespace.
119
+ *
120
+ * ```markdown
121
+ * > | | a |
122
+ * ^
123
+ * | | - |
124
+ * | | b |
125
+ * ```
126
+ *
127
+ * @type {State}
128
+ */
129
+ function headRowStart(code) {
130
+ if (code === codes.verticalBar) {
131
+ return headRowBreak(code)
132
+ }
133
+
134
+ // To do: micromark-js should let us parse our own whitespace in extensions,
135
+ // like `markdown-rs`:
136
+ //
137
+ // ```js
138
+ // // 4+ spaces.
139
+ // if (markdownSpace(code)) {
140
+ // return nok(code)
141
+ // }
142
+ // ```
143
+
144
+ seen = true
145
+ // Count the first character, that isn’t a pipe, double.
146
+ sizeB += 1
147
+ return headRowBreak(code)
148
+ }
149
+
150
+ /**
151
+ * At break in table head row.
152
+ *
153
+ * ```markdown
154
+ * > | | a |
155
+ * ^
156
+ * ^
157
+ * ^
158
+ * | | - |
159
+ * | | b |
160
+ * ```
161
+ *
162
+ * @type {State}
163
+ */
164
+ function headRowBreak(code) {
165
+ if (code === codes.eof) {
166
+ // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.
167
+ return nok(code)
168
+ }
169
+
170
+ if (markdownLineEnding(code)) {
171
+ // If anything other than one pipe (ignoring whitespace) was used, it’s fine.
172
+ if (sizeB > 1) {
173
+ sizeB = 0
174
+ // To do: check if this works.
175
+ // Feel free to interrupt:
176
+ self.interrupt = true
177
+ effects.exit('tableRow')
178
+ effects.enter(types.lineEnding)
179
+ effects.consume(code)
180
+ effects.exit(types.lineEnding)
181
+ return headDelimiterStart
182
+ }
183
+
184
+ // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.
185
+ return nok(code)
186
+ }
187
+
188
+ if (markdownSpace(code)) {
189
+ // To do: check if this is fine.
190
+ // effects.attempt(State::Next(StateName::GfmTableHeadRowBreak), State::Nok)
191
+ // State::Retry(space_or_tab(tokenizer))
192
+ return factorySpace(effects, headRowBreak, types.whitespace)(code)
193
+ }
194
+
195
+ sizeB += 1
196
+
197
+ if (seen) {
198
+ seen = false
199
+ // Header cell count.
200
+ size += 1
201
+ }
202
+
203
+ if (code === codes.verticalBar) {
204
+ effects.enter('tableCellDivider')
205
+ effects.consume(code)
206
+ effects.exit('tableCellDivider')
207
+ // Whether a delimiter was seen.
208
+ seen = true
209
+ return headRowBreak
210
+ }
211
+
212
+ // Anything else is cell data.
213
+ effects.enter(types.data)
214
+ return headRowData(code)
215
+ }
216
+
217
+ /**
218
+ * In table head row data.
219
+ *
220
+ * ```markdown
221
+ * > | | a |
222
+ * ^
223
+ * | | - |
224
+ * | | b |
225
+ * ```
226
+ *
227
+ * @type {State}
228
+ */
229
+ function headRowData(code) {
230
+ if (
231
+ code === codes.eof ||
232
+ code === codes.verticalBar ||
233
+ markdownLineEndingOrSpace(code)
234
+ ) {
235
+ effects.exit(types.data)
236
+ return headRowBreak(code)
237
+ }
238
+
239
+ effects.consume(code)
240
+ return code === codes.backslash ? headRowEscape : headRowData
241
+ }
242
+
243
+ /**
244
+ * In table head row escape.
245
+ *
246
+ * ```markdown
247
+ * > | | a\-b |
248
+ * ^
249
+ * | | ---- |
250
+ * | | c |
251
+ * ```
252
+ *
253
+ * @type {State}
254
+ */
255
+ function headRowEscape(code) {
256
+ if (code === codes.backslash || code === codes.verticalBar) {
257
+ effects.consume(code)
258
+ return headRowData
259
+ }
260
+
261
+ return headRowData(code)
262
+ }
263
+
264
+ /**
265
+ * Before delimiter row.
266
+ *
267
+ * ```markdown
268
+ * | | a |
269
+ * > | | - |
270
+ * ^
271
+ * | | b |
272
+ * ```
273
+ *
274
+ * @type {State}
275
+ */
276
+ function headDelimiterStart(code) {
277
+ // Reset `interrupt`.
278
+ self.interrupt = false
279
+
280
+ // Note: in `markdown-rs`, we need to handle piercing here too.
281
+ if (self.parser.lazy[self.now().line]) {
282
+ return nok(code)
283
+ }
284
+
285
+ effects.enter('tableDelimiterRow')
286
+ // Track if we’ve seen a `:` or `|`.
287
+ seen = false
288
+
289
+ if (markdownSpace(code)) {
290
+ assert(self.parser.constructs.disable.null, 'expected `disabled.null`')
291
+ return factorySpace(
292
+ effects,
293
+ headDelimiterBefore,
294
+ types.linePrefix,
295
+ self.parser.constructs.disable.null.includes('codeIndented')
296
+ ? undefined
297
+ : constants.tabSize
298
+ )(code)
299
+ }
300
+
301
+ return headDelimiterBefore(code)
302
+ }
303
+
304
+ /**
305
+ * Before delimiter row, after optional whitespace.
306
+ *
307
+ * Reused when a `|` is found later, to parse another cell.
308
+ *
309
+ * ```markdown
310
+ * | | a |
311
+ * > | | - |
312
+ * ^
313
+ * | | b |
314
+ * ```
315
+ *
316
+ * @type {State}
317
+ */
318
+ function headDelimiterBefore(code) {
319
+ if (code === codes.dash || code === codes.colon) {
320
+ return headDelimiterValueBefore(code)
321
+ }
322
+
323
+ if (code === codes.verticalBar) {
324
+ seen = true
325
+ // If we start with a pipe, we open a cell marker.
326
+ effects.enter('tableCellDivider')
327
+ effects.consume(code)
328
+ effects.exit('tableCellDivider')
329
+ return headDelimiterCellBefore
330
+ }
331
+
332
+ // More whitespace / empty row not allowed at start.
333
+ return headDelimiterNok(code)
334
+ }
335
+
336
+ /**
337
+ * After `|`, before delimiter cell.
338
+ *
339
+ * ```markdown
340
+ * | | a |
341
+ * > | | - |
342
+ * ^
343
+ * ```
344
+ *
345
+ * @type {State}
346
+ */
347
+ function headDelimiterCellBefore(code) {
348
+ if (markdownSpace(code)) {
349
+ return factorySpace(
350
+ effects,
351
+ headDelimiterValueBefore,
352
+ types.whitespace
353
+ )(code)
354
+ }
355
+
356
+ return headDelimiterValueBefore(code)
357
+ }
358
+
359
+ /**
360
+ * Before delimiter cell value.
361
+ *
362
+ * ```markdown
363
+ * | | a |
364
+ * > | | - |
365
+ * ^
366
+ * ```
367
+ *
368
+ * @type {State}
369
+ */
370
+ function headDelimiterValueBefore(code) {
371
+ // Align: left.
372
+ if (code === codes.colon) {
373
+ sizeB += 1
374
+ seen = true
375
+
376
+ effects.enter('tableDelimiterMarker')
377
+ effects.consume(code)
378
+ effects.exit('tableDelimiterMarker')
379
+ return headDelimiterLeftAlignmentAfter
380
+ }
381
+
382
+ // Align: none.
383
+ if (code === codes.dash) {
384
+ sizeB += 1
385
+ // To do: seems weird that this *isn’t* left aligned, but that state is used?
386
+ return headDelimiterLeftAlignmentAfter(code)
387
+ }
388
+
389
+ if (code === codes.eof || markdownLineEnding(code)) {
390
+ return headDelimiterCellAfter(code)
391
+ }
392
+
393
+ return headDelimiterNok(code)
394
+ }
395
+
396
+ /**
397
+ * After delimiter cell left alignment marker.
398
+ *
399
+ * ```markdown
400
+ * | | a |
401
+ * > | | :- |
402
+ * ^
403
+ * ```
404
+ *
405
+ * @type {State}
406
+ */
407
+ function headDelimiterLeftAlignmentAfter(code) {
408
+ if (code === codes.dash) {
409
+ effects.enter('tableDelimiterFiller')
410
+ return headDelimiterFiller(code)
411
+ }
412
+
413
+ // Anything else is not ok after the left-align colon.
414
+ return headDelimiterNok(code)
415
+ }
416
+
417
+ /**
418
+ * In delimiter cell filler.
419
+ *
420
+ * ```markdown
421
+ * | | a |
422
+ * > | | - |
423
+ * ^
424
+ * ```
425
+ *
426
+ * @type {State}
427
+ */
428
+ function headDelimiterFiller(code) {
429
+ if (code === codes.dash) {
430
+ effects.consume(code)
431
+ return headDelimiterFiller
432
+ }
433
+
434
+ // Align is `center` if it was `left`, `right` otherwise.
435
+ if (code === codes.colon) {
436
+ seen = true
437
+ effects.exit('tableDelimiterFiller')
438
+ effects.enter('tableDelimiterMarker')
439
+ effects.consume(code)
440
+ effects.exit('tableDelimiterMarker')
441
+ return headDelimiterRightAlignmentAfter
442
+ }
443
+
444
+ effects.exit('tableDelimiterFiller')
445
+ return headDelimiterRightAlignmentAfter(code)
446
+ }
447
+
448
+ /**
449
+ * After delimiter cell right alignment marker.
450
+ *
451
+ * ```markdown
452
+ * | | a |
453
+ * > | | -: |
454
+ * ^
455
+ * ```
456
+ *
457
+ * @type {State}
458
+ */
459
+ function headDelimiterRightAlignmentAfter(code) {
460
+ if (markdownSpace(code)) {
461
+ return factorySpace(
462
+ effects,
463
+ headDelimiterCellAfter,
464
+ types.whitespace
465
+ )(code)
466
+ }
467
+
468
+ return headDelimiterCellAfter(code)
469
+ }
470
+
471
+ /**
472
+ * After delimiter cell.
473
+ *
474
+ * ```markdown
475
+ * | | a |
476
+ * > | | -: |
477
+ * ^
478
+ * ```
479
+ *
480
+ * @type {State}
481
+ */
482
+ function headDelimiterCellAfter(code) {
483
+ if (code === codes.verticalBar) {
484
+ return headDelimiterBefore(code)
485
+ }
486
+
487
+ if (code === codes.eof || markdownLineEnding(code)) {
488
+ // Exit when:
489
+ // * there was no `:` or `|` at all (it’s a thematic break or setext
490
+ // underline instead)
491
+ // * the header cell count is not the delimiter cell count
492
+ if (!seen || size !== sizeB) {
493
+ return headDelimiterNok(code)
494
+ }
495
+
496
+ // Note: in markdown-rs`, a reset is needed here.
497
+ effects.exit('tableDelimiterRow')
498
+ effects.exit('tableHead')
499
+ // To do: in `markdown-rs`, resolvers need to be registered manually.
500
+ // effects.register_resolver(ResolveName::GfmTable)
501
+ return ok(code)
502
+ }
503
+
504
+ return headDelimiterNok(code)
505
+ }
506
+
507
+ /**
508
+ * In delimiter row, at a disallowed byte.
509
+ *
510
+ * ```markdown
511
+ * | | a |
512
+ * > | | x |
513
+ * ^
514
+ * ```
515
+ *
516
+ * @type {State}
517
+ */
518
+ function headDelimiterNok(code) {
519
+ // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.
520
+ return nok(code)
521
+ }
522
+
523
+ /**
524
+ * Before table body row.
525
+ *
526
+ * ```markdown
527
+ * | | a |
528
+ * | | - |
529
+ * > | | b |
530
+ * ^
531
+ * ```
532
+ *
533
+ * @type {State}
534
+ */
535
+ function bodyRowStart(code) {
536
+ // Note: in `markdown-rs` we need to manually take care of a prefix,
537
+ // but in `micromark-js` that is done for us, so if we’re here, we’re
538
+ // never at whitespace.
539
+ effects.enter('tableRow')
540
+ return bodyRowBreak(code)
541
+ }
542
+
543
+ /**
544
+ * At break in table body row.
545
+ *
546
+ * ```markdown
547
+ * | | a |
548
+ * | | - |
549
+ * > | | b |
550
+ * ^
551
+ * ^
552
+ * ^
553
+ * ```
554
+ *
555
+ * @type {State}
556
+ */
557
+ function bodyRowBreak(code) {
558
+ if (code === codes.verticalBar) {
559
+ effects.enter('tableCellDivider')
560
+ effects.consume(code)
561
+ effects.exit('tableCellDivider')
562
+ return bodyRowBreak
563
+ }
564
+
565
+ if (code === codes.eof || markdownLineEnding(code)) {
566
+ effects.exit('tableRow')
567
+ return ok(code)
568
+ }
569
+
570
+ if (markdownSpace(code)) {
571
+ return factorySpace(effects, bodyRowBreak, types.whitespace)(code)
572
+ }
573
+
574
+ // Anything else is cell content.
575
+ effects.enter(types.data)
576
+ return bodyRowData(code)
577
+ }
578
+
579
+ /**
580
+ * In table body row data.
581
+ *
582
+ * ```markdown
583
+ * | | a |
584
+ * | | - |
585
+ * > | | b |
586
+ * ^
587
+ * ```
588
+ *
589
+ * @type {State}
590
+ */
591
+ function bodyRowData(code) {
592
+ if (
593
+ code === codes.eof ||
594
+ code === codes.verticalBar ||
595
+ markdownLineEndingOrSpace(code)
596
+ ) {
597
+ effects.exit(types.data)
598
+ return bodyRowBreak(code)
599
+ }
600
+
601
+ effects.consume(code)
602
+ return code === codes.backslash ? bodyRowEscape : bodyRowData
603
+ }
604
+
605
+ /**
606
+ * In table body row escape.
607
+ *
608
+ * ```markdown
609
+ * | | a |
610
+ * | | ---- |
611
+ * > | | b\-c |
612
+ * ^
613
+ * ```
614
+ *
615
+ * @type {State}
616
+ */
617
+ function bodyRowEscape(code) {
618
+ if (code === codes.backslash || code === codes.verticalBar) {
619
+ effects.consume(code)
620
+ return bodyRowData
621
+ }
622
+
623
+ return bodyRowData(code)
624
+ }
625
+ }
626
+
627
+ /** @type {Resolver} */
628
+
629
+ function resolveTable(events, context) {
630
+ let index = -1
631
+ let inFirstCellAwaitingPipe = true
632
+ /** @type {RowKind} */
633
+ let rowKind = 0
634
+ /** @type {Range} */
635
+ let lastCell = [0, 0, 0, 0]
636
+ /** @type {Range} */
637
+ let cell = [0, 0, 0, 0]
638
+ let afterHeadAwaitingFirstBodyRow = false
639
+ let lastTableEnd = 0
640
+ /** @type {Token | undefined} */
641
+ let currentTable
642
+ /** @type {Token | undefined} */
643
+ let currentBody
644
+ /** @type {Token | undefined} */
645
+ let currentCell
646
+
647
+ const map = new EditMap()
648
+
649
+ while (++index < events.length) {
650
+ const event = events[index]
651
+ const token = event[1]
652
+
653
+ if (event[0] === 'enter') {
654
+ // Start of head.
655
+ if (token.type === 'tableHead') {
656
+ afterHeadAwaitingFirstBodyRow = false
657
+
658
+ // Inject previous (body end and) table end.
659
+ if (lastTableEnd !== 0) {
660
+ assert(currentTable, 'there should be a table opening')
661
+ flushTableEnd(map, context, lastTableEnd, currentTable, currentBody)
662
+ currentBody = undefined
663
+ lastTableEnd = 0
664
+ }
665
+
666
+ // Inject table start.
667
+ currentTable = {
668
+ type: 'table',
669
+ start: Object.assign({}, token.start),
670
+ // Note: correct end is set later.
671
+ end: Object.assign({}, token.end)
672
+ }
673
+ map.add(index, 0, [['enter', currentTable, context]])
674
+ } else if (
675
+ token.type === 'tableRow' ||
676
+ token.type === 'tableDelimiterRow'
677
+ ) {
678
+ inFirstCellAwaitingPipe = true
679
+ currentCell = undefined
680
+ lastCell = [0, 0, 0, 0]
681
+ cell = [0, index + 1, 0, 0]
682
+
683
+ // Inject table body start.
684
+ if (afterHeadAwaitingFirstBodyRow) {
685
+ afterHeadAwaitingFirstBodyRow = false
686
+ currentBody = {
687
+ type: 'tableBody',
688
+ start: Object.assign({}, token.start),
689
+ // Note: correct end is set later.
690
+ end: Object.assign({}, token.end)
691
+ }
692
+ map.add(index, 0, [['enter', currentBody, context]])
693
+ }
694
+
695
+ rowKind = token.type === 'tableDelimiterRow' ? 2 : currentBody ? 3 : 1
696
+ }
697
+ // Cell data.
698
+ else if (
699
+ rowKind &&
700
+ (token.type === types.data ||
701
+ token.type === 'tableDelimiterMarker' ||
702
+ token.type === 'tableDelimiterFiller')
703
+ ) {
704
+ inFirstCellAwaitingPipe = false
705
+
706
+ // First value in cell.
707
+ if (cell[2] === 0) {
708
+ if (lastCell[1] !== 0) {
709
+ cell[0] = cell[1]
710
+ currentCell = flushCell(
711
+ map,
712
+ context,
713
+ lastCell,
714
+ rowKind,
715
+ undefined,
716
+ currentCell
717
+ )
718
+ lastCell = [0, 0, 0, 0]
719
+ }
720
+
721
+ cell[2] = index
722
+ }
723
+ } else if (token.type === 'tableCellDivider') {
724
+ if (inFirstCellAwaitingPipe) {
725
+ inFirstCellAwaitingPipe = false
726
+ } else {
727
+ if (lastCell[1] !== 0) {
728
+ cell[0] = cell[1]
729
+ currentCell = flushCell(
730
+ map,
731
+ context,
732
+ lastCell,
733
+ rowKind,
734
+ undefined,
735
+ currentCell
736
+ )
737
+ }
738
+
739
+ lastCell = cell
740
+ cell = [lastCell[1], index, 0, 0]
741
+ }
742
+ }
743
+ }
744
+ // Exit events.
745
+ else if (token.type === 'tableHead') {
746
+ afterHeadAwaitingFirstBodyRow = true
747
+ lastTableEnd = index
748
+ } else if (
749
+ token.type === 'tableRow' ||
750
+ token.type === 'tableDelimiterRow'
751
+ ) {
752
+ lastTableEnd = index
753
+
754
+ if (lastCell[1] !== 0) {
755
+ cell[0] = cell[1]
756
+ currentCell = flushCell(
757
+ map,
758
+ context,
759
+ lastCell,
760
+ rowKind,
761
+ index,
762
+ currentCell
763
+ )
764
+ } else if (cell[1] !== 0) {
765
+ currentCell = flushCell(map, context, cell, rowKind, index, currentCell)
766
+ }
767
+
768
+ rowKind = 0
769
+ } else if (
770
+ rowKind &&
771
+ (token.type === types.data ||
772
+ token.type === 'tableDelimiterMarker' ||
773
+ token.type === 'tableDelimiterFiller')
774
+ ) {
775
+ cell[3] = index
776
+ }
777
+ }
778
+
779
+ if (lastTableEnd !== 0) {
780
+ assert(currentTable, 'expected table opening')
781
+ flushTableEnd(map, context, lastTableEnd, currentTable, currentBody)
782
+ }
783
+
784
+ map.consume(context.events)
785
+
786
+ // To do: move this into `html`, when events are exposed there.
787
+ // That’s what `markdown-rs` does.
788
+ // That needs updates to `mdast-util-gfm-table`.
789
+ index = -1
790
+ while (++index < context.events.length) {
791
+ const event = context.events[index]
792
+ if (event[0] === 'enter' && event[1].type === 'table') {
793
+ event[1]._align = gfmTableAlign(context.events, index)
794
+ }
795
+ }
796
+
797
+ return events
798
+ }
799
+
800
+ /**
801
+ * Generate a cell.
802
+ *
803
+ * @param {EditMap} map
804
+ * Edit map to apply to.
805
+ * @param {Readonly<TokenizeContext>} context
806
+ * Tokenize context.
807
+ * @param {Readonly<Range>} range
808
+ * Range of the cell within events.
809
+ * @param {RowKind} rowKind
810
+ * Type of row.
811
+ * @param {number | undefined} rowEnd
812
+ * Index of the end of the row, if known.
813
+ * @param {Token | undefined} previousCell
814
+ * Previous cell token, if any.
815
+ * @returns {Token | undefined}
816
+ * Current cell token after flushing, if any.
817
+ */
818
+ // eslint-disable-next-line max-params
819
+ function flushCell(map, context, range, rowKind, rowEnd, previousCell) {
820
+ // `markdown-rs` uses:
821
+ // rowKind === 2 ? 'tableDelimiterCell' : 'tableCell'
822
+ const groupName =
823
+ rowKind === 1
824
+ ? 'tableHeader'
825
+ : rowKind === 2
826
+ ? 'tableDelimiter'
827
+ : 'tableData'
828
+ // `markdown-rs` uses:
829
+ // rowKind === 2 ? 'tableDelimiterCellValue' : 'tableCellText'
830
+ const valueName = 'tableContent'
831
+
832
+ // Insert an exit for the previous cell, if there is one.
833
+ //
834
+ // ```markdown
835
+ // > | | aa | bb | cc |
836
+ // ^-- exit
837
+ // ^^^^-- this cell
838
+ // ```
839
+ if (range[0] !== 0) {
840
+ assert(previousCell, 'expected previous cell enter')
841
+ previousCell.end = Object.assign({}, getPoint(context.events, range[0]))
842
+ map.add(range[0], 0, [['exit', previousCell, context]])
843
+ }
844
+
845
+ // Insert enter of this cell.
846
+ //
847
+ // ```markdown
848
+ // > | | aa | bb | cc |
849
+ // ^-- enter
850
+ // ^^^^-- this cell
851
+ // ```
852
+ const now = getPoint(context.events, range[1])
853
+ previousCell = {
854
+ type: groupName,
855
+ start: Object.assign({}, now),
856
+ // Note: correct end is set later.
857
+ end: Object.assign({}, now)
858
+ }
859
+ map.add(range[1], 0, [['enter', previousCell, context]])
860
+
861
+ // Insert text start at first data start and end at last data end, and
862
+ // remove events between.
863
+ //
864
+ // ```markdown
865
+ // > | | aa | bb | cc |
866
+ // ^-- enter
867
+ // ^-- exit
868
+ // ^^^^-- this cell
869
+ // ```
870
+ if (range[2] !== 0) {
871
+ const relatedStart = getPoint(context.events, range[2])
872
+ const relatedEnd = getPoint(context.events, range[3])
873
+ /** @type {Token} */
874
+ const valueToken = {
875
+ type: valueName,
876
+ start: Object.assign({}, relatedStart),
877
+ end: Object.assign({}, relatedEnd)
878
+ }
879
+ map.add(range[2], 0, [['enter', valueToken, context]])
880
+ assert(range[3] !== 0)
881
+
882
+ if (rowKind !== 2) {
883
+ // Fix positional info on remaining events
884
+ const start = context.events[range[2]]
885
+ const end = context.events[range[3]]
886
+ start[1].end = Object.assign({}, end[1].end)
887
+ start[1].type = types.chunkText
888
+ start[1].contentType = constants.contentTypeText
889
+
890
+ // Remove if needed.
891
+ if (range[3] > range[2] + 1) {
892
+ const a = range[2] + 1
893
+ const b = range[3] - range[2] - 1
894
+ map.add(a, b, [])
895
+ }
896
+ }
897
+
898
+ map.add(range[3] + 1, 0, [['exit', valueToken, context]])
899
+ }
900
+
901
+ // Insert an exit for the last cell, if at the row end.
902
+ //
903
+ // ```markdown
904
+ // > | | aa | bb | cc |
905
+ // ^-- exit
906
+ // ^^^^^^-- this cell (the last one contains two “between” parts)
907
+ // ```
908
+ if (rowEnd !== undefined) {
909
+ previousCell.end = Object.assign({}, getPoint(context.events, rowEnd))
910
+ map.add(rowEnd, 0, [['exit', previousCell, context]])
911
+ previousCell = undefined
912
+ }
913
+
914
+ return previousCell
915
+ }
916
+
917
+ /**
918
+ * Generate table end (and table body end).
919
+ *
920
+ * @param {Readonly<EditMap>} map
921
+ * Edit map to apply to.
922
+ * @param {Readonly<TokenizeContext>} context
923
+ * Tokenize context.
924
+ * @param {number} index
925
+ * Index within the events where the table end should be inserted.
926
+ * @param {Token} table
927
+ * Table token.
928
+ * @param {Token | undefined} tableBody
929
+ * Table body token, if any.
930
+ * @returns {undefined}
931
+ * Nothing.
932
+ */
933
+ // eslint-disable-next-line max-params
934
+ function flushTableEnd(map, context, index, table, tableBody) {
935
+ /** @type {Array<Event>} */
936
+ const exits = []
937
+ const related = getPoint(context.events, index)
938
+
939
+ if (tableBody) {
940
+ tableBody.end = Object.assign({}, related)
941
+ exits.push(['exit', tableBody, context])
942
+ }
943
+
944
+ table.end = Object.assign({}, related)
945
+ exits.push(['exit', table, context])
946
+
947
+ map.add(index + 1, 0, exits)
948
+ }
949
+
950
+ /**
951
+ * Get the point (start or end) for a given event in the list of events.
952
+ *
953
+ * @param {Readonly<Array<Event>>} events
954
+ * List of events.
955
+ * @param {number} index
956
+ * Index of the event to get the point for.
957
+ * @returns {Readonly<Point>}
958
+ * Start point for enter and end point for exit.
959
+ */
960
+ function getPoint(events, index) {
961
+ const event = events[index]
962
+ const side = event[0] === 'enter' ? 'start' : 'end'
963
+ return event[1][side]
964
+ }