markdownlint 0.30.0 → 0.31.1

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.1 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.1";
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;) {
@@ -4978,6 +5057,7 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
4978
5057
  addErrorContext = _require.addErrorContext;
4979
5058
  var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
4980
5059
  filterByPredicate = _require2.filterByPredicate,
5060
+ filterByTypes = _require2.filterByTypes,
4981
5061
  getHtmlTagInfo = _require2.getHtmlTagInfo,
4982
5062
  parse = _require2.parse;
4983
5063
  module.exports = {
@@ -4986,39 +5066,40 @@ module.exports = {
4986
5066
  "tags": ["links", "url"],
4987
5067
  "function": function MD034(params, onError) {
4988
5068
  var literalAutolinks = function literalAutolinks(tokens) {
4989
- return filterByPredicate(tokens, function (token) {
4990
- return token.type === "literalAutolink";
4991
- }, function (token) {
4992
- var children = token.children;
4993
- var result = [];
4994
- for (var i = 0; i < children.length; i++) {
4995
- var openToken = children[i];
4996
- var openTagInfo = getHtmlTagInfo(openToken);
4997
- if (openTagInfo && !openTagInfo.close) {
4998
- var count = 1;
4999
- for (var j = i + 1; j < children.length; j++) {
5000
- var closeToken = children[j];
5001
- var closeTagInfo = getHtmlTagInfo(closeToken);
5002
- if (closeTagInfo && openTagInfo.name === closeTagInfo.name) {
5003
- if (closeTagInfo.close) {
5004
- count--;
5005
- if (count === 0) {
5006
- i = j;
5007
- break;
5008
- }
5009
- } else {
5010
- count++;
5069
+ var flattened = filterByPredicate(tokens, function () {
5070
+ return true;
5071
+ });
5072
+ var result = [];
5073
+ for (var i = 0; i < flattened.length; i++) {
5074
+ var current = flattened[i];
5075
+ var openTagInfo = getHtmlTagInfo(current);
5076
+ if (openTagInfo && !openTagInfo.close) {
5077
+ var count = 1;
5078
+ for (var j = i + 1; j < flattened.length; j++) {
5079
+ var candidate = flattened[j];
5080
+ var closeTagInfo = getHtmlTagInfo(candidate);
5081
+ if (closeTagInfo && openTagInfo.name === closeTagInfo.name) {
5082
+ if (closeTagInfo.close) {
5083
+ count--;
5084
+ if (count === 0) {
5085
+ i = j;
5086
+ break;
5011
5087
  }
5088
+ } else {
5089
+ count++;
5012
5090
  }
5013
5091
  }
5014
- } else {
5015
- result.push(openToken);
5016
5092
  }
5093
+ } else {
5094
+ result.push(current);
5017
5095
  }
5018
- return result;
5096
+ }
5097
+ return result.filter(function (token) {
5098
+ return token.type === "literalAutolink";
5019
5099
  });
5020
5100
  };
5021
- if (literalAutolinks(params.parsers.micromark.tokens).length > 0) {
5101
+ var autoLinks = filterByTypes(params.parsers.micromark.tokens, ["literalAutolink"]);
5102
+ if (autoLinks.length > 0) {
5022
5103
  // Re-parse with correct link/image reference definition handling
5023
5104
  var document = params.lines.join("\n");
5024
5105
  var tokens = parse(document, undefined, false);
@@ -5179,19 +5260,15 @@ module.exports = {
5179
5260
 
5180
5261
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
5181
5262
  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; } }
5263
+ 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
5264
  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."); }
5265
+ 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
5266
  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
5267
  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
5268
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
5192
5269
  addError = _require.addError;
5193
- var emphasisStartTextRe = /^(\S{1,3})(\s+)\S/;
5194
- var emphasisEndTextRe = /\S(\s+)(\S{1,3})$/;
5270
+ var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
5271
+ filterByPredicate = _require2.filterByPredicate;
5195
5272
  module.exports = {
5196
5273
  "names": ["MD037", "no-space-in-emphasis"],
5197
5274
  "description": "Spaces inside emphasis markers",
@@ -5205,96 +5282,100 @@ module.exports = {
5205
5282
  var marker = _arr[_i];
5206
5283
  emphasisTokensByMarker.set(marker, []);
5207
5284
  }
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;
5285
+ var tokens = filterByPredicate(parsers.micromark.tokens, function (token) {
5286
+ return token.children.some(function (child) {
5287
+ return child.type === "data";
5288
+ });
5289
+ });
5290
+ var _iterator = _createForOfIteratorHelper(tokens),
5291
+ _step;
5292
+ try {
5293
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
5294
+ var token = _step.value;
5295
+ // Build lists of bare tokens for each emphasis marker type
5296
+ var _iterator2 = _createForOfIteratorHelper(emphasisTokensByMarker.values()),
5297
+ _step2;
5298
+ try {
5299
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
5300
+ var emphasisTokens = _step2.value;
5301
+ emphasisTokens.length = 0;
5302
+ }
5303
+ } catch (err) {
5304
+ _iterator2.e(err);
5305
+ } finally {
5306
+ _iterator2.f();
5225
5307
  }
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);
5308
+ var _iterator3 = _createForOfIteratorHelper(token.children),
5309
+ _step3;
5310
+ try {
5311
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
5312
+ var child = _step3.value;
5313
+ var text = child.text,
5314
+ type = child.type;
5315
+ if (type === "data" && text.length <= 3) {
5316
+ var _emphasisTokens = emphasisTokensByMarker.get(text);
5317
+ if (_emphasisTokens) {
5318
+ _emphasisTokens.push(child);
5319
+ }
5242
5320
  }
5243
5321
  }
5244
- }
5245
5322
 
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) {
5323
+ // Process bare tokens for each emphasis marker type
5324
+ } catch (err) {
5325
+ _iterator3.e(err);
5326
+ } finally {
5327
+ _iterator3.f();
5328
+ }
5329
+ var _iterator4 = _createForOfIteratorHelper(emphasisTokensByMarker.entries()),
5330
+ _step4;
5331
+ try {
5332
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
5333
+ var entry = _step4.value;
5334
+ var _entry = _slicedToArray(entry, 2),
5335
+ _marker = _entry[0],
5336
+ _emphasisTokens2 = _entry[1];
5337
+ for (var i = 0; i + 1 < _emphasisTokens2.length; i += 2) {
5338
+ // Process start token of start/end pair
5339
+ var startToken = _emphasisTokens2[i];
5340
+ var startLine = lines[startToken.startLine - 1];
5341
+ var startSlice = startLine.slice(startToken.endColumn - 1);
5342
+ var startMatch = startSlice.match(/^\s+\S/);
5343
+ if (startMatch) {
5344
+ var _startMatch = _slicedToArray(startMatch, 1),
5345
+ startSpaceCharacter = _startMatch[0];
5346
+ var startContext = "".concat(_marker).concat(startSpaceCharacter);
5268
5347
  addError(onError, startToken.startLine, undefined, startContext, [startToken.startColumn, startContext.length], {
5269
5348
  "editColumn": startToken.endColumn,
5270
- "deleteCount": startSpaces.length
5349
+ "deleteCount": startSpaceCharacter.length - 1
5271
5350
  });
5272
5351
  }
5273
- }
5274
5352
 
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) {
5353
+ // Process end token of start/end pair
5354
+ var endToken = _emphasisTokens2[i + 1];
5355
+ var endLine = lines[endToken.startLine - 1];
5356
+ var endSlice = endLine.slice(0, endToken.startColumn - 1);
5357
+ var endMatch = endSlice.match(/\S\s+$/);
5358
+ if (endMatch) {
5359
+ var _endMatch = _slicedToArray(endMatch, 1),
5360
+ endSpaceCharacter = _endMatch[0];
5361
+ var endContext = "".concat(endSpaceCharacter).concat(_marker);
5285
5362
  addError(onError, endToken.startLine, undefined, endContext, [endToken.endColumn - endContext.length, endContext.length], {
5286
- "editColumn": endToken.startColumn - endSpace.length,
5287
- "deleteCount": endSpace.length
5363
+ "editColumn": endToken.startColumn - (endSpaceCharacter.length - 1),
5364
+ "deleteCount": endSpaceCharacter.length - 1
5288
5365
  });
5289
5366
  }
5290
5367
  }
5291
5368
  }
5369
+ } catch (err) {
5370
+ _iterator4.e(err);
5371
+ } finally {
5372
+ _iterator4.f();
5292
5373
  }
5293
- } catch (err) {
5294
- _iterator3.e(err);
5295
- } finally {
5296
- _iterator3.f();
5297
5374
  }
5375
+ } catch (err) {
5376
+ _iterator.e(err);
5377
+ } finally {
5378
+ _iterator.f();
5298
5379
  }
5299
5380
  }
5300
5381
  };
@@ -5661,52 +5742,54 @@ module.exports = {
5661
5742
  "tags": ["headings", "headers"],
5662
5743
  "function": function MD043(params, onError) {
5663
5744
  var requiredHeadings = params.config.headings || params.config.headers;
5745
+ if (!Array.isArray(requiredHeadings)) {
5746
+ // Nothing to check; avoid doing any work
5747
+ return;
5748
+ }
5664
5749
  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 === "+") {
5750
+ var levels = {};
5751
+ for (var _i = 0, _arr = [1, 2, 3, 4, 5, 6]; _i < _arr.length; _i++) {
5752
+ var level = _arr[_i];
5753
+ levels["h" + level] = "######".substr(-level);
5754
+ }
5755
+ var i = 0;
5756
+ var matchAny = false;
5757
+ var hasError = false;
5758
+ var anyHeadings = false;
5759
+ var getExpected = function getExpected() {
5760
+ return requiredHeadings[i++] || "[None]";
5761
+ };
5762
+ var handleCase = function handleCase(str) {
5763
+ return matchCase ? str : str.toLowerCase();
5764
+ };
5765
+ forEachHeading(params, function (heading, content) {
5766
+ if (!hasError) {
5767
+ anyHeadings = true;
5768
+ var actual = levels[heading.tag] + " " + content;
5769
+ var expected = getExpected();
5770
+ if (expected === "*") {
5771
+ var nextExpected = getExpected();
5772
+ if (handleCase(nextExpected) !== handleCase(actual)) {
5693
5773
  matchAny = true;
5694
- } else if (handleCase(expected) === handleCase(actual)) {
5695
- matchAny = false;
5696
- } else if (matchAny) {
5697
5774
  i--;
5698
- } else {
5699
- addErrorDetailIf(onError, heading.lineNumber, expected, actual);
5700
- hasError = true;
5701
5775
  }
5776
+ } else if (expected === "+") {
5777
+ matchAny = true;
5778
+ } else if (handleCase(expected) === handleCase(actual)) {
5779
+ matchAny = false;
5780
+ } else if (matchAny) {
5781
+ i--;
5782
+ } else {
5783
+ addErrorDetailIf(onError, heading.lineNumber, expected, actual);
5784
+ hasError = true;
5702
5785
  }
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
5786
  }
5787
+ });
5788
+ var extraHeadings = requiredHeadings.length - i;
5789
+ if (!hasError && (extraHeadings > 1 || extraHeadings === 1 && requiredHeadings[i] !== "*") && (anyHeadings || !requiredHeadings.every(function (heading) {
5790
+ return heading === "*";
5791
+ }))) {
5792
+ addErrorContext(onError, params.lines.length, requiredHeadings[i]);
5710
5793
  }
5711
5794
  }
5712
5795
  };
@@ -5724,21 +5807,20 @@ module.exports = {
5724
5807
 
5725
5808
 
5726
5809
 
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
5810
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
5733
5811
  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
5812
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5736
5813
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
5814
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
5815
+ 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."); }
5816
+ 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; } }
5817
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
5818
+ 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; } } }; }
5819
+ 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
5820
  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
