markdownlint 0.30.0 → 0.31.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.
@@ -1,4 +1,4 @@
1
- /*! markdownlint 0.30.0 https://github.com/DavidAnson/markdownlint @license MIT */
1
+ /*! markdownlint 0.31.0 https://github.com/DavidAnson/markdownlint @license MIT */
2
2
  var markdownlint;
3
3
  /******/ (() => { // webpackBootstrap
4
4
  /******/ var __webpack_modules__ = ({
@@ -34,16 +34,16 @@ module.exports = webpackEmptyContext;
34
34
 
35
35
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
36
36
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
37
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
37
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
38
38
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
39
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
39
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
40
40
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
41
41
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
42
42
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
43
43
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
44
44
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
45
45
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
46
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
46
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
47
47
  var micromark = __webpack_require__(/*! ./micromark.cjs */ "../helpers/micromark.cjs");
48
48
  var _require = __webpack_require__(/*! ./shared.js */ "../helpers/shared.js"),
49
49
  newLineRe = _require.newLineRe;
@@ -347,12 +347,18 @@ module.exports.unorderedListStyleFor = function unorderedListStyleFor(token) {
347
347
  }
348
348
  };
349
349
 
350
+ /**
351
+ * @callback TokenCallback
352
+ * @param {MarkdownItToken} token Current token.
353
+ * @returns {void}
354
+ */
355
+
350
356
  /**
351
357
  * Calls the provided function for each matching token.
352
358
  *
353
359
  * @param {Object} params RuleParams instance.
354
360
  * @param {string} type Token type identifier.
355
- * @param {Function} handler Callback function.
361
+ * @param {TokenCallback} handler Callback function.
356
362
  * @returns {void}
357
363
  */
358
364
  function filterTokens(params, type, handler) {
@@ -373,8 +379,17 @@ function filterTokens(params, type, handler) {
373
379
  }
374
380
  module.exports.filterTokens = filterTokens;
375
381
 
376
- // Get line metadata array
377
- module.exports.getLineMetadata = function getLineMetadata(params) {
382
+ /**
383
+ * @typedef {Array} LineMetadata
384
+ */
385
+
386
+ /**
387
+ * Gets a line metadata array.
388
+ *
389
+ * @param {Object} params RuleParams instance.
390
+ * @returns {LineMetadata} Line metadata.
391
+ */
392
+ function getLineMetadata(params) {
378
393
  var lineMetadata = params.lines.map(function (line, index) {
379
394
  return [line, index, false, 0, false, false, false];
380
395
  });
@@ -406,14 +421,27 @@ module.exports.getLineMetadata = function getLineMetadata(params) {
406
421
  lineMetadata[token.map[0]][6] = true;
407
422
  });
408
423
  return lineMetadata;
409
- };
424
+ }
425
+ module.exports.getLineMetadata = getLineMetadata;
426
+
427
+ /**
428
+ * @callback EachLineCallback
429
+ * @param {string} line Line content.
430
+ * @param {number} lineIndex Line index (0-based).
431
+ * @param {boolean} inCode Iff in a code block.
432
+ * @param {number} onFence + if open, - if closed, 0 otherwise.
433
+ * @param {boolean} inTable Iff in a table.
434
+ * @param {boolean} inItem Iff in a list item.
435
+ * @param {boolean} inBreak Iff in semantic break.
436
+ * @returns {void}
437
+ */
410
438
 
411
439
  /**
412
440
  * Calls the provided function for each line.
413
441
  *
414
- * @param {Object} lineMetadata Line metadata object.
415
- * @param {Function} handler Function taking (line, lineIndex, inCode, onFence,
416
- * inTable, inItem, inBreak).
442
+ * @param {LineMetadata} lineMetadata Line metadata object.
443
+ * @param {EachLineCallback} handler Function taking (line, lineIndex, inCode,
444
+ * onFence, inTable, inItem, inBreak).
417
445
  * @returns {void}
418
446
  */
419
447
  function forEachLine(lineMetadata, handler) {
@@ -422,6 +450,7 @@ function forEachLine(lineMetadata, handler) {
422
450
  try {
423
451
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
424
452
  var metadata = _step2.value;
453
+ // @ts-ignore
425
454
  handler.apply(void 0, _toConsumableArray(metadata));
426
455
  }
427
456
  } catch (err) {
@@ -514,12 +543,21 @@ module.exports.forEachHeading = function forEachHeading(params, handler) {
514
543
  }
515
544
  };
516
545
 
546
+ /**
547
+ * @callback InlineCodeSpanCallback
548
+ * @param {string} code Code content.
549
+ * @param {number} lineIndex Line index (0-based).
550
+ * @param {number} columnIndex Column index (0-based).
551
+ * @param {number} ticks Count of backticks.
552
+ * @returns {void}
553
+ */
554
+
517
555
  /**
518
556
  * Calls the provided function for each inline code span's content.
519
557
  *
520
558
  * @param {string} input Markdown content.
521
- * @param {Function} handler Callback function taking (code, lineIndex,
522
- * columnIndex, ticks).
559
+ * @param {InlineCodeSpanCallback} handler Callback function taking (code,
560
+ * lineIndex, columnIndex, ticks).
523
561
  * @returns {void}
524
562
  */
525
563
  function forEachInlineCodeSpan(input, handler) {
@@ -989,6 +1027,26 @@ function expandTildePath(file, os) {
989
1027
  }
990
1028
  module.exports.expandTildePath = expandTildePath;
991
1029
 
1030
+ // Copied from markdownlint.js to avoid TypeScript compiler import() issue.
1031
+ /**
1032
+ * @typedef {Object} MarkdownItToken
1033
+ * @property {string[][]} attrs HTML attributes.
1034
+ * @property {boolean} block Block-level token.
1035
+ * @property {MarkdownItToken[]} children Child nodes.
1036
+ * @property {string} content Tag contents.
1037
+ * @property {boolean} hidden Ignore element.
1038
+ * @property {string} info Fence info.
1039
+ * @property {number} level Nesting level.
1040
+ * @property {number[]} map Beginning/ending line numbers.
1041
+ * @property {string} markup Markup text.
1042
+ * @property {Object} meta Arbitrary data.
1043
+ * @property {number} nesting Level change.
1044
+ * @property {string} tag HTML tag name.
1045
+ * @property {string} type Token type.
1046
+ * @property {number} lineNumber Line number (1-based).
1047
+ * @property {string} line Line content.
1048
+ */
1049
+
992
1050
  /***/ }),
993
1051
 
994
1052
  /***/ "../helpers/shared.js":
@@ -1110,21 +1168,17 @@ module.exports = {
1110
1168
 
1111
1169
 
1112
1170
  // @ts-ignore
1113
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
1114
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
1115
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1116
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
1117
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
1118
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1119
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1171
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
1172
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1173
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1120
1174
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1121
1175
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
1122
1176
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
1123
1177
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
1124
1178
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1125
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
1179
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
1126
1180
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1127
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
1181
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
1128
1182
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
1129
1183
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
1130
1184
  var _require = __webpack_require__(/*! markdownlint-micromark */ "markdownlint-micromark"),
@@ -1137,6 +1191,7 @@ var _require = __webpack_require__(/*! markdownlint-micromark */ "markdownlint-m
1137
1191
  preprocess = _require.preprocess;
1138
1192
  var _require2 = __webpack_require__(/*! ./shared.js */ "../helpers/shared.js"),
1139
1193
  newLineRe = _require2.newLineRe;
1194
+ var flatTokensSymbol = Symbol("flat-tokens");
1140
1195
 
1141
1196
  /**
1142
1197
  * Markdown token.
@@ -1149,9 +1204,24 @@ var _require2 = __webpack_require__(/*! ./shared.js */ "../helpers/shared.js"),
1149
1204
  * @property {number} endColumn End column (1-based).
1150
1205
  * @property {string} text Token text.
1151
1206
  * @property {Token[]} children Child tokens.
1152
- * @property {Token[]} [htmlFlowChildren] Child tokens for htmlFlow.
1153
1207
  */
1154
1208
 
1209
+ /**
1210
+ * Returns whether a token is an htmlFlow type containing an HTML comment.
1211
+ *
1212
+ * @param {Token} token Micromark token.
1213
+ * @returns {boolean} True iff token is htmlFlow containing a comment.
1214
+ */
1215
+ function isHtmlFlowComment(token) {
1216
+ var text = token.text,
1217
+ type = token.type;
1218
+ if (type === "htmlFlow" && text.startsWith("<!--") && text.endsWith("-->")) {
1219
+ var comment = text.slice(4, -3);
1220
+ return !comment.startsWith(">") && !comment.startsWith("->") && !comment.endsWith("-") && !comment.includes("--");
1221
+ }
1222
+ return false;
1223
+ }
1224
+
1155
1225
  /**
1156
1226
  * Parses a Markdown document and returns Micromark events.
1157
1227
  *
@@ -1197,12 +1267,14 @@ function micromarkParseWithOffset(markdown, micromarkOptions, referencesDefined,
1197
1267
 
1198
1268
  // Create Token objects
1199
1269
  var document = [];
1270
+ var flatTokens = [];
1200
1271
  var current = {
1201
1272
  "children": document
1202
1273
  };
1203
1274
  var history = [current];
1204
1275
  var reparseOptions = null;
1205
1276
  var lines = null;
1277
+ var skipHtmlFlowChildren = false;
1206
1278
  var _iterator = _createForOfIteratorHelper(events),
1207
1279
  _step;
1208
1280
  try {
@@ -1220,7 +1292,7 @@ function micromarkParseWithOffset(markdown, micromarkOptions, referencesDefined,
1220
1292
  var endColumn = end["column"],
1221
1293
  endLine = end["line"];
1222
1294
  var text = context.sliceSerialize(token);
1223
- if (kind === "enter") {
1295
+ if (kind === "enter" && !skipHtmlFlowChildren) {
1224
1296
  var previous = current;
1225
1297
  history.push(previous);
1226
1298
  current = {
@@ -1232,7 +1304,11 @@ function micromarkParseWithOffset(markdown, micromarkOptions, referencesDefined,
1232
1304
  text: text,
1233
1305
  "children": []
1234
1306
  };
1235
- if (current.type === "htmlFlow") {
1307
+ previous.children.push(current);
1308
+ flatTokens.push(current);
1309
+ // @ts-ignore
1310
+ if (current.type === "htmlFlow" && !isHtmlFlowComment(current)) {
1311
+ skipHtmlFlowChildren = true;
1236
1312
  if (!reparseOptions || !lines) {
1237
1313
  reparseOptions = _objectSpread(_objectSpread({}, micromarkOptions), {}, {
1238
1314
  "extensions": [{
@@ -1244,14 +1320,22 @@ function micromarkParseWithOffset(markdown, micromarkOptions, referencesDefined,
1244
1320
  lines = markdown.split(newLineRe);
1245
1321
  }
1246
1322
  var reparseMarkdown = lines.slice(current.startLine - 1, current.endLine).join("\n");
1247
- current.htmlFlowChildren = micromarkParseWithOffset(reparseMarkdown, reparseOptions, referencesDefined, current.startLine - 1);
1323
+ var tokens = micromarkParseWithOffset(reparseMarkdown, reparseOptions, referencesDefined, current.startLine - 1);
1324
+ current.children = tokens;
1325
+ // Avoid stack overflow of Array.push(...spread)
1326
+ // eslint-disable-next-line unicorn/prefer-spread
1327
+ flatTokens = flatTokens.concat(tokens[flatTokensSymbol]);
1248
1328
  }
1249
- previous.children.push(current);
1250
1329
  } else if (kind === "exit") {
1251
- Object.freeze(current.children);
1252
- Object.freeze(current);
1253
- // @ts-ignore
1254
- current = history.pop();
1330
+ if (type === "htmlFlow") {
1331
+ skipHtmlFlowChildren = false;
1332
+ }
1333
+ if (!skipHtmlFlowChildren) {
1334
+ Object.freeze(current.children);
1335
+ Object.freeze(current);
1336
+ // @ts-ignore
1337
+ current = history.pop();
1338
+ }
1255
1339
  }
1256
1340
  }
1257
1341
 
@@ -1261,6 +1345,9 @@ function micromarkParseWithOffset(markdown, micromarkOptions, referencesDefined,
1261
1345
  } finally {
1262
1346
  _iterator.f();
1263
1347
  }
1348
+ Object.defineProperty(document, flatTokensSymbol, {
1349
+ "value": flatTokens
1350
+ });
1264
1351
  Object.freeze(document);
1265
1352
  return document;
1266
1353
  }
@@ -1279,25 +1366,51 @@ function micromarkParse(markdown) {
1279
1366
  return micromarkParseWithOffset(markdown, micromarkOptions, referencesDefined, 0);
1280
1367
  }
1281
1368
 
1369
+ /**
1370
+ * @callback AllowedPredicate
1371
+ * @param {Token} token Micromark token.
1372
+ * @returns {boolean} True iff allowed.
1373
+ */
1374
+
1375
+ /**
1376
+ * @callback TransformPredicate
1377
+ * @param {Token} token Micromark token.
1378
+ * @returns {Token[]} Child tokens.
1379
+ */
1380
+
1282
1381
  /**
1283
1382
  * Filter a list of Micromark tokens by predicate.
1284
1383
  *
1285
1384
  * @param {Token[]} tokens Micromark tokens.
1286
- * @param {Function} allowed Allowed token predicate.
1287
- * @param {Function} [transformChildren] Transform children predicate.
1385
+ * @param {AllowedPredicate} allowed Allowed token predicate.
1386
+ * @param {TransformPredicate} [transformChildren] Transform predicate.
1288
1387
  * @returns {Token[]} Filtered tokens.
1289
1388
  */
1290
1389
  function filterByPredicate(tokens, allowed, transformChildren) {
1291
1390
  var result = [];
1292
- var pending = _toConsumableArray(tokens);
1293
- var token = null;
1294
- while (token = pending.shift()) {
1295
- if (allowed(token)) {
1296
- result.push(token);
1297
- }
1298
- if (token.children.length > 0) {
1299
- var transformed = transformChildren ? transformChildren(token) : token.children;
1300
- pending.unshift.apply(pending, _toConsumableArray(transformed));
1391
+ var queue = [{
1392
+ "array": tokens,
1393
+ "index": 0
1394
+ }];
1395
+ while (queue.length > 0) {
1396
+ var current = queue[queue.length - 1];
1397
+ var array = current.array,
1398
+ index = current.index;
1399
+ if (index < array.length) {
1400
+ var token = array[current.index++];
1401
+ if (allowed(token)) {
1402
+ result.push(token);
1403
+ }
1404
+ var children = token.children;
1405
+ if (children.length > 0) {
1406
+ var transformed = transformChildren ? transformChildren(token) : children;
1407
+ queue.push({
1408
+ "array": transformed,
1409
+ "index": 0
1410
+ });
1411
+ }
1412
+ } else {
1413
+ queue.pop();
1301
1414
  }
1302
1415
  }
1303
1416
  return result;
@@ -1311,59 +1424,14 @@ function filterByPredicate(tokens, allowed, transformChildren) {
1311
1424
  * @returns {Token[]} Filtered tokens.
1312
1425
  */
1313
1426
  function filterByTypes(tokens, allowed) {
1314
- return filterByPredicate(tokens, function (token) {
1427
+ var predicate = function predicate(token) {
1315
1428
  return allowed.includes(token.type);
1316
- });
1317
- }
1318
-
1319
- /**
1320
- * Filter a list of Micromark tokens for HTML tokens.
1321
- *
1322
- * @param {Token[]} tokens Micromark tokens.
1323
- * @returns {Token[]} Filtered tokens.
1324
- */
1325
- function filterByHtmlTokens(tokens) {
1326
- var result = [];
1327
- var pending = [tokens];
1328
- var current = null;
1329
- while (current = pending.shift()) {
1330
- var _iterator2 = _createForOfIteratorHelper(filterByTypes(current, ["htmlFlow", "htmlText"])),
1331
- _step2;
1332
- try {
1333
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
1334
- var token = _step2.value;
1335
- if (token.type === "htmlText") {
1336
- result.push(token);
1337
- } else {
1338
- // token.type === "htmlFlow"
1339
- // @ts-ignore
1340
- pending.push(token.htmlFlowChildren);
1341
- }
1342
- }
1343
- } catch (err) {
1344
- _iterator2.e(err);
1345
- } finally {
1346
- _iterator2.f();
1347
- }
1348
- }
1349
- return result;
1350
- }
1351
-
1352
- /**
1353
- * Returns a list of all nested child tokens.
1354
- *
1355
- * @param {Token} parent Micromark token.
1356
- * @returns {Token[]} Flattened children.
1357
- */
1358
- function flattenedChildren(parent) {
1359
- var result = [];
1360
- var pending = _toConsumableArray(parent.children);
1361
- var token = null;
1362
- while (token = pending.shift()) {
1363
- result.push(token);
1364
- pending.unshift.apply(pending, _toConsumableArray(token.children));
1429
+ };
1430
+ var flatTokens = tokens[flatTokensSymbol];
1431
+ if (flatTokens) {
1432
+ return flatTokens.filter(predicate);
1365
1433
  }
1366
- return result;
1434
+ return filterByPredicate(tokens, predicate);
1367
1435
  }
1368
1436
 
1369
1437
  /**
@@ -1457,10 +1525,8 @@ function tokenIfType(token, type) {
1457
1525
  }
1458
1526
  module.exports = {
1459
1527
  "parse": micromarkParse,
1460
- filterByHtmlTokens: filterByHtmlTokens,
1461
1528
  filterByPredicate: filterByPredicate,
1462
1529
  filterByTypes: filterByTypes,
1463
- flattenedChildren: flattenedChildren,
1464
1530
  getHeadingLevel: getHeadingLevel,
1465
1531
  getHtmlTagInfo: getHtmlTagInfo,
1466
1532
  getMicromarkEvents: getMicromarkEvents,
@@ -1486,7 +1552,7 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArra
1486
1552
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1487
1553
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
1488
1554
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
1489
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
1555
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
1490
1556
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1491
1557
  var map = new Map();
1492
1558
  module.exports.set = function (keyValuePairs) {
@@ -1529,7 +1595,7 @@ module.exports.referenceLinkImageData = function () {
1529
1595
  module.exports.deprecatedRuleNames = ["MD002", "MD006"];
1530
1596
  module.exports.fixableRuleNames = ["MD004", "MD005", "MD006", "MD007", "MD009", "MD010", "MD011", "MD012", "MD014", "MD018", "MD019", "MD020", "MD021", "MD022", "MD023", "MD026", "MD027", "MD030", "MD031", "MD032", "MD034", "MD037", "MD038", "MD039", "MD044", "MD047", "MD049", "MD050", "MD051", "MD053"];
1531
1597
  module.exports.homepage = "https://github.com/DavidAnson/markdownlint";
1532
- module.exports.version = "0.30.0";
1598
+ module.exports.version = "0.31.0";
1533
1599
 
1534
1600
  /***/ }),
1535
1601
 
@@ -1544,8 +1610,8 @@ module.exports.version = "0.30.0";
1544
1610
 
1545
1611
 
1546
1612
 
1547
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1548
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1613
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1614
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1549
1615
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1550
1616
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
1551
1617
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
@@ -1553,12 +1619,12 @@ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableTo
1553
1619
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1554
1620
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
1555
1621
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
1556
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
1622
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
1557
1623
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
1558
1624
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1559
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
1625
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
1560
1626
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1561
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
1627
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
1562
1628
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
1563
1629
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
1564
1630
  var path = __webpack_require__(/*! node:path */ "?9a52");
@@ -1603,15 +1669,15 @@ function validateRuleList(ruleList, synchronous) {
1603
1669
  function newError(property) {
1604
1670
  return new Error("Property '" + property + "' of custom rule at index " + customIndex + " is incorrect.");
1605
1671
  }
1606
- for (var _i2 = 0, _arr2 = ["names", "tags"]; _i2 < _arr2.length; _i2++) {
1607
- var property = _arr2[_i2];
1672
+ for (var _i = 0, _arr = ["names", "tags"]; _i < _arr.length; _i++) {
1673
+ var property = _arr[_i];
1608
1674
  var value = rule[property];
1609
1675
  if (!result && (!value || !Array.isArray(value) || value.length === 0 || !value.every(helpers.isString) || value.some(helpers.isEmptyString))) {
1610
1676
  result = newError(property);
1611
1677
  }
1612
1678
  }
1613
- for (var _i3 = 0, _arr3 = [["description", "string"], ["function", "function"]]; _i3 < _arr3.length; _i3++) {
1614
- var propertyInfo = _arr3[_i3];
1679
+ for (var _i2 = 0, _arr2 = [["description", "string"], ["function", "function"]]; _i2 < _arr2.length; _i2++) {
1680
+ var propertyInfo = _arr2[_i2];
1615
1681
  var _property = propertyInfo[0];
1616
1682
  var _value = rule[_property];
1617
1683
  if (!result && (!_value || _typeof(_value) !== propertyInfo[1])) {
@@ -1687,8 +1753,8 @@ function newResults(ruleList) {
1687
1753
  var results = [];
1688
1754
  var keys = Object.keys(lintResults);
1689
1755
  keys.sort();
1690
- for (var _i4 = 0, _keys = keys; _i4 < _keys.length; _i4++) {
1691
- var file = _keys[_i4];
1756
+ for (var _i3 = 0, _keys = keys; _i3 < _keys.length; _i3++) {
1757
+ var file = _keys[_i3];
1692
1758
  var fileResults = lintResults[file];
1693
1759
  if (Array.isArray(fileResults)) {
1694
1760
  var _iterator4 = _createForOfIteratorHelper(fileResults),
@@ -1721,8 +1787,8 @@ function newResults(ruleList) {
1721
1787
  _iterator5.f();
1722
1788
  }
1723
1789
  }
1724
- for (var _i5 = 0, _Object$entries = Object.entries(fileResults); _i5 < _Object$entries.length; _i5++) {
1725
- var _Object$entries$_i = _slicedToArray(_Object$entries[_i5], 2),
1790
+ for (var _i4 = 0, _Object$entries = Object.entries(fileResults); _i4 < _Object$entries.length; _i4++) {
1791
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i4], 2),
1726
1792
  _ruleName = _Object$entries$_i[0],
1727
1793
  ruleResults = _Object$entries$_i[1];
1728
1794
  var _rule = ruleNameToRule[_ruleName.toUpperCase()];
@@ -2004,8 +2070,8 @@ function getEffectiveConfig(ruleList, config, aliasToRuleNames) {
2004
2070
  } finally {
2005
2071
  _iterator15.f();
2006
2072
  }
2007
- for (var _i6 = 0, _Object$keys = Object.keys(config); _i6 < _Object$keys.length; _i6++) {
2008
- var key = _Object$keys[_i6];
2073
+ for (var _i5 = 0, _Object$keys = Object.keys(config); _i5 < _Object$keys.length; _i5++) {
2074
+ var key = _Object$keys[_i5];
2009
2075
  var value = config[key];
2010
2076
  if (value) {
2011
2077
  if (!(value instanceof Object)) {
@@ -2229,7 +2295,7 @@ function getEnabledRulesPerLineNumber(ruleList, lines, frontMatterLines, noInlin
2229
2295
  * @param {boolean} handleRuleFailures Whether to handle exceptions in rules.
2230
2296
  * @param {boolean} noInlineConfig Whether to allow inline configuration.
2231
2297
  * @param {number} resultVersion Version of the LintResults object to return.
2232
- * @param {Function} callback Callback (err, result) function.
2298
+ * @param {LintContentCallback} callback Callback (err, result) function.
2233
2299
  * @returns {void}
2234
2300
  */
2235
2301
  function lintContent(ruleList, aliasToRuleNames, name, content, md, config, configParsers, frontMatter, handleRuleFailures, noInlineConfig, resultVersion, callback) {
@@ -2496,7 +2562,7 @@ function lintContent(ruleList, aliasToRuleNames, name, content, md, config, conf
2496
2562
  * @param {number} resultVersion Version of the LintResults object to return.
2497
2563
  * @param {Object} fs File system implementation.
2498
2564
  * @param {boolean} synchronous Whether to execute synchronously.
2499
- * @param {Function} callback Callback (err, result) function.
2565
+ * @param {LintContentCallback} callback Callback (err, result) function.
2500
2566
  * @returns {void}
2501
2567
  */
2502
2568
  function lintFile(ruleList, aliasToRuleNames, file, md, config, configParsers, frontMatter, handleRuleFailures, noInlineConfig, resultVersion, fs, synchronous, callback) {
@@ -2520,7 +2586,7 @@ function lintFile(ruleList, aliasToRuleNames, file, md, config, configParsers, f
2520
2586
  *
2521
2587
  * @param {Options | null} options Options object.
2522
2588
  * @param {boolean} synchronous Whether to execute synchronously.
2523
- * @param {Function} callback Callback (err, result) function.
2589
+ * @param {LintCallback} callback Callback (err, result) function.
2524
2590
  * @returns {void}
2525
2591
  */
2526
2592
  function lintInput(options, synchronous, callback) {
@@ -2665,7 +2731,7 @@ function markdownlintPromise(options) {
2665
2731
  * @returns {LintResults} Results object.
2666
2732
  */
2667
2733
  function markdownlintSync(options) {
2668
- var results = {};
2734
+ var results = null;
2669
2735
  lintInput(options, true, function callback(error, res) {
2670
2736
  if (error) {
2671
2737
  throw error;
@@ -2807,6 +2873,7 @@ function readConfig(file, parsers, fs, callback) {
2807
2873
  }
2808
2874
  // Read file
2809
2875
  file = helpers.expandTildePath(file, __webpack_require__(/*! node:os */ "?e6c4"));
2876
+ // eslint-disable-next-line n/prefer-promises/fs
2810
2877
  fs.readFile(file, "utf8", function (err, content) {
2811
2878
  if (err) {
2812
2879
  // @ts-ignore
@@ -3043,12 +3110,21 @@ module.exports = markdownlint;
3043
3110
  * @property {string} [insertText] Text to insert (after deleting).
3044
3111
  */
3045
3112
 
3113
+ /**
3114
+ * Called with the result of linting a string or document.
3115
+ *
3116
+ * @callback LintContentCallback
3117
+ * @param {Error | null} error Error iff failed.
3118
+ * @param {LintError[]} [result] Result iff successful.
3119
+ * @returns {void}
3120
+ */
3121
+
3046
3122
  /**
3047
3123
  * Called with the result of the lint function.
3048
3124
  *
3049
3125
  * @callback LintCallback
3050
- * @param {Error | null} err Error object or null.
3051
- * @param {LintResults} [results] Lint results.
3126
+ * @param {Error | null} error Error object iff failed.
3127
+ * @param {LintResults} [results] Lint results iff succeeded.
3052
3128
  * @returns {void}
3053
3129
  */
3054
3130
 
@@ -3691,7 +3767,7 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArra
3691
3767
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3692
3768
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
3693
3769
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
3694
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
3770
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
3695
3771
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
3696
3772
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
3697
3773
  addError = _require.addError,
@@ -3885,9 +3961,9 @@ module.exports = {
3885
3961
 
3886
3962
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
3887
3963
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3888
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
3964
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
3889
3965
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
3890
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
3966
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
3891
3967
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
3892
3968
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
3893
3969
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
@@ -3998,7 +4074,7 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArra
3998
4074
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3999
4075
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4000
4076
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
4001
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
4077
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
4002
4078
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
4003
4079
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
4004
4080
  addErrorContext = _require.addErrorContext,
@@ -4045,7 +4121,7 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArra
4045
4121
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4046
4122
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4047
4123
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
4048
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
4124
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
4049
4125
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
4050
4126
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
4051
4127
  addErrorContext = _require.addErrorContext,
@@ -4105,7 +4181,7 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArra
4105
4181
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4106
4182
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4107
4183
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
4108
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
4184
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
4109
4185
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
4110
4186
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
4111
4187
  addErrorContext = _require.addErrorContext,
@@ -4164,13 +4240,13 @@ module.exports = {
4164
4240
 
4165
4241
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4166
4242
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4167
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
4243
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
4168
4244
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
4169
4245
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
4170
4246
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4171
4247
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
4172
4248
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
4173
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
4249
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
4174
4250
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4175
4251
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
4176
4252
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
@@ -4248,7 +4324,7 @@ module.exports = {
4248
4324
  var linesBelow = getLinesBelow(heading);
4249
4325
  if (linesBelow >= 0) {
4250
4326
  var actualBelow = 0;
4251
- for (var _i2 = 0; _i2 < linesBelow && isBlankLine(lines[endLine + _i2]); _i2++) {
4327
+ for (var _i = 0; _i < linesBelow && isBlankLine(lines[endLine + _i]); _i++) {
4252
4328
  actualBelow++;
4253
4329
  }
4254
4330
  addErrorDetailIf(onError, startLine, linesBelow, actualBelow, "Below", line, null, {
@@ -4282,7 +4358,7 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArra
4282
4358
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4283
4359
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4284
4360
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
4285
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
4361
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
4286
4362
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
4287
4363
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
4288
4364
  addErrorContext = _require.addErrorContext,
@@ -4475,9 +4551,9 @@ module.exports = {
4475
4551
 
4476
4552
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4477
4553
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4478
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
4554
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
4479
4555
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
4480
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
4556
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
4481
4557
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4482
4558
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
4483
4559
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
@@ -4598,9 +4674,9 @@ module.exports = {
4598
4674
 
4599
4675
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4600
4676
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4601
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
4677
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
4602
4678
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
4603
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
4679
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
4604
4680
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4605
4681
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
4606
4682
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
@@ -4703,9 +4779,9 @@ module.exports = {
4703
4779
 
4704
4780
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4705
4781
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4706
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
4782
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
4707
4783
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
4708
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
4784
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
4709
4785
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4710
4786
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
4711
4787
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
@@ -4783,7 +4859,7 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArra
4783
4859
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4784
4860
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4785
4861
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
4786
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
4862
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
4787
4863
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
4788
4864
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
4789
4865
  addErrorContext = _require.addErrorContext,
@@ -4838,8 +4914,7 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
4838
4914
  blockquotePrefixRe = _require.blockquotePrefixRe,
4839
4915
  isBlankLine = _require.isBlankLine;
4840
4916
  var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
4841
- filterByPredicate = _require2.filterByPredicate,
4842
- flattenedChildren = _require2.flattenedChildren;
4917
+ filterByPredicate = _require2.filterByPredicate;
4843
4918
  var nonContentTokens = new Set(["blockQuoteMarker", "blockQuotePrefix", "blockQuotePrefixWhitespace", "lineEnding", "lineEndingBlank", "linePrefix", "listItemIndent"]);
4844
4919
  var isList = function isList(token) {
4845
4920
  return token.type === "listOrdered" || token.type === "listUnordered";
@@ -4862,7 +4937,7 @@ module.exports = {
4862
4937
 
4863
4938
  // For every top-level list...
4864
4939
  var topLevelLists = filterByPredicate(parsers.micromark.tokens, isList, function (token) {
4865
- return isList(token) ? [] : token.children;
4940
+ return isList(token) || token.type === "htmlFlow" ? [] : token.children;
4866
4941
  });
4867
4942
  var _iterator = _createForOfIteratorHelper(topLevelLists),
4868
4943
  _step;
@@ -4877,7 +4952,10 @@ module.exports = {
4877
4952
 
4878
4953
  // Find the "visual" end of the list
4879
4954
  var endLine = list.endLine;
4880
- var _iterator2 = _createForOfIteratorHelper(flattenedChildren(list).reverse()),
4955
+ var flattenedChildren = filterByPredicate(list.children, function () {
4956
+ return true;
4957
+ });
4958
+ var _iterator2 = _createForOfIteratorHelper(flattenedChildren.reverse()),
4881
4959
  _step2;
4882
4960
  try {
4883
4961
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -4926,7 +5004,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
4926
5004
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
4927
5005
  addError = _require.addError;
4928
5006
  var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
4929
- filterByHtmlTokens = _require2.filterByHtmlTokens,
5007
+ filterByTypes = _require2.filterByTypes,
4930
5008
  getHtmlTagInfo = _require2.getHtmlTagInfo;
4931
5009
  var nextLinesRe = /[\r\n][\s\S]*$/;
4932
5010
  module.exports = {
@@ -4939,7 +5017,8 @@ module.exports = {
4939
5017
  allowedElements = allowedElements.map(function (element) {
4940
5018
  return element.toLowerCase();
4941
5019
  });
4942
- var _iterator = _createForOfIteratorHelper(filterByHtmlTokens(params.parsers.micromark.tokens)),
5020
+ var tokens = params.parsers.micromark.tokens;
5021
+ var _iterator = _createForOfIteratorHelper(filterByTypes(tokens, ["htmlText"])),
4943
5022
  _step;
4944
5023
  try {
4945
5024
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -5179,19 +5258,15 @@ module.exports = {
5179
5258
 
5180
5259
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
5181
5260
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5182
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
5261
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
5183
5262
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
5184
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
5185
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
5186
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5263
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
5187
5264
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5188
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5189
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
5190
5265
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5191
5266
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
5192
5267
  addError = _require.addError;
5193
- var emphasisStartTextRe = /^(\S{1,3})(\s+)\S/;
5194
- var emphasisEndTextRe = /\S(\s+)(\S{1,3})$/;
5268
+ var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
5269
+ filterByPredicate = _require2.filterByPredicate;
5195
5270
  module.exports = {
5196
5271
  "names": ["MD037", "no-space-in-emphasis"],
5197
5272
  "description": "Spaces inside emphasis markers",
@@ -5205,96 +5280,100 @@ module.exports = {
5205
5280
  var marker = _arr[_i];
5206
5281
  emphasisTokensByMarker.set(marker, []);
5207
5282
  }
5208
- var pending = _toConsumableArray(parsers.micromark.tokens);
5209
- var token = null;
5210
- while (token = pending.shift()) {
5211
- // Use reparsed children of htmlFlow tokens
5212
- if (token.type === "htmlFlow") {
5213
- pending.unshift.apply(pending, _toConsumableArray(token.htmlFlowChildren));
5214
- continue;
5215
- }
5216
- pending.push.apply(pending, _toConsumableArray(token.children));
5217
-
5218
- // Build lists of bare tokens for each emphasis marker type
5219
- var _iterator = _createForOfIteratorHelper(emphasisTokensByMarker.values()),
5220
- _step;
5221
- try {
5222
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
5223
- var emphasisTokens = _step.value;
5224
- emphasisTokens.length = 0;
5283
+ var tokens = filterByPredicate(parsers.micromark.tokens, function (token) {
5284
+ return token.children.some(function (child) {
5285
+ return child.type === "data";
5286
+ });
5287
+ });
5288
+ var _iterator = _createForOfIteratorHelper(tokens),
5289
+ _step;
5290
+ try {
5291
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
5292
+ var token = _step.value;
5293
+ // Build lists of bare tokens for each emphasis marker type
5294
+ var _iterator2 = _createForOfIteratorHelper(emphasisTokensByMarker.values()),
5295
+ _step2;
5296
+ try {
5297
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
5298
+ var emphasisTokens = _step2.value;
5299
+ emphasisTokens.length = 0;
5300
+ }
5301
+ } catch (err) {
5302
+ _iterator2.e(err);
5303
+ } finally {
5304
+ _iterator2.f();
5225
5305
  }
5226
- } catch (err) {
5227
- _iterator.e(err);
5228
- } finally {
5229
- _iterator.f();
5230
- }
5231
- var _iterator2 = _createForOfIteratorHelper(token.children),
5232
- _step2;
5233
- try {
5234
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
5235
- var child = _step2.value;
5236
- var text = child.text,
5237
- type = child.type;
5238
- if (type === "data" && text.length <= 3) {
5239
- var _emphasisTokens = emphasisTokensByMarker.get(text);
5240
- if (_emphasisTokens) {
5241
- _emphasisTokens.push(child);
5306
+ var _iterator3 = _createForOfIteratorHelper(token.children),
5307
+ _step3;
5308
+ try {
5309
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
5310
+ var child = _step3.value;
5311
+ var text = child.text,
5312
+ type = child.type;
5313
+ if (type === "data" && text.length <= 3) {
5314
+ var _emphasisTokens = emphasisTokensByMarker.get(text);
5315
+ if (_emphasisTokens) {
5316
+ _emphasisTokens.push(child);
5317
+ }
5242
5318
  }
5243
5319
  }
5244
- }
5245
5320
 
5246
- // Process bare tokens for each emphasis marker type
5247
- } catch (err) {
5248
- _iterator2.e(err);
5249
- } finally {
5250
- _iterator2.f();
5251
- }
5252
- var _iterator3 = _createForOfIteratorHelper(emphasisTokensByMarker.values()),
5253
- _step3;
5254
- try {
5255
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
5256
- var _emphasisTokens2 = _step3.value;
5257
- for (var i = 0; i + 1 < _emphasisTokens2.length; i += 2) {
5258
- // Process start token of start/end pair
5259
- var startToken = _emphasisTokens2[i];
5260
- var startText = lines[startToken.startLine - 1].slice(startToken.startColumn - 1);
5261
- var startMatch = startText.match(emphasisStartTextRe);
5262
- if (startMatch) {
5263
- var _startMatch = _slicedToArray(startMatch, 3),
5264
- startContext = _startMatch[0],
5265
- startMarker = _startMatch[1],
5266
- startSpaces = _startMatch[2];
5267
- if (startMarker === startToken.text && startSpaces.length > 0) {
5321
+ // Process bare tokens for each emphasis marker type
5322
+ } catch (err) {
5323
+ _iterator3.e(err);
5324
+ } finally {
5325
+ _iterator3.f();
5326
+ }
5327
+ var _iterator4 = _createForOfIteratorHelper(emphasisTokensByMarker.entries()),
5328
+ _step4;
5329
+ try {
5330
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
5331
+ var entry = _step4.value;
5332
+ var _entry = _slicedToArray(entry, 2),
5333
+ _marker = _entry[0],
5334
+ _emphasisTokens2 = _entry[1];
5335
+ for (var i = 0; i + 1 < _emphasisTokens2.length; i += 2) {
5336
+ // Process start token of start/end pair
5337
+ var startToken = _emphasisTokens2[i];
5338
+ var startLine = lines[startToken.startLine - 1];
5339
+ var startSlice = startLine.slice(startToken.endColumn - 1);
5340
+ var startMatch = startSlice.match(/^\s+\S/);
5341
+ if (startMatch) {
5342
+ var _startMatch = _slicedToArray(startMatch, 1),
5343
+ startSpaceCharacter = _startMatch[0];
5344
+ var startContext = "".concat(_marker).concat(startSpaceCharacter);
5268
5345
  addError(onError, startToken.startLine, undefined, startContext, [startToken.startColumn, startContext.length], {
5269
5346
  "editColumn": startToken.endColumn,
5270
- "deleteCount": startSpaces.length
5347
+ "deleteCount": startSpaceCharacter.length - 1
5271
5348
  });
5272
5349
  }
5273
- }
5274
5350
 
5275
- // Process end token of start/end pair
5276
- var endToken = _emphasisTokens2[i + 1];
5277
- var endText = lines[endToken.startLine - 1].slice(0, endToken.endColumn - 1);
5278
- var endMatch = endText.match(emphasisEndTextRe);
5279
- if (endMatch) {
5280
- var _endMatch = _slicedToArray(endMatch, 3),
5281
- endContext = _endMatch[0],
5282
- endSpace = _endMatch[1],
5283
- endMarker = _endMatch[2];
5284
- if (endMarker === endToken.text && endSpace.length > 0) {
5351
+ // Process end token of start/end pair
5352
+ var endToken = _emphasisTokens2[i + 1];
5353
+ var endLine = lines[endToken.startLine - 1];
5354
+ var endSlice = endLine.slice(0, endToken.startColumn - 1);
5355
+ var endMatch = endSlice.match(/\S\s+$/);
5356
+ if (endMatch) {
5357
+ var _endMatch = _slicedToArray(endMatch, 1),
5358
+ endSpaceCharacter = _endMatch[0];
5359
+ var endContext = "".concat(endSpaceCharacter).concat(_marker);
5285
5360
  addError(onError, endToken.startLine, undefined, endContext, [endToken.endColumn - endContext.length, endContext.length], {
5286
- "editColumn": endToken.startColumn - endSpace.length,
5287
- "deleteCount": endSpace.length
5361
+ "editColumn": endToken.startColumn - (endSpaceCharacter.length - 1),
5362
+ "deleteCount": endSpaceCharacter.length - 1
5288
5363
  });
5289
5364
  }
5290
5365
  }
5291
5366
  }
5367
+ } catch (err) {
5368
+ _iterator4.e(err);
5369
+ } finally {
5370
+ _iterator4.f();
5292
5371
  }
5293
- } catch (err) {
5294
- _iterator3.e(err);
5295
- } finally {
5296
- _iterator3.f();
5297
5372
  }
5373
+ } catch (err) {
5374
+ _iterator.e(err);
5375
+ } finally {
5376
+ _iterator.f();
5298
5377
  }
5299
5378
  }
5300
5379
  };
@@ -5661,52 +5740,54 @@ module.exports = {
5661
5740
  "tags": ["headings", "headers"],
5662
5741
  "function": function MD043(params, onError) {
5663
5742
  var requiredHeadings = params.config.headings || params.config.headers;
5743
+ if (!Array.isArray(requiredHeadings)) {
5744
+ // Nothing to check; avoid doing any work
5745
+ return;
5746
+ }
5664
5747
  var matchCase = params.config.match_case || false;
5665
- if (Array.isArray(requiredHeadings)) {
5666
- var levels = {};
5667
- for (var _i = 0, _arr = [1, 2, 3, 4, 5, 6]; _i < _arr.length; _i++) {
5668
- var level = _arr[_i];
5669
- levels["h" + level] = "######".substr(-level);
5670
- }
5671
- var i = 0;
5672
- var matchAny = false;
5673
- var hasError = false;
5674
- var anyHeadings = false;
5675
- var getExpected = function getExpected() {
5676
- return requiredHeadings[i++] || "[None]";
5677
- };
5678
- var handleCase = function handleCase(str) {
5679
- return matchCase ? str : str.toLowerCase();
5680
- };
5681
- forEachHeading(params, function (heading, content) {
5682
- if (!hasError) {
5683
- anyHeadings = true;
5684
- var actual = levels[heading.tag] + " " + content;
5685
- var expected = getExpected();
5686
- if (expected === "*") {
5687
- var nextExpected = getExpected();
5688
- if (handleCase(nextExpected) !== handleCase(actual)) {
5689
- matchAny = true;
5690
- i--;
5691
- }
5692
- } else if (expected === "+") {
5748
+ var levels = {};
5749
+ for (var _i = 0, _arr = [1, 2, 3, 4, 5, 6]; _i < _arr.length; _i++) {
5750
+ var level = _arr[_i];
5751
+ levels["h" + level] = "######".substr(-level);
5752
+ }
5753
+ var i = 0;
5754
+ var matchAny = false;
5755
+ var hasError = false;
5756
+ var anyHeadings = false;
5757
+ var getExpected = function getExpected() {
5758
+ return requiredHeadings[i++] || "[None]";
5759
+ };
5760
+ var handleCase = function handleCase(str) {
5761
+ return matchCase ? str : str.toLowerCase();
5762
+ };
5763
+ forEachHeading(params, function (heading, content) {
5764
+ if (!hasError) {
5765
+ anyHeadings = true;
5766
+ var actual = levels[heading.tag] + " " + content;
5767
+ var expected = getExpected();
5768
+ if (expected === "*") {
5769
+ var nextExpected = getExpected();
5770
+ if (handleCase(nextExpected) !== handleCase(actual)) {
5693
5771
  matchAny = true;
5694
- } else if (handleCase(expected) === handleCase(actual)) {
5695
- matchAny = false;
5696
- } else if (matchAny) {
5697
5772
  i--;
5698
- } else {
5699
- addErrorDetailIf(onError, heading.lineNumber, expected, actual);
5700
- hasError = true;
5701
5773
  }
5774
+ } else if (expected === "+") {
5775
+ matchAny = true;
5776
+ } else if (handleCase(expected) === handleCase(actual)) {
5777
+ matchAny = false;
5778
+ } else if (matchAny) {
5779
+ i--;
5780
+ } else {
5781
+ addErrorDetailIf(onError, heading.lineNumber, expected, actual);
5782
+ hasError = true;
5702
5783
  }
5703
- });
5704
- var extraHeadings = requiredHeadings.length - i;
5705
- if (!hasError && (extraHeadings > 1 || extraHeadings === 1 && requiredHeadings[i] !== "*") && (anyHeadings || !requiredHeadings.every(function (heading) {
5706
- return heading === "*";
5707
- }))) {
5708
- addErrorContext(onError, params.lines.length, requiredHeadings[i]);
5709
5784
  }
5785
+ });
5786
+ var extraHeadings = requiredHeadings.length - i;
5787
+ if (!hasError && (extraHeadings > 1 || extraHeadings === 1 && requiredHeadings[i] !== "*") && (anyHeadings || !requiredHeadings.every(function (heading) {
5788
+ return heading === "*";
5789
+ }))) {
5790
+ addErrorContext(onError, params.lines.length, requiredHeadings[i]);
5710
5791
  }
5711
5792
  }
5712
5793
  };
@@ -5724,21 +5805,20 @@ module.exports = {
5724
5805
 
5725
5806
 
5726
5807
 
5727
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
5728
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5729
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
5730
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
5731
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
5732
5808
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
5733
5809
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5734
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5735
5810
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5736
5811
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
5812
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
5813
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5814
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
5815
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
5816
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
5817
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5737
5818
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5738
5819
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
5739
5820
  addErrorDetailIf = _require.addErrorDetailIf,
5740
5821
  escapeForRegExp = _require.escapeForRegExp,
5741
- newLineRe = _require.newLineRe,
5742
5822
  withinAnyRange = _require.withinAnyRange;
5743
5823
  var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
5744
5824
  filterByPredicate = _require2.filterByPredicate,
@@ -5755,70 +5835,47 @@ module.exports = {
5755
5835
  names.sort(function (a, b) {
5756
5836
  return b.length - a.length || a.localeCompare(b);
5757
5837
  });
5838
+ if (names.length === 0) {
5839
+ // Nothing to check; avoid doing any work
5840
+ return;
5841
+ }
5758
5842
  var codeBlocks = params.config.code_blocks;
5759
5843
  var includeCodeBlocks = codeBlocks === undefined ? true : !!codeBlocks;
5760
5844
  var htmlElements = params.config.html_elements;
5761
5845
  var includeHtmlElements = htmlElements === undefined ? true : !!htmlElements;
5762
- var scannedTypes = new Set(["data", "htmlFlowData"]);
5846
+ var scannedTypes = new Set(["data"]);
5763
5847
  if (includeCodeBlocks) {
5764
5848
  scannedTypes.add("codeFlowValue");
5765
5849
  scannedTypes.add("codeTextData");
5766
5850
  }
5767
- var tokenAdjustments = new Map();
5851
+ if (includeHtmlElements) {
5852
+ scannedTypes.add("htmlFlowData");
5853
+ scannedTypes.add("htmlTextData");
5854
+ }
5768
5855
  var contentTokens = filterByPredicate(params.parsers.micromark.tokens, function (token) {
5769
5856
  return scannedTypes.has(token.type);
5770
5857
  }, function (token) {
5771
- var children = token.children;
5772
- var startLine = token.startLine,
5773
- text = token.text;
5774
- if (!includeHtmlElements && token.type === "htmlFlow") {
5775
- if (text.startsWith("<!--")) {
5776
- // Remove comment content
5777
- children = [];
5778
- } else {
5779
- // Re-parse to get htmlText elements for detailed tokenization
5780
- var htmlTextLines = "<md044>\n".concat(text, "\n</md044>").split(newLineRe);
5781
- children = parse(htmlTextLines.join(""));
5782
- var reTokens = _toConsumableArray(children);
5783
- var _iterator = _createForOfIteratorHelper(reTokens),
5784
- _step;
5785
- try {
5786
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
5787
- var reToken = _step.value;
5788
- tokenAdjustments.set(reToken, {
5789
- htmlTextLines: htmlTextLines,
5790
- startLine: startLine
5791
- });
5792
- reTokens.push.apply(reTokens, _toConsumableArray(reToken.children));
5793
- }
5794
- } catch (err) {
5795
- _iterator.e(err);
5796
- } finally {
5797
- _iterator.f();
5798
- }
5799
- }
5800
- }
5801
- return children.filter(function (t) {
5858
+ return token.children.filter(function (t) {
5802
5859
  return !ignoredChildTypes.has(t.type);
5803
5860
  });
5804
5861
  });
5805
5862
  var exclusions = [];
5806
5863
  var autoLinked = new Set();
5807
- var _iterator2 = _createForOfIteratorHelper(names),
5808
- _step2;
5864
+ var _iterator = _createForOfIteratorHelper(names),
5865
+ _step;
5809
5866
  try {
5810
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
5811
- var name = _step2.value;
5867
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
5868
+ var name = _step.value;
5812
5869
  var escapedName = escapeForRegExp(name);
5813
5870
  var startNamePattern = /^\W/.test(name) ? "" : "\\b_*";
5814
5871
  var endNamePattern = /\W$/.test(name) ? "" : "_*\\b";
5815
5872
  var namePattern = "(".concat(startNamePattern, ")(").concat(escapedName, ")").concat(endNamePattern);
5816
5873
  var nameRe = new RegExp(namePattern, "gi");
5817
- var _iterator3 = _createForOfIteratorHelper(contentTokens),
5818
- _step3;
5874
+ var _iterator2 = _createForOfIteratorHelper(contentTokens),
5875
+ _step2;
5819
5876
  try {
5820
5877
  var _loop = function _loop() {
5821
- var token = _step3.value;
5878
+ var token = _step2.value;
5822
5879
  var match = null;
5823
5880
  var _loop2 = function _loop2() {
5824
5881
  var _match = match,
@@ -5838,21 +5895,8 @@ module.exports = {
5838
5895
  autoLinked.add(token);
5839
5896
  }
5840
5897
  if (!withinAnyRange(urlRanges, lineIndex, index, length)) {
5841
- var lineNumber = token.startLine;
5842
- var column = index;
5843
- if (tokenAdjustments.has(token)) {
5844
- var _tokenAdjustments$get = tokenAdjustments.get(token),
5845
- htmlTextLines = _tokenAdjustments$get.htmlTextLines,
5846
- startLine = _tokenAdjustments$get.startLine;
5847
- var lineDelta = 0;
5848
- while (htmlTextLines[lineDelta].length <= column) {
5849
- column -= htmlTextLines[lineDelta].length;
5850
- lineDelta++;
5851
- }
5852
- lineNumber = startLine + lineDelta - 1;
5853
- }
5854
- column++;
5855
- addErrorDetailIf(onError, lineNumber, name, nameMatch, null, null, [column, length], {
5898
+ var column = index + 1;
5899
+ addErrorDetailIf(onError, token.startLine, name, nameMatch, null, null, [column, length], {
5856
5900
  "editColumn": column,
5857
5901
  "deleteCount": length,
5858
5902
  "insertText": name
@@ -5865,19 +5909,19 @@ module.exports = {
5865
5909
  _loop2();
5866
5910
  }
5867
5911
  };
5868
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
5912
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
5869
5913
  _loop();
5870
5914
  }
5871
5915
  } catch (err) {
5872
- _iterator3.e(err);
5916
+ _iterator2.e(err);
5873
5917
  } finally {
5874
- _iterator3.f();
5918
+ _iterator2.f();
5875
5919
  }
5876
5920
  }
5877
5921
  } catch (err) {
5878
- _iterator2.e(err);
5922
+ _iterator.e(err);
5879
5923
  } finally {
5880
- _iterator2.f();
5924
+ _iterator.f();
5881
5925
  }
5882
5926
  }
5883
5927
  };
@@ -6081,14 +6125,18 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
6081
6125
  addError = _require.addError,
6082
6126
  emphasisOrStrongStyleFor = _require.emphasisOrStrongStyleFor;
6083
6127
  var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
6084
- filterByTypes = _require2.filterByTypes,
6128
+ filterByPredicate = _require2.filterByPredicate,
6085
6129
  tokenIfType = _require2.tokenIfType;
6086
6130
  var intrawordRe = /\w/;
6087
6131
  var impl = function impl(params, onError, type, asterisk, underline) {
6088
6132
  var style = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : "consistent";
6089
6133
  var lines = params.lines,
6090
6134
  parsers = params.parsers;
6091
- var emphasisTokens = filterByTypes(parsers.micromark.tokens, [type]);
6135
+ var emphasisTokens = filterByPredicate(parsers.micromark.tokens, function (token) {
6136
+ return token.type === type;
6137
+ }, function (token) {
6138
+ return token.type === "htmlFlow" ? [] : token.children;
6139
+ });
6092
6140
  var _iterator = _createForOfIteratorHelper(emphasisTokens),
6093
6141
  _step;
6094
6142
  try {
@@ -6159,16 +6207,16 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
6159
6207
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6160
6208
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6161
6209
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6162
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
6210
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6163
6211
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
6164
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
6212
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
6165
6213
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6166
6214
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6167
6215
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
6168
6216
  addError = _require.addError,
6169
6217
  addErrorDetailIf = _require.addErrorDetailIf;
6170
6218
  var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
6171
- filterByHtmlTokens = _require2.filterByHtmlTokens,
6219
+ filterByPredicate = _require2.filterByPredicate,
6172
6220
  filterByTypes = _require2.filterByTypes,
6173
6221
  getHtmlTagInfo = _require2.getHtmlTagInfo;
6174
6222
 
@@ -6177,15 +6225,27 @@ var idRe = /[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]i
6177
6225
  var nameRe = /[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]name[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*=[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*["']?((?:(?![\t-\r "'>\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uD800-\uDFFF\uFEFF])[\s\S]|[\uD800-\uDBFF][\uDC00-\uDFFF])+)/i;
6178
6226
  var anchorRe = /\{(#[0-9a-z]+(?:[\x2D_][0-9a-z]+)*)\}/g;
6179
6227
 
6228
+ // Sets for filtering heading tokens during conversion
6229
+ var childrenExclude = new Set(["image", "reference", "resource"]);
6230
+ var tokensInclude = new Set(["codeTextData", "data"]);
6231
+
6232
+ /**
6233
+ * @typedef {import("../helpers/micromark.cjs").Token} Token
6234
+ */
6235
+
6180
6236
  /**
6181
6237
  * Converts a Markdown heading into an HTML fragment according to the rules
6182
6238
  * used by GitHub.
6183
6239
  *
6184
- * @param {Object} headingText Heading text token.
6240
+ * @param {Token} headingText Heading text token.
6185
6241
  * @returns {string} Fragment string for heading.
6186
6242
  */
6187
6243
  function convertHeadingToHTMLFragment(headingText) {
6188
- var inlineText = filterByTypes(headingText.children, ["codeTextData", "data"]).map(function (token) {
6244
+ var inlineText = filterByPredicate(headingText.children, function (token) {
6245
+ return tokensInclude.has(token.type);
6246
+ }, function (token) {
6247
+ return childrenExclude.has(token.type) ? [] : token.children;
6248
+ }).map(function (token) {
6189
6249
  return token.text;
6190
6250
  }).join("");
6191
6251
  return "#" + encodeURIComponent(inlineText.toLowerCase()
@@ -6195,6 +6255,18 @@ function convertHeadingToHTMLFragment(headingText) {
6195
6255
  // https://ruby-doc.org/core-3.0.2/Regexp.html
6196
6256
  .replace(/(?:[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB1\xB4\xB6-\xB8\xBB\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u086F\u0888\u088F-\u0897\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2\u09F3\u09FA\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF3-\u0BFF\u0C0D\u0C11\u0C29\u0C3A\u0C3B\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B\u0C5C\u0C5E\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDC\u0CDF\u0CE4\u0CE5\u0CF0\u0CF4-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D64\u0D65\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u1368\u137D-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u1716-\u171E\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u17EF\u17FA-\u180A\u180E\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1ACF-\u1AFF\u1B4D-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u206F\u2072\u2073\u207A-\u207E\u208A-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A-\u245F\u249C-\u24E9\u2500-\u2775\u2794-\u2BFF\u2CE5-\u2CEA\u2CF4-\u2CFC\u2CFE\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u3191\u3196-\u319F\u31C0-\u31EF\u3200-\u321F\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7CB-\uA7CF\uA7D2\uA7D4\uA7DA-\uA7F1\uA828-\uA82B\uA82D-\uA82F\uA836-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD06\uDD34-\uDD3F\uDD79-\uDD89\uDD8C-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6F\uDD7B\uDD8B\uDD93\uDD96\uDDA2\uDDB2\uDDBA\uDDBD-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDF7F\uDF86\uDFB1\uDFBB-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC57\uDC77\uDC78\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE49-\uDE5F\uDE7F\uDEA0-\uDEBF\uDEC8\uDEE7-\uDEEA\uDEF0-\uDEFF\uDF36-\uDF3F\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD28-\uDD2F\uDD3A-\uDE5F\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFC\uDF28-\uDF2F\uDF55-\uDF6F\uDF86-\uDFAF\uDFCC-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC51\uDC76-\uDC7E\uDCBB-\uDCC1\uDCC3-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDE0\uDDF5-\uDDFF\uDE12\uDE38-\uDE3D\uDE42-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3C-\uDF3F\uDF47-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCF3-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEAF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC6D-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDEFF\uDF11\uDF3B-\uDF3D\uDF43-\uDF4F\uDF5A-\uDFAF\uDFB1-\uDFBF\uDFD5-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80E-\uD810\uD812-\uD819\uD824-\uD82A\uD82D\uD82E\uD830-\uD832\uD83D\uD83F\uD87B-\uD87D\uD87F\uD889-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80B[\uDC00-\uDF8F\uDFF1-\uDFFF]|\uD80D[\uDC30-\uDC3F\uDC56-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6F\uDEBF\uDECA-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE97-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82B[\uDC00-\uDFEF\uDFF4\uDFFC\uDFFF]|\uD82C[\uDD23-\uDD31\uDD33-\uDD4F\uDD53\uDD54\uDD56-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD833[\uDC00-\uDEFF\uDF2E\uDF2F\uDF47-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDEBF\uDED4-\uDEDF\uDEF4-\uDF5F\uDF79-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD837[\uDC00-\uDEFF\uDF1F-\uDF24\uDF2B-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDC2F\uDC6E-\uDC8E\uDC90-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDE8F\uDEAF-\uDEBF\uDEFA-\uDFFF]|\uD839[\uDC00-\uDCCF\uDCFA-\uDFDF\uDFE7\uDFEC\uDFEF\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDC70\uDCAC\uDCB0\uDCB5-\uDD00\uDD2E\uDD3E-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDCFF\uDD0D-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEE0-\uDEFF]|\uD86D[\uDF3A-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDF4F]|\uD888[\uDFB0-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g, "").replace(/ /g, "-"));
6197
6257
  }
6258
+
6259
+ /**
6260
+ * Unescapes the text of a String-type micromark Token.
6261
+ *
6262
+ * @param {Token} token String-type micromark Token.
6263
+ * @returns {string} Unescaped token text.
6264
+ */
6265
+ function unescapeStringTokenText(token) {
6266
+ return filterByTypes(token.children, ["characterEscapeValue", "data"]).map(function (child) {
6267
+ return child.text;
6268
+ }).join("");
6269
+ }
6198
6270
  module.exports = {
6199
6271
  "names": ["MD051", "link-fragments"],
6200
6272
  "description": "Link fragments should be valid",
@@ -6211,18 +6283,20 @@ module.exports = {
6211
6283
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
6212
6284
  var headingText = _step.value;
6213
6285
  var fragment = convertHeadingToHTMLFragment(headingText);
6214
- var count = fragments.get(fragment) || 0;
6215
- if (count) {
6216
- fragments.set("".concat(fragment, "-").concat(count), 0);
6217
- }
6218
- fragments.set(fragment, count + 1);
6219
- var match = null;
6220
- while ((match = anchorRe.exec(headingText.text)) !== null) {
6221
- var _match = match,
6222
- _match2 = _slicedToArray(_match, 2),
6223
- anchor = _match2[1];
6224
- if (!fragments.has(anchor)) {
6225
- fragments.set(anchor, 1);
6286
+ if (fragment !== "#") {
6287
+ var count = fragments.get(fragment) || 0;
6288
+ if (count) {
6289
+ fragments.set("".concat(fragment, "-").concat(count), 0);
6290
+ }
6291
+ fragments.set(fragment, count + 1);
6292
+ var match = null;
6293
+ while ((match = anchorRe.exec(headingText.text)) !== null) {
6294
+ var _match = match,
6295
+ _match2 = _slicedToArray(_match, 2),
6296
+ anchor = _match2[1];
6297
+ if (!fragments.has(anchor)) {
6298
+ fragments.set(anchor, 1);
6299
+ }
6226
6300
  }
6227
6301
  }
6228
6302
  }
@@ -6233,7 +6307,7 @@ module.exports = {
6233
6307
  } finally {
6234
6308
  _iterator.f();
6235
6309
  }
6236
- var _iterator2 = _createForOfIteratorHelper(filterByHtmlTokens(tokens)),
6310
+ var _iterator2 = _createForOfIteratorHelper(filterByTypes(tokens, ["htmlText"])),
6237
6311
  _step2;
6238
6312
  try {
6239
6313
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -6270,7 +6344,10 @@ module.exports = {
6270
6344
  try {
6271
6345
  var _loop = function _loop() {
6272
6346
  var definition = _step4.value;
6273
- if (definition.text.length > 1 && definition.text.startsWith("#") && !fragments.has(definition.text)) {
6347
+ var endColumn = definition.endColumn,
6348
+ startColumn = definition.startColumn;
6349
+ var text = unescapeStringTokenText(definition);
6350
+ if (text.length > 1 && text.startsWith("#") && !fragments.has(text) && !fragments.has("#".concat(encodeURIComponent(text.slice(1))))) {
6274
6351
  // eslint-disable-next-line no-undef-init
6275
6352
  var context = undefined;
6276
6353
  // eslint-disable-next-line no-undef-init
@@ -6281,18 +6358,18 @@ module.exports = {
6281
6358
  context = link.text;
6282
6359
  range = [link.startColumn, link.endColumn - link.startColumn];
6283
6360
  fixInfo = {
6284
- "editColumn": definition.startColumn,
6285
- "deleteCount": definition.endColumn - definition.startColumn
6361
+ "editColumn": startColumn,
6362
+ "deleteCount": endColumn - startColumn
6286
6363
  };
6287
6364
  }
6288
- var definitionTextLower = definition.text.toLowerCase();
6365
+ var textLower = text.toLowerCase();
6289
6366
  var mixedCaseKey = _toConsumableArray(fragments.keys()).find(function (key) {
6290
- return definitionTextLower === key.toLowerCase();
6367
+ return textLower === key.toLowerCase();
6291
6368
  });
6292
6369
  if (mixedCaseKey) {
6293
6370
  // @ts-ignore
6294
6371
  (fixInfo || {}).insertText = mixedCaseKey;
6295
- addErrorDetailIf(onError, link.startLine, mixedCaseKey, definition.text, undefined, context, range, fixInfo);
6372
+ addErrorDetailIf(onError, link.startLine, mixedCaseKey, text, undefined, context, range, fixInfo);
6296
6373
  } else {
6297
6374
  addError(onError, link.startLine, undefined, context, range);
6298
6375
  }
@@ -6331,10 +6408,14 @@ module.exports = {
6331
6408
 
6332
6409
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6333
6410
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6334
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
6411
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6335
6412
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
6336
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
6413
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
6414
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
6415
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6337
6416
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6417
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6418
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6338
6419
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6339
6420
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
6340
6421
  addError = _require.addError;
@@ -6345,12 +6426,16 @@ module.exports = {
6345
6426
  "description": "Reference links and images should use a label that is defined",
6346
6427
  "tags": ["images", "links"],
6347
6428
  "function": function MD052(params, onError) {
6348
- var lines = params.lines;
6429
+ var config = params.config,
6430
+ lines = params.lines;
6431
+ var shortcutSyntax = config.shortcut_syntax || false;
6349
6432
  var _referenceLinkImageDa = referenceLinkImageData(),
6433
+ definitions = _referenceLinkImageDa.definitions,
6350
6434
  references = _referenceLinkImageDa.references,
6351
- definitions = _referenceLinkImageDa.definitions;
6435
+ shortcuts = _referenceLinkImageDa.shortcuts;
6436
+ var entries = shortcutSyntax ? [].concat(_toConsumableArray(references.entries()), _toConsumableArray(shortcuts.entries())) : references.entries();
6352
6437
  // Look for links/images that use an undefined link reference
6353
- var _iterator = _createForOfIteratorHelper(references.entries()),
6438
+ var _iterator = _createForOfIteratorHelper(entries),
6354
6439
  _step;
6355
6440
  try {
6356
6441
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -6402,9 +6487,9 @@ module.exports = {
6402
6487
 
6403
6488
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6404
6489
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6405
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
6490
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6406
6491
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
6407
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
6492
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
6408
6493
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6409
6494
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6410
6495
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),