text: "use strict";
  var __importDefault = (this && this.__importDefault) || function (mod) {
      return (mod && mod.__esModule) ? mod : { "default": mod };
  };
  const lru_cache_1 = __importDefault(require("lru-cache"));
  const deeplyParseHeaders_1 = __importDefault(require("./deeplyParseHeaders"));
  /**
   * Extract headers from markdown source content.
   *
   * @param {string} content
   * @param {array} include
   * @param {object} md
   * @returns {array}
   */
  const cache = new lru_cache_1.default({ max: 1000 });
  module.exports = function (content, include = [], md) {
      const key = content + include.join(',');
      const hit = cache.get(key);
      if (hit) {
          return hit;
      }
      const tokens = md.parse(content, {});
      const res = [];
      tokens.forEach((t, i) => {
          if (t.type === 'heading_open' && include.includes(t.tag)) {
              const title = tokens[i + 1].content;
              const slug = t.attrs.find(([name]) => name === 'id')[1];
              res.push({
                  level: parseInt(t.tag.slice(1), 10),
                  title: deeplyParseHeaders_1.default(title),
                  slug: slug || md.slugify(title)
              });
          }
      });
      cache.set(key, res);
      return res;
  };
  