5821
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
5739
5822
  addErrorDetailIf = _require.addErrorDetailIf,
5740
5823
  escapeForRegExp = _require.escapeForRegExp,
5741
- newLineRe = _require.newLineRe,
5742
5824
  withinAnyRange = _require.withinAnyRange;
5743
5825
  var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
5744
5826
  filterByPredicate = _require2.filterByPredicate,
@@ -5755,70 +5837,47 @@ module.exports = {
5755
5837
  names.sort(function (a, b) {
5756
5838
  return b.length - a.length || a.localeCompare(b);
5757
5839
  });
5840
+ if (names.length === 0) {
5841
+ // Nothing to check; avoid doing any work
5842
+ return;
5843
+ }
5758
5844
  var codeBlocks = params.config.code_blocks;
5759
5845
  var includeCodeBlocks = codeBlocks === undefined ? true : !!codeBlocks;
5760
5846
  var htmlElements = params.config.html_elements;
5761
5847
  var includeHtmlElements = htmlElements === undefined ? true : !!htmlElements;
5762
- var scannedTypes = new Set(["data", "htmlFlowData"]);
5848
+ var scannedTypes = new Set(["data"]);
5763
5849
  if (includeCodeBlocks) {
5764
5850
  scannedTypes.add("codeFlowValue");
5765
5851
  scannedTypes.add("codeTextData");
5766
5852
  }
5767
- var tokenAdjustments = new Map();
5853
+ if (includeHtmlElements) {
5854
+ scannedTypes.add("htmlFlowData");
5855
+ scannedTypes.add("htmlTextData");
5856
+ }
5768
5857
  var contentTokens = filterByPredicate(params.parsers.micromark.tokens, function (token) {
5769
5858
  return scannedTypes.has(token.type);
5770
5859
  }, 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) {
5860
+ return token.children.filter(function (t) {
5802
5861
  return !ignoredChildTypes.has(t.type);
5803
5862
  });
5804
5863
  });
5805
5864
  var exclusions = [];
5806
5865
  var autoLinked = new Set();
5807
- var _iterator2 = _createForOfIteratorHelper(names),
5808
- _step2;
5866
+ var _iterator = _createForOfIteratorHelper(names),
5867
+ _step;
5809
5868
  try {
5810
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
5811
- var name = _step2.value;
5869
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
5870
+ var name = _step.value;
5812
5871
  var escapedName = escapeForRegExp(name);
5813
5872
  var startNamePattern = /^\W/.test(name) ? "" : "\\b_*";
5814
5873
  var endNamePattern = /\W$/.test(name) ? "" : "_*\\b";
5815
5874
  var namePattern = "(".concat(startNamePattern, ")(").concat(escapedName, ")").concat(endNamePattern);
5816
5875
  var nameRe = new RegExp(namePattern, "gi");
5817
- var _iterator3 = _createForOfIteratorHelper(contentTokens),
5818
- _step3;
5876
+ var _iterator2 = _createForOfIteratorHelper(contentTokens),
5877
+ _step2;
5819
5878
  try {
5820
5879
  var _loop = function _loop() {
5821
- var token = _step3.value;
5880
+ var token = _step2.value;
5822
5881
  var match = null;
5823
5882
  var _loop2 = function _loop2() {
5824
5883
  var _match = match,
@@ -5838,21 +5897,8 @@ module.exports = {
5838
5897
  autoLinked.add(token);
5839
5898
  }
5840
5899
  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], {
5900
+ var column = index + 1;
5901
+ addErrorDetailIf(onError, token.startLine, name, nameMatch, null, null, [column, length], {
5856
5902
  "editColumn": column,
5857
5903
  "deleteCount": length,
5858
5904
  "insertText": name
@@ -5865,19 +5911,19 @@ module.exports = {
5865
5911
  _loop2();
5866
5912
  }
5867
5913
  };
5868
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
5914
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
5869
5915
  _loop();
5870
5916
  }
5871
5917
  } catch (err) {
5872
- _iterator3.e(err);
5918
+ _iterator2.e(err);
5873
5919
  } finally {
5874
- _iterator3.f();
5920
+ _iterator2.f();
5875
5921
  }
5876
5922
  }
5877
5923
  } catch (err) {
5878
- _iterator2.e(err);
5924
+ _iterator.e(err);
5879
5925
  } finally {
5880
- _iterator2.f();
5926
+ _iterator.f();
5881
5927
  }
5882
5928
  }
5883
5929
  };
@@ -6081,14 +6127,18 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
6081
6127
  addError = _require.addError,
6082
6128
  emphasisOrStrongStyleFor = _require.emphasisOrStrongStyleFor;
6083
6129
  var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
6084
- filterByTypes = _require2.filterByTypes,
6130
+ filterByPredicate = _require2.filterByPredicate,
6085
6131
  tokenIfType = _require2.tokenIfType;
6086
6132
  var intrawordRe = /\w/;
6087
6133
  var impl = function impl(params, onError, type, asterisk, underline) {
6088
6134
  var style = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : "consistent";
6089
6135
  var lines = params.lines,
6090
6136
  parsers = params.parsers;
6091
- var emphasisTokens = filterByTypes(parsers.micromark.tokens, [type]);
6137
+ var emphasisTokens = filterByPredicate(parsers.micromark.tokens, function (token) {
6138
+ return token.type === type;
6139
+ }, function (token) {
6140
+ return token.type === "htmlFlow" ? [] : token.children;
6141
+ });
6092
6142
  var _iterator = _createForOfIteratorHelper(emphasisTokens),
6093
6143
  _step;
6094
6144
  try {
@@ -6159,16 +6209,16 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
6159
6209
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6160
6210
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6161
6211
  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; } }
6212
+ 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
6213
  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; } } }; }
6214
+ 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
6215
  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
6216
  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
6217
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
6168
6218
  addError = _require.addError,
6169
6219
  addErrorDetailIf = _require.addErrorDetailIf;
6170
6220
  var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
6171
- filterByHtmlTokens = _require2.filterByHtmlTokens,
6221
+ filterByPredicate = _require2.filterByPredicate,
6172
6222
  filterByTypes = _require2.filterByTypes,
6173
6223
  getHtmlTagInfo = _require2.getHtmlTagInfo;
6174
6224
 
@@ -6177,15 +6227,27 @@ var idRe = /[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]i
6177
6227
  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
6228
  var anchorRe = /\{(#[0-9a-z]+(?:[\x2D_][0-9a-z]+)*)\}/g;
6179
6229
 
6230
+ // Sets for filtering heading tokens during conversion
6231
+ var childrenExclude = new Set(["image", "reference", "resource"]);
6232
+ var tokensInclude = new Set(["codeTextData", "data"]);
6233
+
6234
+ /**
6235
+ * @typedef {import("../helpers/micromark.cjs").Token} Token
6236
+ */
6237
+
6180
6238
  /**
6181
6239
  * Converts a Markdown heading into an HTML fragment according to the rules
6182
6240
  * used by GitHub.
6183
6241
  *
6184
- * @param {Object} headingText Heading text token.
6242
+ * @param {Token} headingText Heading text token.
6185
6243
  * @returns {string} Fragment string for heading.
6186
6244
  */
6187
6245
  function convertHeadingToHTMLFragment(headingText) {
6188
- var inlineText = filterByTypes(headingText.children, ["codeTextData", "data"]).map(function (token) {
6246
+ var inlineText = filterByPredicate(headingText.children, function (token) {
6247
+ return tokensInclude.has(token.type);
6248
+ }, function (token) {
6249
+ return childrenExclude.has(token.type) ? [] : token.children;
6250
+ }).map(function (token) {
6189
6251
  return token.text;
6190
6252
  }).join("");
6191
6253
  return "#" + encodeURIComponent(inlineText.toLowerCase()
@@ -6193,7 +6255,19 @@ function convertHeadingToHTMLFragment(headingText) {
6193
6255
  // eslint-disable-next-line max-len
6194
6256
  // https://github.com/gjtorikian/html-pipeline/blob/main/lib/html/pipeline/toc_filter.rb
6195
6257
  // https://ruby-doc.org/core-3.0.2/Regexp.html
6196
- .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, "-"));
6258
+ .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\uD87C\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-\uDFEF]|\uD87B[\uDE5E-\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, "-"));
6259
+ }
6260
+
6261
+ /**
6262
+ * Unescapes the text of a String-type micromark Token.
6263
+ *
6264
+ * @param {Token} token String-type micromark Token.
6265
+ * @returns {string} Unescaped token text.
6266
+ */
6267
+ function unescapeStringTokenText(token) {
6268
+ return filterByTypes(token.children, ["characterEscapeValue", "data"]).map(function (child) {
6269
+ return child.text;
6270
+ }).join("");
6197
6271
  }
6198
6272
  module.exports = {
6199
6273
  "names": ["MD051", "link-fragments"],
@@ -6211,18 +6285,20 @@ module.exports = {
6211
6285
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
6212
6286
  var headingText = _step.value;
6213
6287
  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);
6288
+ if (fragment !== "#") {
6289
+ var count = fragments.get(fragment) || 0;
6290
+ if (count) {
6291
+ fragments.set("".concat(fragment, "-").concat(count), 0);
6292
+ }
6293
+ fragments.set(fragment, count + 1);
6294
+ var match = null;
6295
+ while ((match = anchorRe.exec(headingText.text)) !== null) {
6296
+ var _match = match,
6297
+ _match2 = _slicedToArray(_match, 2),
6298
+ anchor = _match2[1];
6299
+ if (!fragments.has(anchor)) {
6300
+ fragments.set(anchor, 1);
6301
+ }
6226
6302
  }
6227
6303
  }
6228
6304
  }
@@ -6233,7 +6309,7 @@ module.exports = {
6233
6309
  } finally {
6234
6310
  _iterator.f();
6235
6311
  }
6236
- var _iterator2 = _createForOfIteratorHelper(filterByHtmlTokens(tokens)),
6312
+ var _iterator2 = _createForOfIteratorHelper(filterByTypes(tokens, ["htmlText"])),
6237
6313
  _step2;
6238
6314
  try {
6239
6315
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -6270,7 +6346,10 @@ module.exports = {
6270
6346
  try {
6271
6347
  var _loop = function _loop() {
6272
6348
  var definition = _step4.value;
6273
- if (definition.text.length > 1 && definition.text.startsWith("#") && !fragments.has(definition.text)) {
6349
+ var endColumn = definition.endColumn,
6350
+ startColumn = definition.startColumn;
6351
+ var text = unescapeStringTokenText(definition);
6352
+ if (text.length > 1 && text.startsWith("#") && !fragments.has(text) && !fragments.has("#".concat(encodeURIComponent(text.slice(1))))) {
6274
6353
  // eslint-disable-next-line no-undef-init
6275
6354
  var context = undefined;
6276
6355
  // eslint-disable-next-line no-undef-init
@@ -6281,18 +6360,18 @@ module.exports = {
6281
6360
  context = link.text;
6282
6361
  range = [link.startColumn, link.endColumn - link.startColumn];
6283
6362
  fixInfo = {
6284
- "editColumn": definition.startColumn,
6285
- "deleteCount": definition.endColumn - definition.startColumn
6363
+ "editColumn": startColumn,
6364
+ "deleteCount": endColumn - startColumn
6286
6365
  };
6287
6366
  }
6288
- var definitionTextLower = definition.text.toLowerCase();
6367
+ var textLower = text.toLowerCase();
6289
6368
  var mixedCaseKey = _toConsumableArray(fragments.keys()).find(function (key) {
6290
- return definitionTextLower === key.toLowerCase();
6369
+ return textLower === key.toLowerCase();
6291
6370
  });
6292
6371
  if (mixedCaseKey) {
6293
6372
  // @ts-ignore
6294
6373
  (fixInfo || {}).insertText = mixedCaseKey;
6295
- addErrorDetailIf(onError, link.startLine, mixedCaseKey, definition.text, undefined, context, range, fixInfo);
6374
+ addErrorDetailIf(onError, link.startLine, mixedCaseKey, text, undefined, context, range, fixInfo);
6296
6375
  } else {
6297
6376
  addError(onError, link.startLine, undefined, context, range);
6298
6377
  }
@@ -6331,10 +6410,14 @@ module.exports = {
6331
6410
 
6332
6411
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6333
6412
  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; } }
6413
+ 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
6414
  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; } } }; }
6415
+ 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; } } }; }
6416
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
6417
+ 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
6418
  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); }
6419
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6420
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6338
6421
  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
6422
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
6340
6423
  addError = _require.addError;
@@ -6345,12 +6428,16 @@ module.exports = {
6345
6428
  "description": "Reference links and images should use a label that is defined",
6346
6429
  "tags": ["images", "links"],
6347
6430
  "function": function MD052(params, onError) {
6348
- var lines = params.lines;
6431
+ var config = params.config,
6432
+ lines = params.lines;
6433
+ var shortcutSyntax = config.shortcut_syntax || false;
6349
6434
  var _referenceLinkImageDa = referenceLinkImageData(),
6435
+ definitions = _referenceLinkImageDa.definitions,
6350
6436
  references = _referenceLinkImageDa.references,
6351
- definitions = _referenceLinkImageDa.definitions;
6437
+ shortcuts = _referenceLinkImageDa.shortcuts;
6438
+ var entries = shortcutSyntax ? [].concat(_toConsumableArray(references.entries()), _toConsumableArray(shortcuts.entries())) : references.entries();
6352
6439
  // Look for links/images that use an undefined link reference
6353
- var _iterator = _createForOfIteratorHelper(references.entries()),
6440
+ var _iterator = _createForOfIteratorHelper(entries),
6354
6441
  _step;
6355
6442
  try {
6356
6443
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -6402,9 +6489,9 @@ module.exports = {
6402
6489
 
6403
6490
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6404
6491
  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; } }
6492
+ 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
6493
  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; } } }; }
6494
+ 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
6495
  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
6496
  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
6497
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),